Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Writing a meta-language to describe eval function

Author: Matthew White

Date: 10:31:08 07/02/03

Go up one level in this thread


On July 02, 2003 at 12:56:07, Andrei Fortuna wrote:

>On July 02, 2003 at 12:19:14, Vincent Diepeveen wrote:
>
>>On July 01, 2003 at 15:29:28, Andrei Fortuna wrote:
>>>The problem seems that when you get to the tiny details it is hard to write a
>>>very complex eval function in C/C++. Actually not hard to write but hard to
>>>debug and hard to add new terms for eval and modify values for existing ones.
>>>Not to mention hard to quickly test new ideas for eval.
>>
>>Not so much C/C++ is the problem, but the actual 1/0 behaviour of a computer
>>where a human can weight everything.
>>>So I was thinking that a meta language for eval would be a wonderful tool. What
>>
>>And wonderful slow.
>
>Have you read my message until the end before writing the above line ?
>
>>>I have in mind is something that would translate my human-like meta language
>>>into machine code that will replace my current evaluation function. Maybe even a
>>>translator that will generate valid C/C++ code tailored for my engine !
>>
>>Nah even better would be a robot creating the entire evaluation for us while we
>>lie down at the couch :)
>
>That's the whole idea : have a program generate the C/C++ eval function from a
>meta-language.
>
>>>Now : I know this or something very similar have been tried before. My questions
>>>to you, my friends, are :
>>
>>No it has not been tried before. Nimzo had some simplistic preprocessor language
>>one day but you could not define loops or scanning with it. Just simple
>>patterns.
>
>There is also CHEVAL written by J.C.Weil which is more general than that, but
>that one generates more likely piecesquare values using a set of general rules.
>
>CHE/CHE++ used in Nimzo looks pretty close to what I have in mind (they even
>have this code compiled to a custom format) but I think their syntax could be
>made nicer.

CHE++ is compiled to a java-like bytecode which is interpreted by a virtual
machine. However, I don't think that the code is used at every level of the
search, I think it may only be used at the root for move ordering (that is the
impression that I got after spending about 6 months using Che++ for a project).




This page took 0.01 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.