您现在所在位置: 首页 > 睿道新闻

python培训中讲到的解释器是什么?

发布时间:2020-09-15点击数:


  在开始之前,让我们缩小Pyhton解释器的含义。在讨论Python时,说明器这个词可以用在很多地方。有时候说明器是指REPL,在命令下敲击python时得到的交互环境。有时使用Python说明器和Python来代替Python代码。在本章中,解释器有更准确的含义:Python程序的最后一步。


  在解释器接管之前,Python将执行三个步骤:语法分析、语法分析和编译。这三个步骤合并将源代码转换为codeobject,包括说明器可以理解的指令。说明器的工作是说明codeobject中的指令。


  Python代码的执行可能有编译的步骤。Python通常被称为解释语言,如Ruby、Perl,与编译语言相对,如c、Rust。但是,这里的术语并不像看起来那么准确。大部分说明语言包括Python,确实有编译这一步。Python之所以被称为说明型,是因为与编译型语言相比,在编译阶段的工作相对较少(说明器工作相对较多)。本章后面可以看到Python的编译器比c语言编译器需要更少的程序行为信息。


  APythonPythonInterpreter。


  Byterun是用Python写的Python解释器,这可能会使你感到奇怪,但并不比用c语言写c语言的编译器奇怪。(实际上广泛使用的gcc编译器是用c语言本身写的)可以用几乎任何语言写Python解释器。


  用Python写Python有优缺点。最大的缺点是,Byterun执行代码比CPython执行慢得多,CPython解释器用c语言实现并优化。但是Byterun是为了学习而设计的,速度对我们来说并不重要。使用Python最大的好处就是不用担心Python运行时的部分,特别是对象系统,只能实现说明器。例如,Byterun需要制作类别的话,会回到真正的Python。另一个优点是Byterun容易理解,有些原因是用高级语言写的(Python!中所述情节,对概念设计中的量体体积进行分析(此外,我们不会优化解释器-再次,清晰简单比速度更重要)


  Buildinganinterpreter。


  在考察Byterun代码之前,需要对说明器结构的高水平视角。Python解释器是如何工作的?


  Python解释器是虚拟机,模拟真正的计算机软件。我们这个虚拟机是栈机,它是用几个栈来完成操作的(相对于寄存机,它是从特定的内存地址读写数据)。


  Python说明器是字节代码说明器。其输入是指令集合称为字节代码。写Python代码时,用语法分析器、语法分析器和编译器生成codeobject操作说明器。每个codeobject都包含一个指令集:字节代码-还有一些解释器需要的信息。字节代码是Python代码的中间层,用说明器可以理解的方法表示源代码。这与编辑语言作为c语言和机械语言的中间表示相似。



  • 友情链接

关注东软睿道公众号了解更多IT行业资讯

添加东小萌微信
获取更多IT学习资源