Older Version
Newer Version
GerdIsenberg
Dec 16, 2017
[[toc]] **[[Home]] * Programming** This is about general purpose [[http://en.wikipedia.org/wiki/Computer_programming|programming]] topics with focus on computer chess - [[Languages|programming languages]], [[Algorithms|algorithms]], [[Data|data]] and various optimization techniques and standards. =Programming Topics= [[#Languages]] ==Basics== * [[Algorithms]] * [[Data]] * [[Program]] * <span style="line-height: 1.5;">[[Process]]</span> * <span style="line-height: 1.5;"> </span><span style="line-height: 1.5;">[[Thread]]</span> * [[Languages|Programming Language]] * [[How to code html|HTML notes]] * [[Space-Time Tradeoff]] [[#Parallelism]] ==Parallelism== * [[Parallel Computing]] * [[Parallel Prefix Algorithms]] * [[Parallel Search]] * [[SIMD and SWAR Techniques]] ==Misc Programming== * [[Dynamic Programming]] * [[Generic Programming]] * [[Genetic Programming]] ==GUI Programming== * [[Graphics Programming]] * [[GUI|Graphical User Interface]] =Bug Hunting= * [[Debugging]] * [[Logging]] =[[Optimization]]= * [[Avoiding Branches]] * [[Performance Measurement]] * [[Profiling]] =Standards= ==[[Chess Position|Position]]== * [[Extended Position Description|EPD]] - Extended Position Description * [[Forsyth-Edwards Notation|FEN]] - [[David Forsyth|Forsyth]]-[[Steven Edwards|Edwards]] Notation ==[[Chess Game|Games]]== * [[Portable Game Notation|PGN]] - Portable Game Notation [[#ComputerChessProtocols]] ==[[Protocols]]== * [[Chess Engine Communication Protocol]] * [[UCI|Universal Chess Interface]] =See also= * [[Bit-Twiddling]] * [[CPW-Engine]] * [[Software]] =Selected Publications= * [[Mathematician#MVWilkes|Maurice Wilkes]], [[Mathematician#DJWheeler|David Wheeler]], [[http://en.wikipedia.org/wiki/Stanley_Gill|Stanley Gill]] (**1951**). //The Preparation of Programs for an Electronic Digital Computer//. Addison-Wesley Press; 1st edition, [[http://www.amazon.com/preparation-programs-electronic-digital-computer/dp/B0007DWTT0|amazon.com]]; 2nd edition 1957, [[http://www.amazon.com/preparation-programs-electronic-Addison-Wesley-mathematics/dp/B0006AV1QQ|amazon.com]] <ref>[[http://en.wikipedia.org/wiki/Electronic_Delay_Storage_Automatic_Calculator|Electronic Delay Storage Automatic Calculator from Wikipedia]]</ref> * [[http://en.wikipedia.org/wiki/Stanley_Gill|Stanley Gill]] (**1958**). //[[http://comjnl.oxfordjournals.org/content/1/1/2.abstract|Parallel Programming]]//. [[http://comjnl.oxfordjournals.org/content/1/1.toc|The Computer Journal, Vol. 1, No. 1]] * [[Christopher Strachey]] (**1966**). //[[http://www.scientificamerican.com/article.cfm?id=system-analysis-and-programming-christopher-strachey|System Analysis and Programming]]//. [[Scientific American]], September 1966, re-published August 23, 2011 * [[Mathematician#EWDijkstra|Edsger Dijkstra]] (**1968**). //Go To Statement Considered Harmful//. [[ACM#Communications|Communications of the ACM]], Vol. 11, No. 3, [[http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF|pdf]] <ref>[[http://en.wikipedia.org/wiki/Considered_harmful|Considered harmful from Wikipedia]]</ref> <ref>[[http://www.codinghorror.com/blog/2007/10/id-consider-that-harmful-too.html|Coding Horror: I'd Consider That Harmful, Too]] by [[http://en.wikipedia.org/wiki/Jeff_Atwood|Jeff Atwood]], October 25, 2007</ref> * [[Ward Douglas Maurer]] (**1968**). //[[http://books.google.com/books/about/Programming.html?id=wBgnAAAAMAAJ&redir_esc=y|Programming: An Introduction to Computer Languages and Techniques]]//. Holden-Day * [[Donald Knuth|Donald E. Knuth]] (**1968 ...**). //[[http://www-cs-faculty.stanford.edu/~knuth/taocp.html|The Art of Computer Programming (TAOCP)]]// <ref>[[http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming|The Art of Computer Programming from Wikipedia]]</ref> > 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 #Surveys|ACM Computing Surveys]], Vol. 6, No. 4, [[http://cs.sjsu.edu/~mak/CS185C/KnuthStructuredProgrammingGoTo.pdf|pdf]] » [[C#Goto|goto]] * [[http://en.wikipedia.org/wiki/John_Hughes_%28computer_scientist%29|John Hughes]] (**1984**). //Why Functional Programming Matters//. [[http://en.wikipedia.org/wiki/Chalmers_University_of_Technology|Chalmers Tekniska Högskola]], [[http://en.wikipedia.org/wiki/Gothenburg|Göteborg]], [[http://www.cse.chalmers.se/~rjmh/Papers/whyfp.pdf|pdf]] » [[Alpha-Beta]] * [[http://www.stevemcconnell.com/aboutme.htm|Steve McConnell]] (**1993**). //[[http://www.stevemcconnell.com/cc1.htm|Code Complete: A Practical Handbook of Software Construction]]//. [[http://en.wikipedia.org/wiki/Microsoft_Press|Microsoft Press]] * [[http://en.wikipedia.org/wiki/Brian_Kernighan|Brian W. Kernighan]], [[http://en.wikipedia.org/wiki/Rob_Pike|Rob Pike]] (**1999**). //[[http://en.wikipedia.org/wiki/The_Practice_of_Programming|The Practice of Programming]]//. [[http://en.wikipedia.org/wiki/Addison-Wesley|Addison-Wesley]], ISBN: ISBN 0-201-61586-X * [[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]], [[http://nesik.republika.pl/download//SomeAspectsOfChessProgramming.zip|zipped pdf]], [[http://www.top-5000.nl/ps/SomeAspectsOfChessProgramming.pdf|pdf]] =Forum Posts= * [[http://www.talkchess.com/forum/viewtopic.php?t=49390|Big new ideas in chess programming]] by John Smith, [[CCC]], September 19, 2013 * [[http://www.talkchess.com/forum/viewtopic.php?t=61672|Photographing Chess Clock]] by [[Harm Geert Muller]], [[CCC]], October 10, 2016 =External Links= * [[http://en.wikipedia.org/wiki/Computer_programming|Computer programming from Wikipedia]] * [[http://rosettacode.org/wiki/Rosetta_Code|Rosetta Code]], [[https://en.wikipedia.org/wiki/Rosetta_Code|Rosetta Code from Wikipedia]] ==Computation== * [[http://en.wikipedia.org/wiki/Model_of_computation|Model of computation from Wikipedia]] > [[http://en.wikipedia.org/wiki/Turing_machine|Turing machine]] > [[http://en.wikipedia.org/wiki/Lambda_calculus|Lambda calculus]] > [[http://en.wikipedia.org/wiki/First-order_logic|First-order logic]] * [[http://en.wikipedia.org/wiki/Parallel_computing|Parallel computing from Wikipedia]] > [[http://en.wikipedia.org/wiki/Bit-level_parallelism|Bit-level parallelism]] > [[http://en.wikipedia.org/wiki/Instruction-level_parallelism|Instruction-level parallelism]] > [[http://en.wikipedia.org/wiki/Task_parallelism|Task parallelism]] ==Paradigms== * [[http://en.wikipedia.org/wiki/Programming_paradigm|Programming paradigm from Wikipedia]] > [[http://en.wikipedia.org/wiki/Aspect-oriented_programming|Aspect-oriented programming]] > [[http://en.wikipedia.org/wiki/Data-driven_programming|Data-driven programming]] > [[http://en.wikipedia.org/wiki/Declarative_programming|Declarative programming]] > [[http://en.wikipedia.org/wiki/Dynamic_programming_language|Dynamic programming language]] > [[http://en.wikipedia.org/wiki/Functional_programming|Functional programming]] > [[http://en.wikipedia.org/wiki/Imperative_programming|Imperative programming]] > [[http://en.wikipedia.org/wiki/Inductive_logic_programming|Inductive Logic Programming]] > [[http://en.wikipedia.org/wiki/Logic_programming|Logic programming]] > [[http://en.wikipedia.org/wiki/Metaprogramming|Metaprogramming]] > [[http://en.wikipedia.org/wiki/Object-oriented_programming|Object-oriented programming]] > [[http://en.wikipedia.org/wiki/Procedural_programming|Procedural programming]] ==Misc== * [[http://en.wikipedia.org/wiki/Dynamic_programming|Dynamic programming from Wikipedia]] * [[http://en.wikipedia.org/wiki/Generic_programming|Generic programming from Wikipedia]] * [[http://en.wikipedia.org/wiki/Genetic_programming|Genetic programming from Wikipedia]] * [[http://en.wikipedia.org/wiki/Integer_programming|Integer programming from Wikipedia]] <ref>[[http://www2.isye.gatech.edu/~wcook/|William Cook]] (**2009**). //Fifty-Plus Years of Combinatorial Integer Programming//. [[http://www2.isye.gatech.edu/~wcook/papers/ip50.pdf|pdf]]</ref> * [[http://en.wikipedia.org/wiki/Stochastic_programming|Stochastic programming from Wikipedia]] * [[http://en.wikipedia.org/wiki/Programming_tool|Programming tool from Wikipedia]] * [[http://www.horizonchess.com/pmwiki.php?n=Main.Programming|Horizon Chess - Main - Programming]] by [[Ron Murawski]] * [[http://doc.cat-v.org/programming/|Useful Programming Documents and Books]] from [[http://doc.cat-v.org/|Document archive]] * [[http://andythomason.com/lecture_notes/|Game programming lecture notes]] by [[Andy Thomason]] * [[http://vanemden.wordpress.com/|A Programmers Place]] by [[Maarten van Emden]] * [[http://en.wikipedia.org/wiki/Program_optimization|Program optimization from Wikipedia]] * [[http://www.azillionmonkeys.com/qed/optimize.html|Programming Optimization]] by [[Paul Hsieh]] * [[http://research.swtch.com/|research!rsc]] - Computer programming links, collected by [[http://swtch.com/~rsc/|Russ Cox]] * [[http://spectrum.ieee.org/slideshow/computing/software/how-computer-chess-changed-programming|How Computer Chess Changed Programming]] from [[http://spectrum.ieee.org/|IEEE Spectrum online]] * [[http://www.youtube.com/user/bjhecker/videos?view=1&tag_id=&sort=dd|YouTube channel]] by [[http://itu.edu/index.php/academics/engineering-management/bhecker/|Barbara Hecker]] <ref>[[http://www.talkchess.com/forum/viewtopic.php?t=48599|Barbara Hecker's YouTube channel]] by [[Julien Marcel]], [[CCC]], July 09, 2013</ref> * [[http://www.youtube.com/playlist?list=PLZ1QII7yudbc-Ky058TEaOstZHVbT-2hg|Chess Engine In C]] - [[http://en.wikipedia.org/wiki/YouTube|YouTube]] Videos by [[BlueFeverSoft]] » [[Vice]], [[C]] * [[http://www.youtube.com/playlist?list=PLZ1QII7yudbe4gz2gh9BCI6VDA-xafLog|Programming A Javascript Chess Engine]] - [[http://en.wikipedia.org/wiki/YouTube|YouTube]] Videos by [[BlueFeverSoft]] » [[JavaScript]] =References= <references /> **[[Home|Up one Level]]**