-2

我是 Python 新手,我想用它制作一个小型解释器/编译器。最初只是一个爱好项目。我想知道完成这样的工作与 c/c++ 相比有多好?它内置了高效的字符串处理库。所以我想一开始很容易开始(见下面的链接)但是当复杂性真的变得很高时,构建一种语言会做得很好吗?

一些资源

http://www.jayconrod.com/posts/37/a-simple-interpreter-from-scratch-in-python-part-1

这个真的很简单,但很好开始:

http://www.jroller.com/languages/entry/python_writing_a_compiler_and

另一个值得参观的地方:

http://morepypy.blogspot.in/2011/04/tutorial-writing-interpreter-with-pypy.html

http://morepypy.blogspot.in/2011/04/tutorial-part-2-adding-jit.html

不过,第一个使用 pypy。我不熟悉它。我正在使用 cpython

4

2 回答 2

2

当复杂性真的变得很高时,构建一种语言会做得很好吗?

随着复杂性的增加,您将感谢您选择在 Python 中而不是在 C/C++ 中实现它。我唯一建议的是使用解析库,比如 PyParsing,来减少你需要做的工作量(除非你也想学习如何实现解析器)。

于 2012-08-10T08:33:58.030 回答
1

这实际上取决于您的语言有多复杂。我不会将 Python 用于 C++ 编译器,但我发现编写代码生成器以解析一种语言的代码(特别是 SQL 的数据定义子集)以生成另一种语言的代码非常方便。

考虑使用解析器生成器,而不是全部手动完成。我发现PLY非常方便。

于 2012-08-10T08:01:27.697 回答