Python 的 AoT 编译器
AoT Compiler for Python
我想让我的 Python 脚本在像微控制器这样的裸机设备上工作,而不需要解释器。我知道已经有像 PyPy 这样的 Python 的 JIT 编译器,以及像 CPython.
这样的解释器
然而,我见过的现有解释器(例如 CPython)占用大量内存(以 MB 为单位)。
是否有 Python 的 AOT 编译器(即通过 LLVM 等中介直接编译到本机硬件)?
我认为这样的编译器将使 Python 到 运行 与现有实现相比更快,并且内存占用更少。如果有,不知为什么那个方案没有普及
正如您已经提到的 Cython 是一个选项(但是,由于 C 运行时需要一起实现 Python 功能,因此结果确实很大用你的程序)。
关于 LLVM Google 有一个名为 的项目空载燕子。然而,该项目大部分被放弃了。你可以找到一些关于它的信息here
基本上是尝试将 LLVM 优化引入 Cython 的运行时。例如 JITTING Python 代码。
另一个旧的替代方案是 shed skin,它将 Python 编译为 C++。可以找到一些关于它的信息 here.
另一个类似于脱皮的选择是限制自己使用 Python 语言的一个子集并使用 micropython.
我想让我的 Python 脚本在像微控制器这样的裸机设备上工作,而不需要解释器。我知道已经有像 PyPy 这样的 Python 的 JIT 编译器,以及像 CPython.
这样的解释器然而,我见过的现有解释器(例如 CPython)占用大量内存(以 MB 为单位)。
是否有 Python 的 AOT 编译器(即通过 LLVM 等中介直接编译到本机硬件)?
我认为这样的编译器将使 Python 到 运行 与现有实现相比更快,并且内存占用更少。如果有,不知为什么那个方案没有普及
正如您已经提到的 Cython 是一个选项(但是,由于 C 运行时需要一起实现 Python 功能,因此结果确实很大用你的程序)。
关于 LLVM Google 有一个名为 的项目空载燕子。然而,该项目大部分被放弃了。你可以找到一些关于它的信息here
基本上是尝试将 LLVM 优化引入 Cython 的运行时。例如 JITTING Python 代码。
另一个旧的替代方案是 shed skin,它将 Python 编译为 C++。可以找到一些关于它的信息 here.
另一个类似于脱皮的选择是限制自己使用 Python 语言的一个子集并使用 micropython.