Parenscript将Common Lisp子集编译为JavaScript

2020-06-07 21:14:00

Parenscript是一个从Common Lisp的扩展子集到JavaScript的翻译器。Parenscript代码可以在浏览器(作为JavaScript)和服务器(作为Common Lisp)上几乎完全相同地运行。

Parenscript代码的处理方式与Common Lisp代码相同,从而使Lisp宏的全部功能都可用于JavaScript。这提供了一个在减少代码重复和为Web开发人员提供高级元编程工具方面无与伦比的Web开发环境。

同时,Parenscript与几乎所有其他X语言到JavaScript翻译程序的不同之处在于,它几乎不会产生任何开销:

任何Parenscript代码都可以按原样运行。没有要包括的JavaScript文件。

Parenscript完全使用原生JavaScript数据类型。没有引入新类型,也没有触及对象原型。

无需绑定即可调用任何JavaScript代码。同样,Parenscript可以用来创建高效的、自包含的JavaScript库。

Parenscript生成简洁、格式化、惯用的JavaScript代码。标识符名称将被保留。这样就可以无缝使用JavaScript调试器。

Parenscript为高级Common Lisp功能引入了最小的开销。生成的代码几乎与手写JavaScript一样快。

最新的Parenscript版本2.7.1于2018年12月5日发布,可在此处下载(PGP签名)。旧版本可以从发布目录下载。

SLILM代理,通过连接的LISP和交叉编译器(如Parenscript)代理SLOM连接的黑客。

Suave是一组用于开发语义Web应用程序的工具,包括对Parenscript的各种扩展。

Parenscript最初是BKNR网络开发框架的一部分,现在仍在那里使用。

后来,Parenscript开发转移到了UCW框架。这个项目是从那次努力中衍生出来的。

css-lite是用于生成CSS的s-exp标记,它可以生成纯CL或Parenscript代码。

CL-CLOSE-TEMPLATE是一个多语言模板系统,它使用Parenscript生成JavaScript后端代码。

Parenscript目前由Vladimir Sedach维护。它最初是由曼努埃尔·奥登达尔和爱德华·马可·巴林格写的。

Parenscript根据BSD 3条款许可证条款进行许可。详细信息包含在随分发提供的复制文件中。