创建基于LLVM架构的Python前端需要哪些东西?
我刚开始接触编译器设计,了解一些基本知识。我想开发一个前端,可以接收一个Python程序作为输入,然后利用LLVM库和LLVM即时编译器(JIT)生成输出。有没有人能给我指个方向或者提供一些阅读链接?我需要编写哪些基本模块来实现这个目标?
补充:我决定把这个作为我的项目。我大约有两个月半的时间来实现这个。我想为Python的一个小子集实现这个功能。
1 个回答
1
你可以重新编译Python的字节码,这样就可以保持Python的语法,也就是语言的前端部分不变。如果你想要更大的提升,可能需要修改libpython这个库。
可以看看pyastra和pymite这两个项目,它们实现了Python的一部分功能,并且可以直接执行。
Cython可以作为Python和编译之间的一个中间工具,挺有用的。
如果想要更大范围的了解,可以看看PyPy、Psyco和Unladen Swallow这几个项目。