HOME

TheInfoList



OR:

A Turing tarpit (or Turing tar-pit) is any
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
or
computer interface In computing, an interface is a shared boundary across which two or more separate components of a computer system exchange information. The exchange can be between software, computer hardware, peripheral devices, humans, and combinations of the ...
that allows for flexibility in function but is difficult to learn and use because it offers little or no support for common tasks. The phrase was coined in 1982 by Alan Perlis in the '' Epigrams on Programming'': In any Turing complete language, it is possible to write any computer program, so in a very rigorous sense nearly all programming languages are equally capable. However, having that theoretical ability is not the same as usefulness in practice. Turing tarpits are characterized by having a simple
abstract machine An abstract machine is a computer science theoretical model that allows for a detailed and precise analysis of how a computer system functions. It is analogous to a mathematical function in that it receives inputs and produces outputs based on pr ...
that requires the user to deal with many details in the solution of a problem. At the extreme opposite are interfaces that can perform very complex tasks with little human intervention but become obsolete if requirements change slightly. Some
esoteric programming languages An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, as software art, as a hacking interface to another language ...
, such as
Brainfuck Brainfuck is an esoteric programming language created in 1993 by Urban Müller. Notable for its extreme minimalism, the language consists of only eight simple commands, a data pointer and an instruction pointer. While it is fully Turing com ...
, are specifically referred to as "Turing tarpits" because they deliberately implement the minimum functionality necessary to be classified as Turing complete languages. Using such languages is a form of mathematical recreation: programmers can work out how to achieve basic programming constructs in an extremely difficult but mathematically Turing-equivalent language.Esoteric Topics in Computer Programming
Cat's Eye Technologies, Canada. (''"They present the programmer with the challenge, intrigue, and entertainment of looking at known algorithms and concepts in a whole new light."'')


See also

* Greenspun's tenth rule *
Write-only language In computer humor, a write-only language is a pejorative term for a programming language alleged to have syntax or semantics sufficiently dense and bizarre that any routine of significant size is too difficult to understand by other programmers an ...
* Zawinski's law of software envelopment


References


Further reading

* G. Fischer, A.C. Lemke
"Constrained Design Processes: Steps Toward Convivial Computing"
Technical Report CU-CS-369-87,
Colorado University The University of Colorado (CU) is a system of public universities in Colorado. It consists of four institutions: University of Colorado Boulder, University of Colorado Colorado Springs, University of Colorado Denver, and the University of Co ...
, USA. * E.L. Hutchins, J.D. Hollan, D.A. Norman, . Also found in {{cite book, author1=Donald A. Norman, author2=Stephen W. Draper, title=User Centered System Design: New Perspectives on Human-computer Interaction, url=https://books.google.com/books?id=Qz5jQgAACAAJ, date=1 January 1986, publisher=Taylor & Francis, isbn=978-0-89859-872-8 * Esolangs
Turing Tarpit
Alan Turing Recreational mathematics Theory of computation Software engineering folklore