Was sind die ausdrucksstärksten und terminierendsten Sprachen?

7

Ich interessiere mich weniger für Sprachen, in denen Sie fast alles schreiben können, aber dann müssen Sie einen begleitenden Beweis dafür schreiben, dass das, was Sie geschrieben haben, endet.

Ich interessiere mich mehr für den Entwurfsraum von Sprachen, die von Natur aus konstruktionsbedingt auf bestimmte Komplexitätsklassen beschränkt sind.

Gibt es irgendeine Art von theoretischer Hierarchie für untergeordnete Sprachen?

sfultong
quelle
Es gibt einige Shader-Sprachen (Sprachen zum Programmieren von Grafikprozessoren), in denen Sie kein nicht terminierendes Programm schreiben können. Sie sind sich nicht sicher, wie interessant sie theoretisch sind, aber wenn Sie ein praktisches Beispiel benötigen, können Sie loslegen (suchen Sie beispielsweise nach GLSL).
wvxvw

Antworten:

7

Es gibt viele Klassen von Programmiersprachen, in denen alle Programme enden. Die häufigste Form der Durchsetzung der Kündigung sind Typen. Die am weitesten entwickelte Theorie von Typisierungssystemen zum Beenden der Berechnung könnte die des Lambda-Würfels von Barendregt sein, der die Typisierung in drei orthogonale Achsen zerlegt:

Ausgehend von einer abschließenden Sprache wie der einfach eingegebenenλ-calculus kann man eine beliebige Kombination dieser drei Achsen hinzufügen und die Terminierung beibehalten.

Dies hat enge Verbindungen zur Logik über die Curry-Howard-Korrespondenz .

Es gibt viele Erweiterungen und Verfeinerungen, einschließlich Typen, die Komplexitätsklassen erfassen.

Martin Berger
quelle
1
Könnten Sie bitte einige Anweisungen für Typen geben, die Komplexitätsklassen erfassen (Papiere oder vielleicht Bücher)?
Anton Trunov
3
@AntonTrunov Das allgemeine Feld ist "implizite Rechenkomplexität". Es ist ein junges Feld, daher glaube ich, dass es noch keine Bücher gibt. Eine der Pionierarbeiten ist J.-Y. Girard, Light Linear Logic und seine Bounded Linear Logic, die von A. Scedrov und P. Scott gemeinsam verfasst wurde.
Martin Berger
4

Nach Bellantoni & Cooks grundlegender Arbeit in A New Recursion-Theoretic Characterization of Polytime Functions wurde viel an einfachen Charakterisierungen von Komplexitätsklassen mittels Gesamtsprachen mit starken Verbindungen zur linearen Logik gearbeitet, wie Martin Berger in den Kommentaren feststellt.

Aufbauend auf dieser Arbeit wurden andere Komplexitätsklassen charakterisiert: Leivant und Marion haben PSPACE und ELEM charakterisiert (die letzte ist besonders schön).

Es wurde auch an LOGSPACE gearbeitet , wieder mit Leivant und Ramyaa.

Es ist ein ziemlich aufregendes Feld mit einer jährlichen Konferenz !

Cody
quelle
Dies ist eigentlich eher die Antwort, nach der ich gesucht habe, aber die andere habe ich bereits akzeptiert. Ich bin auch ziemlich aufgeregt über das Feld.
Uhr