- Turing tarpit
**Turing tar pit**is a general term for aprogramming language designed to beTuring-complete while in some sense simplifying to the greatest extent possible both the syntax and the semantics of the language. Such a language gives up certain practical goals (such as ease of coding, performance, etc.) in favor of others (e.g., proving non-computability of certain functions, illustrating basic principles of programming, providing simple bases for computational models, etc.). Thus it is of interest intheoretical computer science . (Manyesoteric programming language s are also Turing tarpits.)Originally: "54. Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy." --

Alan Perlis , "Epigrams on Programming " [*http://www-pu.informatik.uni-tuebingen.de/users/klaeren/epigrams.html*] .**Examples**Well-known Turing tarpits include

*Brainfuck

*Combinatory logic , especiallybinary combinatory logic

*INTERCAL

*Pure untypedlambda calculus

*OISC (a machine whose instruction set contains only one instruction doing something like "subtract and branch if negative")

*PDP-8 assembly language (one of the few commercially successful Turing tarpits)

*TheTuring machine itself

*UnlambdaThere are two sometimes-divergent approaches with which computer scientists struggle when designing a tarpit: one may lean towards fewer instructions, or one may lean towards fewer recognized symbols. Some results of this struggle have been

*Binary combinatory logic : 2 term-rewriting rules, 2 symbols

*Brainfuck : 8 instructions, 8 symbols

*Iota and Jot : 2 operations, 2 symbols

*OISC : 1 instruction, 3 symbols (signed unary with a separator)

*Thue: 1 Instruction, 128+ symbols**References**# Alan Perlis, [

*http://www-pu.informatik.uni-tuebingen.de/users/klaeren/epigrams.html Epigrams on Programming*] , SIGPLAN Notices Vol. 17, No. 9, September 1982, pages 7 - 13.**ee also***

Greenspun's Tenth Rule

*Zawinski's law of software envelopment

*Wikimedia Foundation.
2010.*