我被要求编写一个代码转换器,它将采用Python程序并生成一个C程序。你有什么想法我怎么能解决这个问题,或者甚至可能吗?
答案 0 :(得分:24)
Shedskin:http://code.google.com/p/shedskin/
提升Python:http://www.boost.org/doc/libs/1_42_0/libs/python/doc/index.html
PyCXX:http://cxx.sourceforge.net/
Cython:http://www.cython.org/
来自http://wiki.python.org/moin/compile%20Python%20to%20C,列出了相关项目。
Pyrex:http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/
答案 1 :(得分:6)
这里有一个基本问题:是否打算基本上创建一个使用C作为后端的Python编译器,或者将程序转换为C并在之后维护C?
编写一个产生(非常难看)C作为其输出的编译器可能并不简单 - 编译器很少,并且为Python生成代码将比许多其他语言更难(动态类型,特别是,很难编译,至少对非常有效的输出)。 OTOH,至少解析器比某些语言容易得多。如果通过“翻译”,你的意思是将Python转换为可读和可维护的C,那就是一个完全不同的问题 - 说实话基本更加困难,温和地说。实际上,我怀疑任何机器翻译都是值得的 - 在Python和C中通常处理问题的方式上存在太大的差异,因为机器翻译有很多希望。
答案 2 :(得分:2)
看看Shedskin。它确实如此(对于C ++和Python及其模块的子集)。但它应该能够提供有价值的见解,如何处理这个特定的问题(虽然写你自己肯定不是一项微不足道的任务。)
答案 3 :(得分:2)
我很难相信没有人提到过Cython--在我看来,这几乎是这类工作的事实上的标准:http://www.cython.org/