Tarpit de Turing
Le puits de goudron de Turing de est une limite générale pour un des langages de programmation ésotériques de du divers conçus pour être le Turing-complet tandis que dans un certain sens simplifiant dans la plus large mesure possible la syntaxe et la sémantique de la langue. Une telle langue abandonne certains buts pratiques (tels que la facilité du codage, de l'exécution, etc.) en faveur de d'autres (par exemple, prouvant le non-computability de certaines fonctions, illustrant des principes de base de la programmation, fournissant les bases simples pour les modèles informatiques, etc. Ainsi elle est d'intérêt pour le de l'informatique théorique.
À l'origine : " ; 54. Prendre garde du goudron-puits de Turing dans lequel tout est possible mais rien d'intérêt n'est facile. " de ; -- Alan Perlis , " ; épigrammes de sur programmer le " de ; .
Exemples
Les tarpits bien connus de Turing incluent leBrainfuck
Automates cellulaires
Logique combinatoire , particulièrement logique combinatoire binaire de
INTERCAL
Calcul non classé pur du lambda
OISC (une machine dont l'ensemble d'instruction contient seulement une instruction faisant quelque chose comme le " ; soustraire et s'embrancher si le negative" ;)
PDP-8 langage d'assemblage (un des quelques tarpits commercialement réussis de Turing)
La machine lui-même de Turing de
Unlambda
Il y a deux approches parfois-divergentes avec lesquelles les informaticiens luttent en concevant un tarpit : on peut se pencher vers peu d'instructions, ou on peut se pencher vers moins des symboles identifiés. Quelques résultats de cette lutte ont été
Logique combinatoire binaire : 2 règles de limite-réécriture, 2 symboles
Brainfuck : 8 instructions, 8 symboles
Le iota et prennent : 2 opérations, 2 symboles
OISC : 1 instruction, 3 symboles (unaire signé avec un séparateur)
Thue : 1 instruction, symboles 128+
Utilisation d'expression dans de l'informatique
Le d'expression le tarpit de Turing est également entendu de temps en temps dans les arguments entre les partisans des langages de programmation deux ou plus différents chaque revendication de leur langue est meilleur que l'autre Elle se rapporte à la tendance des participants à ces discussions d'essayer de coder les construire ou les idiomes de programmation avec d'une langue dans des autres pour justifier des réclamations de la forme, " ; Quelque chose que vous pouvez faire dans votre langue, je peut faire dans mon language." ; Quand ces codages deviennent si complexes qu'ils s'élèvent à écrire un interprète pour la première langue dans la seconde, ils cessent d'être instructifs (parce qu'un interprète pour n'importe quelle langue Turing-complète peut être écrit en principe en n'importe quelle autre langue Turing-complète) et on dit que la conversation écrit le tarpit de Turing.Selon beaucoup de travaux de recherche de l'informatique, la grande majorité de langages de programmation d'usage universel sont équivalente dans la puissance informatique. Quelques experts de l'informatique en avant ont dit que pour cette raison, tous les arguments au-dessus duquel de deux langues ou plus est le meilleur être injustifié. D'autres experts ont déclaré que le fait que les langues sont également puissantes implique que de tels arguments devraient être confinés aux propriétés des langues qui réellement varient, comme leurs effets sur l'efficacité de programmeur ou leur aptitude aux réalisations efficaces ou concises.
| Random links: | Concert de violon (John Adams) | Ingaevones | Hassan Habibi | Classificateur (linguistique) | Économie duelle | Tarpit_de_Turing |