【问题标题】:python bytecode, the interpreter and virtual machinepython字节码,解释器和虚拟机
【发布时间】:2011-05-08 01:40:41
【问题描述】:

这是一个非常广泛的问题,我主要是在寻找可以了解以下内容的资源。

我知道 python 解释器是用 C 语言编写的,它会生成要在同样用 C 语言编写的 python 虚拟机上运行的字节码(对吗?)。我的问题是有可能在 python 本身中实现这两者吗?我想我要去哪里是(技术上)在 python 中编写类似 OS 的东西的可能性,特别是没有静态编译任何东西?

如果我理解正确,python 没有汇编程序,它也必须用 python 编写。这些事情在技术上(可行吗?)可以做到吗?或者python的动态类型会带来什么问题?

我对微处理器架构、汇编和机器代码略知一二,这是一名 EE 毕业生在学校学习的内容。但是对于像 python 这样的高级语言,我会迷失在整个画面中。

【问题讨论】:

标签: python operating-system bytecode vm-implementation


【解决方案1】:

编译器,而不是解释器。但你正在寻找PyPy

【讨论】:

    【解决方案2】:

    您首先需要使用任何语言(最好是 Python)编写 Python 编译器(而不是解释器)。编译器的第一次运行需要通过解释器运行。

    然后您将自己编译您的编译器,从而生成一个不需要解释器的本机编译器。

    然后您可以使用编译器将任何 Python 编译为本机代码。

    这个过程称为引导,被许多(如果不是大多数)主要编译器用于许多语言。

    您可以在此处阅读有关此过程的更多信息:http://en.wikipedia.org/wiki/Bootstrapping_(compilers)

    至于创建操作系统,如果您想避免编译代码,则至少需要实现一个 Python 解释器。如果您将 Python 解释器编写为微内核,则可以用 Python 编写操作系统的其余部分。 (编辑:我只是无意中描述了贾罗提到的 Cleese :))

    【讨论】:

      【解决方案3】:

      James Tauber 还在 Python 中构建了一个名为 Cleese 的概念验证操作系统,并且最近开始努力让它在 Pypy(用 Python 编写的 Python 解释器)上运行

      【讨论】:

        【解决方案4】:

        关于操作系统实现问题,您需要一种系统编程语言来实现操作系统。除非你能想出一个 python 汇编程序并将 python 转换为不需要 VM 的直接可执行二进制文件,否则在纯 python 中完成这一切是不可能的。

        如果您想在汇编中编写代码并让 python 为您组装它,请查看稍微过时和实验性的 pyasm

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-04
          • 1970-01-01
          • 1970-01-01
          • 2010-11-21
          相关资源
          最近更新 更多