Author: Roberto Waldteufel
Date: 10:15:46 07/12/98
Go up one level in this thread
On July 12, 1998 at 10:56:24, Don Dailey wrote: >On July 11, 1998 at 19:20:03, Roberto Waldteufel wrote: > >> >>On July 11, 1998 at 13:39:34, Don Dailey wrote: >> >>>On July 09, 1998 at 17:14:02, Roberto Waldteufel wrote: >>> >>>> >>>>On July 09, 1998 at 16:25:08, Bruce Moreland wrote: >>>> >>>>> >>>>>On July 09, 1998 at 12:38:17, Robert Hyatt wrote: >>>>> >>>>>>On July 09, 1998 at 10:31:08, Dave Gomboc wrote: >>>>>> >>>>>>>On July 08, 1998 at 20:33:41, Bruce Moreland wrote: >>>>>>> >>>>>>>> >>>>>>>>On July 08, 1998 at 17:27:41, Tom Kerrigan wrote: >>>>>>>> >>>>>>>>>My problem was that I invariably forgot about the dead-bit scheme and did all >>>>>>>>>sorts of calculations assuming that captured pieces existed. >>>>>>>> >>>>>>>>The only place they exist is in the piece list, and unless you are somehow >>>>>>>>randomly accessing your piece list, the only way you'll access this is via a >>>>>>>>loop, so write the loop once and copy-paste :-) >>>>> >>>>>>>Why copy-paste? What's wrong with a routine and an "inline this" compile >>>>>>>directive? >>>>> >>>>>It'd be hard to inline just the "for" and an "if". Sure, you could write an >>>>>iterator function that took another function as a parameter, inline everything, >>>>>and hope for the best, but I bet you wouldn't get the best every time. >>>>> >>>>>>two things. (1) the "inline" attribute in a program only applies to >>>>>>C++; (2) you can only "suggest" that a C compiler inline a function. Just >>>>>>like you can "suggest" that a variable be kept in a register by using >>>>>>"register int sq;". But you can't force it to happen, and you might eat >>>>>>a lot of function call overhead as a result... >>>>> >>>>>It is a suggestion in C++ as well. >>>>> >>>>>bruce >>>> >>>>OK, I'm going to stick my neck out and admit that I program in Basic - don't >>>>laugh too loudly. One thing that is available in that language is the $include >>>>directive, which includes the contents of a specified text file exactly as if it >>>>were typed instead of the $include statement. The same text file can be included >>>>in as many places as you like, so the kind of inline optimization discussed here >>>>is easy to implement. My compiler also allows Basic and assembler code to be >>>>freely intermixed, which is useful for speeding up critical parts of the code. I >>>>don't know how well it would compare with C, however. Does anyone else use >>>>anything but C to write chess programs? >>>> >>>>Best wishes, >>>>Roberto >>> >>>There is no magic language you should use to write chess programs. The >>>advantages of C are that the compilers are quite good and C is widely >>>available in many platforms. Basic may be quite good too, I don't >>>really know but I suspect the good compiler technology exists for >>>basic also so I don't see why not. The #include "filename" works >>>just fine in C and probably other languages as well. >>> >>>My own personal opinion is that most languages will work and it should >>>be possible to write a very strong program in them. However you cannot >>>expect an interpreted language to work well because of the speed. >>>So compiled Basic, Pascal, C and others should be fine. >>>Rexchess was written in assembly with a little Pascal mixed in. >>> >>>I do think you might have a small edge in using C since it's usually >>>cutting edge and often considered the language of choice for fast >>>efficient optimizations. If you are adding assembly code (and doing >>>it well) there may little or no difference however. >>> >>>I think it is more important to be happy with the language you are >>>using and feeling productive and comfortable with it. >>> >>>- Don >> >>Hi Don, >> >>I have heard about all sorts of compiler optimization available in C compilers, >>but since I am used to Basic I have stuck with it. Until very recently I only >>had a 16-bit compiler for Basic to create DOS applications, but the >>manufacturers (PowerBasic Inc) have recently released two 32-bit Basic compilers >>for creating Windows programs with very similar syntax to the DOS versions. I >>ported my old code to the new compiler, and it's pretty fast now. The PowerBasic >>compiler also does some fancy optimisation stuff (eg register variables), but I >>have no idea how well it compares to C. It is certainly orders of magnitude >>faster than the Visual Basic Compiler, which is really only an interpretter >>anyway. Interestingly, they have stated there intention to develop versions of >>this compiler for other platforms such as linux and unix in the future, which >>would make it very portable. I mainly use the assembler for doing loops through >>bitboards, since then I can do everything in registers instead of RAM. >> >>I do find it disheartening that everyone quotes code in C, because I have to >>struggle to make any sense of it. I can generally understand Pascal easily >>enough, because the syntax is very similar to Basic, and also to a large extent >>Fortran, although I haven't seen any Fortran code in decades now. >> >>BTW did you manage to find your old RexChess preprocessor code that you >>developped with Larry? You said yo would send it to me of you could find it. >> >>Best wishes, >>Roberto > > >I did not find the RexChess source code at all. I went through every >possible source I have (old boxes of diskettes etc.) Unfortunately >I am not always as well organized as I wish I were. It looks like >this is lost forever. > >However I found a later program of mine with a pre-processor and 2 >separate "rulebases", one for middle and one for endgames. But >the pre-processor is mixed in with dynamic evaluation ulike REX >which was (except for a few pawn structure terms) entirely piece >square pre-processed tables. > >The only >problem is that I don't really have the rights to this program and >could not make them available in good conscience. I am planning on >checking into this after contacting the company that does have the >rights to it. It's the program that won the 93 ACM international >championship, it's old enough that they might not be interested in it >anymore. I also must check with Larry Kaufman who is co-author with >me on this one. If they say no then I must say no too. I have to >also re-check the contract, there may be a date clause or something. >But I will honor their wishes. > >My plan is to make it public domain if possible. I will make some >changes that will definitely strengthen it too. All this is >hypothetical so we will have to see. The program should be very >strong though, it's quite a bit stronger than anything of mine that >ever got released. The user interface may not be too cool at first >until I figure out what to do about it. Perhaps the first pass will >be xboard (and winboard) compatibility. > >Someone should write a super cool GUI for chess programs (at least for >Unix and Windows) that's trivial to interface and public domain. >Something a lot better than Xboard. Does anyone know about compatible >gui libraries that are not commercial? I've considered XFORMS (unix) >but there is no windows version although there is talk of development. >tcl/tk or just tk is one possiblility which I think is available on >both platforms. Does anyone else have a good sense of what is available >and non-commercial? > >- Don Hi Don, Of course you must check that you are not giving away code you are not at liberty to divulge. I hope you are right in thinking that the company with the rights to the code won't mind. It sounds very interesting. I don't think it matters at all if the program has a crude interface. What is most interesting to me is the rulebase and preprocessor source code - the rules themselves, rather than the finished program. I already do some preprocessing and some dynamic evaluation, and try to distribute the work in such a way that the preprocessor handles long-term factors while the dynamic evaluations handle the more transient ones. It sounds as if the program you are referring to does something similar, but doubtless with a lot more terms involved. Good luck, Roberto
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.