Converge具有一些令人印象深刻的元编程功能。
从简单的角度来看,这可以看作是类似于宏的工具,尽管它比大多数现有的宏工具更强大,因为可以在编译时运行任意代码。使用它,可以与编译器进行交互,并像ITrees(又称为抽象语法树)一样安全且轻松地生成代码。
这是Scheme 卫生宏的又一又一步,该宏允许引用透明的宏定义。
像准文字这样的机制允许使用其他语言构造和分解解析树,但这些机制更常用于与特定领域语言(DSL)交互,而不是自我修改。
Newspeak的反思允许将异常实现为库代码。
7.6异常处理
因为Newspeak提供对激活记录(3.6)的反射访问(7.2),所以异常处理纯粹是一个库问题。该平台将提供一个标准库,该库支持抛出,捕获和恢复异常,这与Smalltalk一样。
Perligata:Romana演示了如何将全新的语法皮肤化为一种语言。
本文介绍了Perl模块-Lingua :: Romana :: Perligata-使使用拉丁语编写Perl程序成为可能。
PyPy可以说是一种语言的解释器生成器,它的语义可以在高度静态可分析的Python子集中指定,并且可以用它来尝试使用Python中的新语言构造(例如在语言中添加thunk),可以说在语义上并不重要。
同样值得关注的是Ometa。
本文主要研究计算机科学领域的实验。特别是,我将展示专门为支持实验而设计的新编程语言和结构可以大大简化研究人员和程序员的工作。
我介绍的工作涉及两种截然不同的实验。第一个目标是通过使编程人员更容易为新的编程语言和现有语言的扩展建立原型,从而帮助编程语言研究人员尝试他们的想法。另一个通过将程序本身允许进行不同的动作和可能性进行实验来将实验作为一种编程范例进行研究,换句话说,这是为……提供语言支持的尝试。或可能的世界推理。
Alex Warth的论文演示了使用Ometa在JavaScript + Ometa中定义显着的新语义(通过世界的事务性语义)。