FCP
Revision as of 23:03, 1 January 2020 by GerdIsenberg (talk | contribs)
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 [1]:
- 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
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 [2]