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