Find your way. From darkness...
to light.
Knight of Cups
Acomip | "A Couple of Meta-interpreters in Prolog", collection of meta-interpreters and tutorial. |
Alana | A Turing machine simulator with many examples (unary and binary addition, subtraction, multiplication, a 5-state busy beaver, 2 string parsing examples, divisibility test, primality test) and a theoretical introduction to Turing machines. A more formal document about this is here. |
Alzint | Interpreter for AL(Z) (assignment language over integers), a simple Turing-complete programming language. Supports tracing and reverse execution. Written in Prolog. |
Blinkory | Memory game involving a sequence of blinking disks. |
cdvdmacs | Create data CDs and DVDs from within Emacs. |
CGIForum | Light-weight discussion board with expandable/collapsible threads, name registration, multiple sections, previewing, searching, and marking of new entries. Written in Perl. |
clpb | Constraint solver over Boolean variables that ships with SWI-Prolog. A show-case is here. |
clpfd | Finite domain constraint solver that ships with SWI-Prolog. Using a slightly modified version of a program by Mats Carlsson, you can for example solve instances of the social golfer problem with SWI-Prolog. An example with 8 games a week in groups of 4 (32 players in total) playing for 9 weeks is here. A short CLP(FD) primer is here. |
compnumerik.pdf | Short paper about numerical issues involved in approximating exponential and cosine functions using Taylor series. German. |
Conn4 | Connect 4 (four in a row, plot four) game that plays against itself. Prolog. |
Contests | Material from programming contests. |
DCG | Short introduction to Prolog definite clause grammars (DCGs). |
ediprolog | Emacs does Interactive Prolog. Elisp definitions to interact with SWI Prolog in arbitrary Emacs buffers. |
etrace | Graphical Prolog Tracer in Emacs. |
Finomaton | Finomaton lets you draw finite state machines (automata) and similar graphs. It outputs MetaPost code that can be transformed to PostScript and used in TeX and LaTeX documents. Written in Tcl/Tk. |
fourier.pdf | Short paper about Fourier series with some common example expansions. German. |
Freud | Standalone C++ port of the Emacs Psychiatrist, simulating a Rogerian analyst using phrase-production techniques similar to the classic ELIZA demonstration of pseudo-AI. |
galeshapley.pl | Gale-Shapley algorithm to find a stable matching/marriage, implemented in Prolog. A Prolog program that finds all stable matchings by exhaustive search is here: allstable.pl |
goco.tcl | "GO considered", minimalistic front-end for GNU Go. Written in Tcl/Tk (screenshot). |
Greenpoint | "Der grüne Punkt" in METAFONT. |
Hoarescope | Hoarescope helps to prove partial correctness assertions of AL programs over natural numbers using Hoare logic (Hoare calculus). The resulting proof tree is exported to LaTeX. If the remaining formulas are of Presburger arithmetic, you can use Presprover (see below) to see whether they are valid. A more formal paper about this is here. |
imimacs | Instant messaging in Emacs. Very simple IM system. |
Jind | An interactive interpreter for a toy programming language. You are to formulate how to get out of a rather general maze. Written in Java. |
jugs.maude | A water jugs puzzle expressed as a term rewriting system in Maude. A transcript of an example session is here. |
knight | Closed knight's tours on an NxN chessboard, written in Prolog. Example application of the circuit/1 constraint, describing a Hamiltonian circuit. |
knighttour.lisp | Finds a knight's tour on an 8x8 chessboard using first-fail heuristics (always choose the position which is reachable from the fewest other positions). Written in Lisp. |
linum | Emacs definitions for displaying line numbers to the left of buffers. |
Lisprolog | Interpreter and parser for a simple Lisp, written in Prolog. |
Logic | Logic stuff. |
magon | 3 ways to compute all magic hexagons of order 3. |
markov.pl | Markov chain demonstration, written in Prolog. Train a Markov chain of arbitrary order and use it for text generation. |
misc | Miscellaneous programs and code snippets, prototypes, work in progress etc. |
N-queens | N-queens constraint solving visualisation, written in Prolog. |
openwith.el | openwith.el lets you associate external applications with files, so that you can open them from within Emacs via C-x C-f, with RET in dired, etc. |
PceProlog | Emacs major mode for Prolog development, tailored for SWI Prolog. |
pointback | Emacs definitions for restoring previous window points when switching buffers. |
Presprover | Presprover can determine validity and/or satisfiability of all formulas of Presburger arithmetic. Written in Prolog. |
prost | Prolog streams (sequences, delayed/lazy/infinite lists) demonstration. |
Puzpan | Puzzle game involving a panel of squares. |
quine.pl | A Prolog quine, bootstrapped from this file. Prolog is fully reflexive, allowing for a more concise quine: quinerefl.pl. |
RITS | Rule-based Intelligent Tutoring System. Implements a domain-specific language for guiding students through solving tasks. Written in Prolog. |
scc.pl | Prolog library for computing the strongly connected components of a graph using Tarjan's algorithm. |
simplex | Prolog library for solving linear programming problems. Implements the simplex algorithm, and contains a streamlined version for solving transportation and assignment problems. Also contains a simplistic branch-and-bound implementation to solve mixed integer problems. A show-case is here. |
Simsttab | A timetabling engine for schools. Written in Prolog. |
Spakes | Snakes-Clone for up to 4 players that can be played across the Internet. Optionally, AI players (computer controlled) can join the game. Written in C++. |
Sudoku | Sudoku constraint solving visualisation, written in Prolog. |
Swap | File transfer program with resume-capability. Written in Tcl/Tk. |
Tickletankle | A 2-player game with fractal terrain that can be played locally or across the Internet or a LAN. You can play against a human player or a computer-controlled opponent (AI player). Written in Tcl/Tk. |
Tist | "Thinking in States"; various show-cases (puzzle, interpreter, compiler, virtual machine), realized using declarative approaches. Examples in Prolog, Haskell and J. |
trs.pl | Virtually verbatim Prolog translation of much of the ML code included in Term Rewriting and All That by Baader and Nipkow. |
UnicAPL | Enter and typeset APL/A+ in Emacs and LaTeX using Unicode. |
Wisemen | Demonstrates agent reasoning using constraint handling rules (CHR). See source file for documentation. |
worldcup.R | Statistical simulation of FIFA World Cup. |
Wumpus World | An AI-classic. Contains a framework to test your own agents and a simple example agent. Written in Prolog. |
Zurg | A Prolog solution to a search problem called "Escape from Zurg". |