Einige Programmierprobleme erfordern nicht die volle Leistung einer Turing-Maschine. Sie können mit viel weniger Energie gelöst werden. Ich suche eine Programmiersprache mit geringerer Macht.Gibt es eine Programmiersprache, die nur die Macht eines deterministischen Push-Down-Automaten hat, und nicht mehr?
Gibt es eine High-Level-Programmiersprache existiert, die gerade diese Fähigkeiten zu unterstützen, beschränkt ist:
Ein Stapel mit Operationen Wert auf den Stack und Pop-Werte vom Stapel zu schieben.
Eine endliche Zustandsmaschine (FSM), um Eingangswerte, von Zustand zu Zustand bewegen, mit dem Stapel in Wechselwirkung treten, und Ausgabeergebnissen.
Ich weiß, dass ich Java oder C oder Python verwenden könnte (etc.) und beschränken Sie die Sprache durch ein Programm zu schreiben, die nur einen Stapel verwendet und einen FSM. Ich suche jedoch eine Programmiersprache, die nur diese Fähigkeiten hat und nicht mehr.
Mit anderen Worten, ich mag nicht, eine Turing-vollständige Programmiersprache verwenden, um Probleme zu lösen, die nur die Leistung eines deterministisch-Pushdown-Automaten erfordern. Ich möchte eine Programmiersprache verwenden, die nur die Macht eines deterministischen Push-Down-Automaten hat.
Vielleicht war der Fragesteller nicht für Effizienz suchen, sondern die schönen Eigenschaften, die mit weniger Energie als eine Turing-Maschine unter Verwendung eines Rechenmodells kommen? Vielleicht wollte er über Eigenschaften seines Programms nachdenken, die mit einer Turing-Maschine unentscheidbar wären, aber das ist für ein weniger leistungsfähiges Rechenmodell entscheidbar. – Guildenstern
Guter Punkt, danke! Ich denke, die Antwort kommt wahrscheinlich immer noch auf "Sie würden es wahrscheinlich keine Programmiersprache nennen, wenn es diese kleine Macht hätte." Ich vermute, dass Sie diese Art in "Leim" -Sprachen oder vielleicht in einfachen Skript-Engines finden, obwohl ich kein gutes Beispiel finden kann. Reguläre Ausdrücke (in ihrer einfachen Form) sind jedoch kanonisch die gleiche Potenz wie eine endliche Zustandsmaschine. Diese Frage http://stackoverflow.com/questions/315340/practical-non-turing-complete-languages hat einige interessante Antworten. – akroy