2

是否可以为 Python 虚拟机创建一种新语言?我正在阅读http://late.am/post/2012/03/26/exploring-python-code-objects,博主在其中讨论了 Python 代码对象。在其中,他讨论了将代码对象反汇编为字节码以及其中符号的含义。

这让我觉得可能有其他方法来构造这个字节码。我对在 Python 字节码中创建沙盒语言以便 Python 可以加载它的能力感到好奇。使用 Python 本身进行沙盒处理似乎几乎是不可能的,但这似乎为另一种实现语言开辟了道路。

如果我想从事这项事业,我会从哪里开始?什么可能是更好的方法,我在哪里可以找到更多关于其他方法的信息?

4

2 回答 2

3

为什么幸运的硬汉曾经编写一个将 Ruby 代码编译成 Python 字节码的脚本。我记得它适用于简单的 Ruby 脚本。您可以查看消息来源以了解他是如何做到的。

编辑:所以他所做的是让 Ruby VM 生成 Ruby 字节码,而不是将该字节码转换为 Python。看看 Python 字节码是如何组装的仍然很有趣:)

于 2012-12-08T01:15:54.190 回答
2

我认为ply是一个很好的起点,这是一个使用 ply 的 Lisp 实现:http ://www.juanjoconti.com.ar/files/python/mini-lisp/

我不确定 ply 是否可以使用 Python 的ast模块生成语法树,但应该可以。

于 2012-12-08T00:32:50.510 回答