主要观点:宏是 Lisp 语言的常见部分且备受赞誉,相关研究使其更安全强大,在多个领域有发展,但也有缺点如为二等公民,在急切函数式编程中不能传递给高阶函数或自由组合。Fexprs 是宏的一流且更强大替代品,与纯函数式编程契合良好,但朴素执行比宏慢,因为运行时会重新执行未优化的操作组合器代码,而在基于宏的语言中会在编译时展开和优化。为证明 fexprs 可替代宏,作者制定了小的纯函数式 fexpr 基 Lisp 语言 Kraken,有在线部分求值和编译框架,支持一流、部分静态数据环境,能完全优化掉以宏风格使用和编写的 fexprs,且部分求值和编译框架产生的代码比朴素解释快 70000 多倍,消除了重复工作并暴露静态信息以进行额外优化,Kraken 编译器比支持 fexprs 的现有解释语言表现更好,在一个基准上比 NewLisp 的 fexpr 性能提升 233 倍。
关键信息:26 页,23 幅图(含附录),提交给 ICFP23,主题为编程语言(cs.PL),引用为[arXiv:2303.12254] [cs.PL](或[arXiv:2303.12254v1] [cs.PL]),https://doi.org/10.48550/arXi...,提交历史从 Nathan Braswell 于 2023 年 3 月 22 日 01:45:03 UTC 提交(5196KB)的 v1 版本开始。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。