Converge ma kilka imponujących możliwości metaprogramowania.
Na prostym poziomie można to postrzegać jako narzędzie podobne do makr, chociaż jest ono potężniejsze niż większość istniejących narzędzi do makr, ponieważ dowolny kod można uruchomić w czasie kompilacji. Korzystając z tego, można wchodzić w interakcje z kompilatorem i generować kod bezpiecznie i łatwo jako ITrees (inaczej abstrakcyjne drzewa składniowe).
co stanowi krok w górę od higienicznych makr Scheme, które umożliwiają referencyjnie przejrzyste definicje makr.
Mechanizmy takie jak quasiliterals pozwoliły na konstruowanie i destrukcję drzew parsowanych w innych językach, ale są one częściej używane do interakcji z językami specyficznymi dla domeny (DSL) zamiast do samodzielnej modyfikacji.
Refleksja Newspeak pozwala na implementację wyjątków jako kodu biblioteki.
7.6 Obsługa wyjątków
Ponieważ Newspeak zapewnia odblaskowy dostęp (7.2) do rekordów aktywacyjnych (3.6), obsługa wyjątków jest kwestią czysto biblioteczną. Platforma zapewni standardową bibliotekę, która obsługuje zgłaszanie, wychwytywanie i wznawianie wyjątków, podobnie jak w Smalltalk.
Perligata: Romana pokazuje, w jaki sposób można stworzyć zupełnie nową składnię na język.
W tym artykule opisano moduł Perla - Lingua :: Romana :: Perligata - który umożliwia pisanie programów w języku Perl po łacinie.
Prawdopodobnie nieistotne semantycznie, PyPy jest generatorem interpreterów dla języków, których semantyka jest określona w wysoce statystycznie analizowanym podzbiorze Pythona, i używają go do eksperymentowania z nowymi konstrukcjami językowymi w Pythonie, takimi jak dodawanie thunks do języka.
Interesujący może być również Ometa .
Niniejsza rozprawa koncentruje się na eksperymentach w dziedzinie informatyki. W szczególności pokażę, że nowe języki programowania i konstrukcje zaprojektowane specjalnie w celu wspierania eksperymentów mogą znacznie uprościć zadania badaczy i programistów.
Prezentuję pracę, która dotyczy dwóch bardzo różnych rodzajów eksperymentów. Pierwszy ma na celu pomóc badaczom języków programowania eksperymentować z ich pomysłami, ułatwiając im prototypowanie nowych języków programowania i rozszerzeń istniejących języków. Drugi bada eksperymentowanie jako paradygmat programowania, umożliwiając programom eksperymentowanie z różnymi działaniami i możliwościami - innymi słowy, jest to próba zapewnienia wsparcia językowego, co jeśli ...? lub możliwe rozumowanie światów.
Praca Alexa Wartha demonstruje użycie Ometa do zdefiniowania znacznie nowej semantyki (semantyka transakcyjna przez światy) w JavaScript + Ometa.