abstract machine alan turing algorithmic information theory alonzo church analytical engine automata theory brainfuck category theory cellular automaton charles babbage chomsky hierarchy common lisp compiler computable function computer computer program declarative programming dependent type digital physics eniac esoteric programming language finite state machine formal grammar formal language functional programming halting problem hypothesis konrad zuse lambda calculus logic programming machine that always halts multi-paradigm programming language object-oriented programming language opengl procedural programming programming language prolog pushdown automaton recursion sql smn theorem spreadsheet stephen wolfram system f theoretical computer science turing machine turing reduction turing tarpit universal turing machine universe xsl transformations