Inspiriert von den umfangreichen Hierarchien in der Komplexitätstheorie, habe ich mich gefragt, ob solche Hierarchien auch für Typsysteme vorhanden sind. Die beiden Beispiele, die ich bisher gefunden habe, ähneln jedoch eher Checklisten (mit orthogonalen Merkmalen) als Hierarchien (mit immer aussagekräftigeren Schriftsystemen).
Die beiden Beispiele, die ich gefunden habe, sind der Lambda-Würfel und das Konzept des k-Rang-Polymorphismus . Die erste ist eine Checkliste mit drei Optionen, die zweite ist eine echte Hierarchie (obwohl der Rang k für bestimmte Werte von k meiner Meinung nach ungewöhnlich ist). Alle anderen mir bekannten Systemmerkmale sind meist orthogonal.
Ich interessiere mich für diese Konzepte, weil ich meine eigene Sprache entwerfe und sehr gespannt bin, wie sie zu den derzeit existierenden Typensystemen zählt (mein Typensystem ist meines Wissens nach etwas unkonventionell).
Mir ist klar, dass das Konzept der „Ausdruckskraft“ etwas vage sein kann, was möglicherweise erklärt, warum Typensysteme für mich wie Checklisten erscheinen.
quelle
Antworten:
Es gibt mehrere Sinne von "Ausdruckskraft", die Sie für ein Typensystem wünschen könnten.
Garantiert ein Typensystem stärkere Eigenschaften als ein anderes? Beispielsweise lehnen lineare Systeme nur mehr Programme ab, was es ihnen jedoch ermöglicht, genauere Aussagen über die Programme zu treffen, die sie akzeptieren.
Leider glaube ich nicht, dass an der Kategorisierung oder Formalisierung dieser Begriffe gearbeitet wurde, mit Ausnahme des Lambda-Würfels von Barendregt, wie @cody erläutert.
quelle
Ich bin mir nicht sicher, ob ich eine zufriedenstellende Antwort auf Ihre Frage habe, aber wenn Sie Pure Type Systems in Betracht ziehen, eine Verallgemeinerung der Systeme, die im Lambda-Würfel enthalten sind (eine gründliche, wenn auch etwas veraltete Übersicht finden Sie im klassischen Barendregt-Text) ) Dann gibt es ein paar natürliche Vorstellungen von Hierarchien:
quelle