回复内容:
用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进制编译器去编译你用同一门语言写的编译器。
这就是“自举”
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn