>백엔드 개발 >파이썬 튜토리얼 >用Python能实现Python解释器吗?

用Python能实现Python解释器吗?

WBOY
WBOY원래의
2016-06-06 16:22:431486검색

回复内容:

用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进制编译器去编译你用同一门语言写的编译器。
这就是“自举”
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.