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.