小& C ++中的可读方案解释器?

时间:2010-04-09 20:33:52

标签: c++ scheme

有人知道C ++中的好/小方案解释器吗?优选的是< 2000 LOC,带有简单的垃圾collectro(压缩或标记和扫描),无需支持所有R5RS,只需if / lambda / set!/ cons / car / cdr的基础知识和一些基本操作。

谢谢!

5 个答案:

答案 0 :(得分:14)

嗯,加里诺特有一个veeery tiny lisp。甚至不接近R5RS,但它很小,附带一本描述内部的书!然而,它是C,而不是C ++,而且我记得没有GC(但我可能是错的) )。

Nils Holm还有Mini Scheme,但它也是C,比你要求的要大一些(2404行C加1352的Scheme)。 Nils还写了Scheme 9 from Empty Space,它更大,但附有一本描述每段代码的书。

Tinyscheme是另一个小方案(4500行C加上Lisp 452)......

答案 1 :(得分:3)

以下是一系列方案实施:

http://community.schemewiki.org/?scheme-faq-standards#implementations

其中一些是可嵌入的解释器,主要是在C语言中。这不应该是C ++的交易破坏者。

答案 2 :(得分:2)

不幸的是Scheme Implementations没有基于这样的实际标准进行组织。 :)

我确实找到了一个Scheme Interpreter in C++,您可以查看它是否符合您的需求。我没有尝试过这个特别的,所以这不是认可。

答案 3 :(得分:0)

还有Gambit计划。它也是用C语言编写的,其优点是它可以嵌入。我亲自将它用于embed Scheme inside Excel 2003

虽然它正在进行中,但它可以正常工作,您可以很容易地将其适应您所需的C ++。

答案 4 :(得分:0)

我已经在我的大学开始了一个项目来做这件事。 Shaka Scheme试图在C ++中实现R7RS。

截至编写本文时,我们正在努力实现宏和延续,并将重点关注R. Kent Dybvig's dissertation's heap-allocated model for evaluation之后的实现模型。

将来,我们希望通过我们的设计和方法的GitHub wiki拥有一个完全易于理解的文档数据库,以使Scheme的实现对新手可读。