这是一个非常大的问题,我主要在寻找能够了解以下内容的资源。
我知道python解释器是用C语言编写的,它产生的字节码也可以在用C编写的python虚拟机上运行(对吧?)。我的问题是可以在python本身实现这两个吗?我猜我要去哪里这是(技术)在python中编写类似OS的东西的可能性,特别是没有静态编译任何东西?
如果我理解正确,python没有一个必须在python中编写的汇编程序。这些东西可以在技术上(可行吗?)完成吗?或者python的动态类型是否会造成某种问题?
我对微处理器架构,装配和机器代码有所了解,这是最近EE毕业生在学校学到的东西。但是我很想看到像python这样的高级语言的全貌。
答案 0 :(得分:9)
编译器,而不是解释器。但是你正在寻找PyPy。
答案 1 :(得分:3)
首先需要用任何语言编写Python编译器(不是解释器),最好是Python。第一次运行编译器需要在解释器中运行。
然后,您将自己编译编译器,从而导致本机编译器不需要解释器。
然后,您可以使用编译器将任何Python编译为本机代码。
此过程称为bootstrapping,许多语言的许多(如果不是大多数)主要编译器都使用它。
您可以在此处详细了解此流程:http://en.wikipedia.org/wiki/Bootstrapping_(compilers)
至于创建操作系统,如果要避免编译代码,则需要实现Python解释器。如果您将Python解释器编写为微内核,则可以使用Python编写其余的操作系统。 (编辑:我只是无意中描述了Cleese,Jiaaro提到过:))
答案 2 :(得分:2)
答案 3 :(得分:1)
关于操作系统实现问题,您需要一种系统编程语言来实现操作系统。除非你能想到一个python汇编程序并将python转换为直接可执行的二进制文件而不需要VM,否则不可能在纯python中完成所有操作。
如果你想在程序集中编码并让python为你组装它,请看一下稍微过时的实验pyasm。