致谢

许多人贡献了思想、技术和指导,后来 这些都被融入到 Loko Scheme 的构建中。没有他们 对科学的贡献,就不会有 Loko Scheme 今天的样子。

syntax-case 的实现基于 r6rs-libraries,作者 Abdulaziz Ghuloum 和 R. Kent Dybvig,由 Llewellyn Pritchard 进行了错误修复和改进。

高层优化器 cp0 基于 Extending the Scope of Syntactic AbstractionFast and Effective Procedure Integration 一章,作者 Oscar Waddell(博士论文)。

底层优化器基于 David Whalley 在 2011 年 授课中所教授的概念。

寄存器分配器(除了其中的错误外)来自 Register Allocation via Graph Coloring,作者 Preston Briggs(博士论文)。

letrec 的处理来自 Fixing Letrec (reloaded), 作者 Abdulaziz Ghuloum 和 R. Kent Dybvig。

Unicode 算法同样来自 Abdulaziz Ghuloum 和 R. Kent Dybvig。

大数算法基于 BigNum Math 中的算法,作者 Tom St Denis。

list? 过程使用了 Robert W. Floyd 循环检测算法的 Olin Shiver 版本。

equal? 过程来自论文 Efficient Nondestructive Equality Checking for Trees and Graphs, 作者 Michael D. Adams 和 R. Kent Dybvig。

记录实现中的一些复杂部分来自 SRFI-76 的参考实现,作者 Michael Sperber。

过程化记录的优化基于论文 A Sufficiently Smart Compiler for Procedural Records, 作者 Andy Keep 和 R. Kent Dybvig。效果虽不如原版,但聊胜于无。

列表排序代码来自 SLIB,由 Richard A. O’Keefe 编写, 基于 David H. D. Warren 的 Prolog 代码。

dynamic-wind 代码来自 SLIB,由 Aubrey Jaffer 编写。

除法魔术以及许多其他精彩的黑客技巧来自 优秀的书籍 Hacker’s Delight,作者 Henry S. Warren, Jr., 由 Guy L. Steele, Jr. 作序!

fibers 库大体上基于 Parallel Concurrent ML, 作者 John Reppy、Claudio V. Russo 和 Yingqi Xiao。其 API 基于 Andy Wingo 的 Guile fibers,其实现与 他的博客文章 a new concurrent ml 密切相关。

多返回值的实现基于 An Efficient Implementation of Multiple Return Values in Scheme, 作者 J. Michael Ashley 和 R. Kent Dybvig。其中包含的建议并未被采纳。

R7RS-small 标准库基于 OKUMURA Yuki 为 Yuni 项目 最初编写的代码。

浮点数到字符串的转换基于 Bob Burger 在论文 Printing Floating-Point Numbers Quickly and Accurately 中描述的代码。任何错误都是我们自己的。

美化打印机来自 Marc Feeley 在 1991 年 编写的实现。

还要感谢 Abdulaziz Ghuloum 的 An Incremental Approach to Compiler Construction,它帮助我巩固了通过实验 已经积累的 Scheme 编译器经验。