Turing tarpit

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Dieser Artikel wurde am 3. Oktober 2024 auf den Seiten der Qualitätssicherung eingetragen. Bitte hilf mit, ihn zu verbessern, und beteilige dich bitte an der Diskussion!
Folgendes muss noch verbessert werden: Die zahllosen Beispiele sind völlig unverständlich für den nicht studierten Informatiker, im englischen Artikel sind sie nicht enthalten.--AxelHH-- (Diskussion) 22:38, 3. Okt. 2024 (CEST)

Ein Turing Tarpit bzw. Turing tar-pit (dt. Turing-Teergrube) ist eine informelle Bezeichnung für eine Programmiersprache oder eine Schnittstelle, die zwei der markantesten Merkmale der universellen Turingmaschine aufweist: Sie ist hochflexibel, aber schwer zu bedienen, da dem Benutzer nur sehr wenige Möglichkeiten zur Verfügung stehen[1], also in der Lage, jede berechenbare Funktion zu implementieren, wie es die Turing-Vollständigkeit definiert, aber in der Praxis extrem schwierig und unpraktisch zu verwenden ist. Der Begriff wurde im Jahre 1982 durch den Informatiker Alan J. Perlis geprägt, der in seinen Epigrams on Programming schrieb „54. Beware of the Turing Tarpit in which everything is possible but nothing of interest is easy."[2] Ein Turing Tarpit illustriert das Spannungsverhältnis zwischen theoretischer Mächtigkeit und praktischer Nutzbarkeit: Nur weil ein System theoretisch alles lösen kann, bedeutet das nicht, dass es auch praktisch ist, es für echte Probleme zu verwenden.

  • Universell berechenbar: Eine solche Sprache kann theoretisch alles berechnen, was eine Turing-Maschine berechnen kann.
  • Extreme Einfachheit: Die Sprachkonstrukte sind so minimalistisch, dass der Code zwar in der Theorie mächtig ist, aber extrem komplex und schwer lesbar wird, wenn man versucht, reale Probleme zu lösen.
  • Fehlende Abstraktionen: Turing Tarpits bieten in der Regel wenig oder keine höheren Abstraktionen, was bedeutet, dass Programmierer viele Details selbst verwalten müssen, was zu fehleranfälligem Code führt.
  • Unnatürliche Syntax: Die Syntax dieser Sprachen ist oft unintuitiv und schwer zu lesen, was das Schreiben und Verstehen von Programmen erschwert.

  • +-): 3 instructions, 3 symbols
  • ///: 3 types of actual instructions, infinitely many symbols (only 2 symbols are needed for Turing-completeness)
  • 123: 3 operations, 3 symbols
  • Autopsy: 2 instructions, 2 symbols
  • Binary combinatory logic: 2 operations, 2 symbols
  • BinaryLanguage: 14 instructions, 14 symbols
  • BitChanger: 4 instructions, 4 symbols
  • Bitwise Cyclic Tag: 2 instructions, 2 symbols
  • Brainfuck: 8 instructions, 8 symbols. Eine minimalistische Programmiersprache mit nur acht Befehlen. Sie ist zwar Turing-vollständig, aber unglaublich schwer zu programmieren, da komplexe Operationen nur durch sehr einfache Befehle durchgeführt werden können.
  • iag: 3 instructions, >3 operations, 3 symbols
  • I/D machine: 2 operations, 2 symbols
  • I like frog: 12 instructions, 10 symbols (technically 4 if you count "i ", "like ", "frog " and a newline as their own symbols) (see "i like ternary" on the page for a language with 4 symbols)
  • INTERCAL: Eine absichtlich unpraktische und bizarre Programmiersprache, die entwickelt wurde, um konventionelle Sprachdesigns zu parodieren.
  • Iota: 2 operations, 2 symbols
  • Jot: 3 operations, 2 symbols
  • LAST: 4 instructions, 4 symbols or 2 symbols for LAST-B (binary representation)
  • OISC: 1 instruction, 3 symbols (signed unary, including separator)
  • P'': 4 instructions, 4 symbols
  • Quinary Bueue: 4 instructions, 4 symbols
  • SHITS: 5 instructions (3 without I/O), 5 (3 without I/O) symbols
  • Tag: 1 instruction, infinite symbols
  • Tarski: 6 operations, 6 symbols
  • Thue: 1 operation, 4 or 5 symbols (minimum)
  • Ultimate bf instruction minimalization!: 2 operations, 2 symbols
  • Unary: 1 instruction, 1 symbol
  • Wierd: 6 operations, 2 symbols
  • X strike: 4 instructions, 3 symbols

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. B. Jack Copeland, Jonathan Bowen, Mark Sprevak, Robin Wilson: The Turing Guide. Oxford University Press, 2017, ISBN 978-0-19-874782-6 (google.de [abgerufen am 3. Oktober 2024]).
  2. Alan J. Perlis: Special Feature: Epigrams on programming. In: SIGPLAN Not. Band 17, Nr. 9, 1. September 1982, ISSN 0362-1340, S. 7–13, doi:10.1145/947955.1083808 (acm.org [abgerufen am 3. Oktober 2024]).
Abgerufen von „Turing tarpit11