创建基于LLVM架构的Python前端需要哪些东西?

6 投票
1 回答
1273 浏览
提问于 2025-04-17 12:56

我刚开始接触编译器设计,了解一些基本知识。我想开发一个前端,可以接收一个Python程序作为输入,然后利用LLVM库和LLVM即时编译器(JIT)生成输出。有没有人能给我指个方向或者提供一些阅读链接?我需要编写哪些基本模块来实现这个目标?

补充:我决定把这个作为我的项目。我大约有两个月半的时间来实现这个。我想为Python的一个小子集实现这个功能。

1 个回答

1

你可以重新编译Python的字节码,这样就可以保持Python的语法,也就是语言的前端部分不变。如果你想要更大的提升,可能需要修改libpython这个库。

可以看看pyastra和pymite这两个项目,它们实现了Python的一部分功能,并且可以直接执行。

Cython可以作为Python和编译之间的一个中间工具,挺有用的。

如果想要更大范围的了解,可以看看PyPy、Psyco和Unladen Swallow这几个项目。

撰写回答