Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Symbolic: A doomed effort, or it's time to get my lead-lined jockstr

Author: Robert Hyatt

Date: 08:59:57 02/17/04

Go up one level in this thread


On February 17, 2004 at 11:49:45, Tord Romstad wrote:

>Hi Bob,
>
>Apparently we no longer disagree quite as much as it seemed.  Just
>a few more comments below:
>
>On February 17, 2004 at 10:46:25, Robert Hyatt wrote:
>
>>Again, I won't disagree.  A programmer needs several "tools" in his sack.
>>
>>(1) a good understanding of the architecture.  Difficult at times, and with
>>Intel, where the rules change yearly, even more difficult than (say) learning
>>about the Cray, or the Fujitsu, or the Hitachi, or whatever.
>>
>>(2) a good understanding of the compiler being used, and how it produces
>>assembly code for the various high-level constructs it supports.
>
>Yes.  This is one of the respects in which Lisp requires more knowledge
>about the implementation compared to C when you want to write fast code.
>When a language has many high-level constructs, it is much more difficult
>to guess how they are implemented on a lower level.  Therefore, it also
>tends to be difficult to guess which constructs are slow and which are
>fast.  This can often vary wildly between different implementations.
>
>Hence the common saying that "Lisp programmers know the value of everything
>but the cost of nothing".  :-)
>
>>There really is zero problems in mixing C and assembly language.
>
>The advantage of Lisp in this respect is that it is easier to use the
>language to help you write the assembly language.  If you write all the
>assembly code by hand, it doesn't matter whether you use C and Lisp for
>the rest of the program by hand.  The difference is the use of macros
>in Lisp.  Think of it as an old-fashioned macro assembler on steroids.
>
>>>If you read a few more lines of my post, you would see the answer.
>>>Portability.  I want to use the same code on Mac OS X, Linux and
>>>Windows, and I have long-term plans to port my engine to Palm OS.
>>
>>
>>Of course Crafty runs on all the boxes you mentioned,
>
>Not including Palm OS, unless I have missed something?  Aren't Crafty's
>memory requirements a bit on the big side for the current generation
>of Palm OS units?

Don't know.  It runs on the IPAQ device.

However, this isn't an issue of C vs Lisp.  This is an issue of the internal
design of Crafty.  Were Crafty written in Lisp it would be no smaller, as the
rotated bitmap tables are going to be just as big...  as well as everything
else.

>
>>>I repeat; there has been no serious effort to make any conventional chess
>>>engine in a modern version of Lisp, and I know that my own engine (currently
>>>rated 2733 in blitz on ICC, on a PIV 2.4 GHz) would perform at most
>>>marginally worse if I rewrote it in Lisp.
>>
>>That would be a good hypothesis to test.
>
>It would.  But I think it is more likely that I will implement a
>"Chess Oriented Assembly Lisp" as described in my reply to Sune, and
>use this language to produce ARM assembly code.
>
>>I'd suspect that garbage-collection alone would make a huge difference in
>>performance.
>
>I wouldn't use any dynamic memory in a chess program, therefore the problem
>of garbage collection shouldn't enter the picture.
>
>Tord


So you are talking about writing a C-like program inside the syntax of Lisp?

:)

I've seen students write APL programs that look like Fortran, complete with
loops and array indexing, so I suppose anything is possible. :)



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.