Programming

Home * Programming

This is about general purpose programming topics with focus on computer chess - programming languages, algorithms, data and various optimization techniques and standards.

=Programming Topics=

Basics

 * Algorithms
 * Data
 * Program
 * Process
 * Thread
 * Programming Language
 * HTML notes
 * Space-Time Tradeoff

Parallelism

 * Parallel Computing
 * Parallel Prefix Algorithms
 * Parallel Search
 * SIMD and SWAR Techniques

Misc Programming

 * Dynamic Programming
 * Generic Programming
 * Genetic Programming

GUI Programming
=Bug Hunting=
 * Graphics Programming
 * Graphical User Interface
 * Debugging
 * Logging

=Optimization=
 * Avoiding Branches
 * Performance Measurement
 * Profiling

=Standards=

Position

 * EPD - Extended Position Description
 * FEN - Forsyth-Edwards Notation

Games

 * PGN - Portable Game Notation

Protocols

 * Chess Engine Communication Protocol
 * Universal Chess Interface

=See also=
 * Bit-Twiddling
 * CPW-Engine
 * Software

=Selected Publications=
 * Maurice Wilkes, David Wheeler, Stanley Gill (1951). The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley, 1st edition, amazon.com; 2nd edition 1957, amazon.com
 * Lazar A. Lyusternik, Aleksandr A. Abramov, Victor I. Shestakov, Mikhail R. Shura-Bura (1952). Programming for High-Speed Electronic Computers. (Программирование для электронных счетных машин)
 * Stanley Gill (1958). Parallel Programming. The Computer Journal, Vol. 1, No. 1
 * Christopher Strachey (1966). System Analysis and Programming. Scientific American, September 1966, re-published August 23, 2011
 * Edsger Dijkstra (1968). Go To Statement Considered Harmful. Communications of the ACM, Vol. 11, No. 3, |pdf]
 * Ward Douglas Maurer (1968). Programming: An Introduction to Computer Languages and Techniques. Holden-Day
 * Donald E. Knuth (1968 ...). The Art of Computer Programming (TAOCP)
 * Volume 1 - Fundamental Algorithms (1968)
 * Volume 2 - Seminumerical Algorithms (1969)
 * Volume 3 - Sorting and Searching (1973)
 * Volume 4 - Combinatorial Algorithms in preparation (five fascicles have been published as of April 2009)
 * Volume 4A - Enumeration and Backtracking
 * Volume 4B - Graph and Network Algorithms
 * Volume 4C and possibly 4D - Optimization and Recursion
 * Volume 5 - Syntactic Algorithms, planned (as of August 2006, estimated in 2015).


 * Donald Knuth (1974). Structured Programming with go to Statements. ACM Computing Surveys, Vol. 6, No. 4, pdf » goto
 * John Hughes (1984). Why Functional Programming Matters. Chalmers Tekniska Högskola, Göteborg, pdf » Alpha-Beta
 * Steve McConnell (1993). Code Complete: A Practical Handbook of Software Construction. Microsoft Press
 * Brian W. Kernighan, Rob Pike (1999). The Practice of Programming. Addison-Wesley
 * Marek Strejczek (2004). Some aspects of chess programming. Technical University of Łódź, Faculty of Electrical and Electronic Engineering, Department of Computer Science, Supervisor Maciej Szmit, zipped pdf, pdf

=Forum Posts=
 * Big new ideas in chess programming by John Smith, CCC, September 19, 2013
 * Photographing Chess Clock by Harm Geert Muller, CCC, October 10, 2016

=External Links=
 * Computer programming from Wikipedia
 * Rosetta Code, Rosetta Code from Wikipedia

Computation

 * Model of computation from Wikipedia
 * Turing machine
 * Lambda calculus
 * First-order logic


 * Parallel computing from Wikipedia
 * Bit-level parallelism
 * Instruction-level parallelism
 * Task parallelism

Paradigms

 * Programming paradigm from Wikipedia
 * Aspect-oriented programming
 * Data-driven programming
 * Declarative programming
 * Dynamic programming language
 * Functional programming
 * Imperative programming
 * Inductive Logic Programming
 * Logic programming
 * Metaprogramming
 * Object-oriented programming
 * Procedural programming

Misc

 * Dynamic programming from Wikipedia
 * Generic programming from Wikipedia
 * Genetic programming from Wikipedia
 * Integer programming from Wikipedia
 * Linear programming from Wikipedia
 * Stochastic programming from Wikipedia
 * Programming tool from Wikipedia
 * Horizon Chess - Main - Programming by Ron Murawski
 * Useful Programming Documents and Books from Document archive
 * Game programming lecture notes by Andy Thomason
 * A Programmers Place by Maarten van Emden
 * Program optimization from Wikipedia
 * Programming Optimization by Paul Hsieh
 * research!rsc - Computer programming links, collected by Russ Cox
 * How Computer Chess Changed Programming from |IEEE Spectrum online
 * YouTube channel by Barbara Hecker
 * Chess Engine In C - YouTube Videos by BlueFeverSoft » Vice, C
 * Programming A Javascript Chess Engine - YouTube Videos by BlueFeverSoft » JavaScript

=References=

Up one Level