Languages

Home * Programming * Languages

Chess programming is dominated by the C and C++ languages. The strongest engine in a non-C language is currently Booot written by Alex Morozov in Delphi. Critter was also originally written in Delphi, but was rewritten in C++ after running into too many 64-bit bugs in the Delphi compiler. The next strongest non-Delphi, non-C program is CuckooChess written in Java.

=Classical Languages= Compiled and interpreted languages.
 * Ada
 * Algol
 * Assembly
 * Basic
 * C
 * C#
 * Cilk
 * C++
 * D
 * Delphi
 * Forth
 * Fortran
 * Go (Programming Language)
 * Haskell
 * Java
 * Lisp
 * Modula-2
 * OCaml
 * OpenCL
 * Pascal
 * PL/I
 * Prolog
 * Python
 * Ruby
 * Rust
 * Scheme
 * Simula

=Scripting Languages=
 * Scripting languages from Wikipedia
 * The pawn language from CompuPhase
 * JavaScript
 * Perl
 * Tcl/Tk

=Chess Languages=
 * CHE
 * Chess-Lisp for Steven Edwards' program Symbolic
 * Chess Query Language
 * MACH

=Game Languages=
 * Casanova
 * Game Description Language
 * Zillions Rules Language

=Publications=

1950 ...

 * Noam Chomsky (1956). Three models for the Description of Language. IEEE Transactions on Information Theory, Vol. 2, pdf

1960 ...

 * Christopher Strachey, Maurice Wilkes (1961). Some Proposals for Improving the Efficiency of ALGOL 60. Communications of the ACM, Vol. 4, No. 11
 * V. I. Sobel'man, Mikhail R. Shura-Bura (1962). Realization of recursive procedures in the language of AlGOL-60. (Реализация Рекурсивных Процедур В Языке Алгол-60) Zhurnal Vychislitel'noi Matematiki i Matematicheskoi Fiziki, Vol. 2, No. 2
 * Noam Chomsky, Marcel P. Schützenberger (1963). The Algebraic Theory of Context Free Languages. in P. Braffort, D. Hirschberg, Computer Programming and Formal Languages. Amsterdam: North Holland
 * Christopher Strachey (1967, 2000). Fundamental Concepts in Programming Languages. Higher-Order and Symbolic Computation, Vol. 13: 11–49
 * Edsger Dijkstra (1968). Go To Statement Considered Harmful. Communications of the ACM, Vol. 11, No. 3, pdf
 * Bertram Vivian Bowden (1969). The Language of Computers. Literature: Reports hosted by Atlas Computer Laboratory

1970 ...

 * Dana Scott, Christopher Strachey (1971). Toward an Mathematical Semantics for Computer Languages. pdf
 * William A. Wulf (1971). Programming Without the GOTO. IFIP, Ljubljana, Yugoslavia, August 1971 » goto
 * William A. Wulf, et al. (1971). Reflections on a Systems Programming Language. Proceedings of the SIGPLAN Symposium on System Implementation Languages, Purdue University, October 1971
 * William A. Wulf (1972). A Case Against the GOTO. Proceedings of the ACM National Conference, Boston, August 1972 » goto
 * William A. Wulf, Mary Shaw (1973). Global Variables Considered Harmful. SIGPLAN Notices Vol. 8, No. 2, February 1973
 * Mike Clarke (1973). Some Ideas for a Chess Compiler. Artificial and Human Thinking, reprinted 1988 in Computer Chess Compendium
 * Donald Knuth (1974). Structured Programming with go to Statements. ACM Computing Surveys, Vol. 6, No. 4, pdf » goto
 * Donald Michie (1976). AL1: a package for generating strategies from tables. ACM SIGART Bulletin, Issue 59

1980 ...

 * William A. Wulf, Mary Shaw, Paul N. Hilfinger, Lawrence Flon (1980). Fundamental Structures of Computer Science. Addison-Wesley, amazon.com
 * Michael George (1988). MACH: A Master Advisor for CHess. M.Sc. thesis, University of Alberta

1990 ...

 * Gilad Bracha, Gary Lindstrom (1992). Modularity meets inheritance. ICCL 1992, CiteSeerX
 * Henri Bal, Dick Grune (1994). Programming Language Essentials. Addison-Wesley
 * Chrilly Donninger (1996). CHE: A Graphical Language for Expressing Chess Knowledge. ICCA Journal, Vol. 19, No. 4
 * Matthew Huntbach (1998). Aldwych: A General Purpose Concurrent Language. Department of Computer Science. Queen Mary and Westfield College, pdf
 * Andrew Appel (1998). Modern Compiler Implementation in ML. Cambridge University Press
 * Liwu Li (1999). Object-Oriented Essential Modeling. APSEC 1999

2000 ...

 * John Romein, Henri Bal, Dick Grune (2000). The Multigame Reference Manual. Vrije Universiteit, pdf
 * John Romein (2001). Multigame - An Environment for Distributed Game-Tree Search. Ph.D. thesis, Vrije Universiteit, supervisor Henri Bal, pdf
 * Jónheiður Ísleifsdóttir (2007). GTQL: A Query Language for Game Trees. M.Sc. thesis, Reykjavík University, pdf
 * Yngvi Björnsson, Jónheiður Ísleifsdóttir (2007). GTQL: A Query Language for Game Trees. CGW 2007
 * Jónheiður Ísleifsdóttir, Yngvi Björnsson. (2008). GTQ: A Language and Tool for Game-Tree Analysis. CG 2008, pdf

2010 ...

 * Giuseppe Maggiore, Alvise Spanò, Renzo Orsini, Giulia Costantini, Michele Bugliesi, Mohamed Abbadi (2011). Designing Casanova: A Language for Games. Advances in Computer Games 13
 * Mohamed Abbadi, Francesco Di Giacomo, Giuseppe Maggiore, Aske Plaat, Renzo Orsini, Pieter Spronck (2013). Resources, Entities, Actions. A generalized design pattern for RTS games and its language extension in Casanova. CG 2013, pdf
 * Ward Douglas Maurer (2013). A Programming Language without Keywords. Computer and Information Science, Vol. 6, No. 1

2020 ...

 * Manuel Cristóbal López-Michelone, Jorge Luis Ortega-Arjona (2020). A description language for chess. ICGA Journal, Vol. 42, No. 1

=Forum Posts=
 * Engines written in which programming language? by Andreas Herrmann, Winboard Forum, June 01, 2009
 * Programming language features for computer chess by Fabien Letouzey, CCC, January 27, 2011
 * How beautiful is your code? by Julien Marcel, CCC, January 15, 2013
 * [OT LOC counting tool] by Martin Sedlak, CCC, May 02, 2015

=External Links=

General

 * Programming language theory from Wikipedia
 * Formal language from Wikipedia
 * Chomsky hierarchy from Wikipedia
 * Chomsky–Schützenberger theorem from Wikipedia
 * Wikipedia: List of programming languages by category
 * Computer Programming from Wikibooks
 * Computer Programming/Hello world

Miscellaneous

 * Compiler Description Language
 * Flux Home
 * GPU-Programming from AMD Developer Central
 * Interface Description Language
 * Unified Modeling Language
 * Bjarne Stroustrup: The 5 Programming Languages You Need to Know, YouTube Video

=References=

Up one Level