我在boost邮件列表 (强调我的文章)上看到了以下文章:
大家好, 有没有人知道一个现有的精神/lisp实现,是否有兴趣开发这样一个项目的开放源码?还没有,AFAIK。 我将为Spirit2编写一个示例,以补充其中的微型-C虚拟机。同样有趣的是,该方案(或至少一个子集)可以在纯c++中实现。没有解析,只有C++中的纯DSEL。现在,假设一个解析器(通过C++)针对这个DSEL --一个源到源转换器。基本上,您的方案代码将被编译成高效的C++.。
有人真的这么做过吗?我会非常感兴趣的。
发布于 2011-03-17 02:38:42
我在C++中编写了一种名为Funky的类似Lisp的语言。开放源码版本可在http://funky.vlinder.ca上获得。把它变成一个像Lisp一样的C++翻译器不需要太多的时间。
实际上,需要一个运行时支持库来提供一般的闭包时间和一些代码:如果您想要将Lisp代码转换成高效的C++,您基本上需要C++类(函子等等)。要完成运行时的繁重工作,您的Lisp到C++转换器需要:
如果您要从Funky开始,您已经有了解析和AST (虽然Funky没有优化AST),所以您可以从那里创建运行时并生成C++.
从头开始编写Lisp语法也不会太复杂:Lisp语法并不那么困难,所以大部分工作都会转到AST和运行时支持中。
如果我现在不写一个面向对象的DSL,我可能会尝试一下。
发布于 2011-10-26 17:30:07
(可读) c++ http://www.suri.cs.okayama-u.ac.jp/servlets/APPLICATION.rkt方案
这个怎么样?
发布于 2011-03-01 21:41:20
不知道这是不是你想要的,但是:
http://howtowriteaprogram.blogspot.com/2010/11/lisp-interpreter-in-90-lines-of-c.html
至少看起来是个开始。
https://stackoverflow.com/questions/5101874
复制相似问题