FCP

Home * Engines * FCP

FCP, (Forth Chess Program) a chess engine by Ian Osgood, written as an exercise in learning the Forth programming language, originally derived from Tom Kerrigan's simple chess program TSCP 1.71. At the time it was started, there were no other chess programs in Forth which used modern search techniques. FCP retains the values of small footprint (< 64K) and code clarity. Normally, FCP is used from the Forth command line. There are also drivers for working in XBoard and running EPD test suites.

=Enhancements= Although FCP started with a nearly identical evaluation function as an aid to detecting bugs when porting from C to Forth, FCP diverged from TSCP in many ways :
 * 0x88
 * Piece lists
 * Track king positions for faster check detection
 * Procedural move generation with loop unrolling
 * Alpha-beta with aspiration windows
 * Using the open parameter stack allows only passing alpha to search and quiescence (the alpha from the ancestor node is -beta for this node)
 * Killer heuristic
 * Null move pruning
 * Check extensions
 * Incremental material and pawn evaluation
 * Opening Book

=See also=
 * Brainless by David Kühling
 * TSCP

=Forum Posts=
 * TSCP enhancements (Re: Short chess programs) by Ian Osgood, CCC, September 19, 2002
 * Go FORTH and multiply with FCP...	by Christopher Conkie, CCC, September 08, 2007
 * Re: Go FORTH and multiply with FCP... by Ian Osgood, CCC, September 08, 2009

=External Links=
 * FCP home page
 * Forth application benchmark suite (ZIP) contains both FCP and another Forth chess program called Brainless by David Kühling

=References= Up one Level