当前位置: 首页 > 面试题库 >

CPython是字节码解释器吗?

堵恺
2023-03-14
问题内容

在CPython的上下文中,我并没有真正理解“字节码解释器”的概念。有人可以说明整个情况吗?

这是否意味着CPython将编译并执行pyc文件(字节码文件?)。那么什么将py文件编译为pyc文件呢?而且Jython与CPython有何不同(除了它们以不同的语言实现)。

我还在某处读到Python是C ++的解释。这个对吗?那是什么意思呢?

我对Python还是很陌生,所以请原谅我这个愚蠢的问题…非常感谢!


问题答案:

CPython是C语言中Python的实现。它是第一个实现,仍然是人们谈论Python时所指的主要实现。它将.py文件编译为.pyc文件。.pyc文件包含字节码。CPython实现也解释那些字节码。CPython不是用C
++编写的,而是C。

从.py到.pyc的编译根据需要透明进行。执行.py文件时,如果需要,它将首先编译为.pyc文件,然后将解释.pyc文件。

Jython有所不同,因为(除了用Java代替C之外,Jython还将.py文件编译成.class文件,以便可以在JVM中执行它们。



 类似资料:
  • 问题内容: 我遇到了一些有关JVM / JIT活动的参考,其中似乎在编译字节码和解释字节码之间有区别。该特定注释声明的字节码在前10000次运行时进行解释,然后进行编译。 “编译”和“解释”字节码之间有什么区别? 问题答案: 解释字节码基本上是逐行读取字节码,不进行任何优化或任何操作,然后对其进行解析并实时执行。由于许多原因,这种方法效率低下,其中包括Java字节码设计得不能快速解释的问题。 编译

  • 字节码的解释执行和AST的解释执行有类似之处,而且更简单,因为树形结构已经展开成顺序了,以栈虚拟机为例,为方便起见,假设所有的指令都在一个指令数组里,每个元素是一个指令对象,有code和arg两个属性,解释器入口: Object execute(Inst[] inst_list, Object[] func_arg); 由于continue和break已经被jmp指令代替了,这里我们认为exec

  • 问题内容: 什么是全局解释器锁,为什么会出现问题? 从Python删除GIL周围已经产生了很多噪音,我想了解为什么这是如此重要。我自己从未写过编译器或解释器,所以不要节俭,我可能需要他们理解。 问题答案: Python的GIL旨在序列化从不同线程对解释器内部的访问。在多核系统上,这意味着多个线程无法有效利用多个核。(如果GIL不会导致此问题,那么大多数人就不会在意GIL-只是由于多核系统的普及而成

  • 本文向大家介绍深入Python解释器理解Python中的字节码,包括了深入Python解释器理解Python中的字节码的使用技巧和注意事项,需要的朋友参考一下 我最近在参与Python字节码相关的工作,想与大家分享一些这方面的经验。更准确的说,我正在参与2.6到2.7版本的CPython解释器字节码的工作。 Python是一门动态语言,在命令行工具下运行时,本质上执行了下面的步骤:     当第一

  • 问题内容: 我试图了解Python的工作原理(因为我一直都在使用它!)。据我了解,当您运行python script.py之类的脚本时,该脚本将转换为字节码,然后解释器/ VM / CPython(实际上只是一个C程序)读取python字节码并相应地执行该程序。 该字节码如何读入?它类似于在C语言中读取文本文件的方式吗?我不确定Python代码如何转换为机器代码。是否确实是Python解释器(CL

  • 据我所知,JIT将字节码编译成运行速度更快的本机代码。因此,根据我的信念,我的问题的答案应该是1。翻译成机器代码2。解释字节码。因为解释代码意味着执行代码。但我发现答案恰恰相反!谁能解释一下。。。提前感谢