Converge verfügt über beeindruckende Metaprogrammiermöglichkeiten.
Auf einer einfachen Ebene kann dies als eine Makrofunktion angesehen werden, obwohl sie leistungsfähiger ist als die meisten vorhandenen Makrofunktionen, da beliebiger Code zur Kompilierungszeit ausgeführt werden kann. Auf diese Weise kann man mit dem Compiler interagieren und Code sicher und einfach als ITrees (auch als abstrakte Syntaxbäume bezeichnet) generieren.
Dies ist ein Fortschritt gegenüber den hygienischen Makros von Scheme , die referenziell transparente Makrodefinitionen ermöglichen.
Mechanismen wie Quasiliterale haben das Konstruieren und Destrukturieren von Analysebäumen in anderen Sprachen ermöglicht, aber diese werden häufiger für die Interaktion mit domänenspezifischen Sprachen (DSLs) verwendet, anstatt sich selbst zu ändern.
Newspeaks Reflexion ermöglicht die Implementierung von Ausnahmen als Bibliothekscode.
7.6 Ausnahmebehandlung
Da Newspeak reflektierenden Zugriff (7.2) auf die Aktivierungsdatensätze (3.6) bietet, handelt es sich bei der Ausnahmebehandlung lediglich um ein Bibliotheksproblem. Die Plattform wird eine Standardbibliothek bereitstellen, die das Auslösen, Abfangen und Wiederaufnehmen von Ausnahmen unterstützt, ähnlich wie in Smalltalk.
Perligata: Romana zeigt, wie eine völlig neue Syntax für eine Sprache erstellt werden kann.
In diesem Artikel wird ein Perl-Modul - Lingua :: Romana :: Perligata - beschrieben, mit dem Perl-Programme in Latein geschrieben werden können.
PyPy ist wahrscheinlich nicht semantisch signifikant. Es ist ein Interpreter-Generator für Sprachen, deren Semantik in einer stark statisch auswertbaren Teilmenge von Python spezifiziert ist, und er wird verwendet, um mit neuen Sprachkonstrukten in Python zu experimentieren, beispielsweise um der Sprache Thunks hinzuzufügen .
Interessant könnte auch Ometa sein .
Diese Dissertation beschäftigt sich mit Experimenten in der Informatik. Insbesondere werde ich zeigen, dass neue Programmiersprachen und -konstrukte, die speziell zur Unterstützung des Experimentierens entwickelt wurden, die Arbeit von Forschern und Programmierern gleichermaßen erheblich vereinfachen können.
Ich präsentiere Arbeiten, die sich mit zwei sehr unterschiedlichen Arten des Experimentierens befassen. Das erste soll Programmiersprachenforschern helfen, mit ihren Ideen zu experimentieren, indem es ihnen erleichtert wird, neue Programmiersprachen und Erweiterungen bestehender Sprachen zu prototypen. Die andere untersucht das Experimentieren als Programmierparadigma, indem sie es Programmen ermöglicht, selbst mit verschiedenen Aktionen und Möglichkeiten zu experimentieren - mit anderen Worten, es ist ein Versuch, Sprachunterstützung für was zu bieten, wenn ...? oder mögliche Welten Argumentation.
Alex Warths Dissertation demonstriert die Verwendung eines Ometa zur Definition signifikant neuer Semantiken (Transaktionssemantiken über Welten) in JavaScript + Ometa.