不过如果是想用python来实现一个跟cpython相同思路的简单的解释器的话,参考这个挺好的:a python interpreter written in python
更多资料请跳传送门:
有没有内容类似于《python源码剖析》,但内容更新过,针对新版本的python书籍? - rednaxelafx 的回答
用 javascript 写成的 javascript 解释器,意义是什么? - rednaxelafx 的回答当然是可以的,但是和编译器不同,编译器可以自己编译自己,解释器不能自己解释运行自己,最外层的解释器总需要用其他一些程序来运行的。但是最外层的解释器可以只解释这个语言的一个子集,然后里层的解释器用这个子集实现更多更完整的功能,这样外层的c的解释器可以保持不变,添加新功能的时候,只要把用python写的内层解释器升级就行了。pypy的思路就跟这个类似。功能比较完备的语言,实现自x都是比较容易的。比如c/c++的编译器,现在都是使用c/c++开发的。当然可以,比如著名的pypy其实我觉得问者想问的是,可以用一门语言来实现一门语言的编译器么(同一门语言)?
答:最开始不可以,之后可以。
简单地说:就是“自举”
为什么呢?
因为如果从机器角度,我们必须用机器现在能识别的语言来编写一门新语言的编译器。
一旦做出编译器之后,你如果可以拿着这个2进制编译器去编译你用同一门语言写的编译器。
这就是“自举”