我可以在代码上强制什么类型的模式来使转换成另一种编程语言更容易呢?
我正着手做一个附带项目,其目标是将代码从一种编程语言转换为另一种编程语言。我开始使用的语言是PHP和Python(Python到PHP应该更容易开始),但理想情况下,我可以轻松地添加其他语言。计划是:
这是面向Web开发的。原始代码和目标代码将位于框架之上(我也必须编写这些框架)。这些框架将采用MVC设计模式,并遵循严格的编码约定。这应该会使翻译更容易一些。
我还研究了IoC和依赖项注入,因为它们可能使翻译过程更容易,并且更容易出错。
我会利用Python的解析器模块,这让我可以摆弄抽象语法树。显然,我在PHP中能得到的最接近的是令牌get_all(),这是一个开始。
从那时起,我可以建立AST,符号表和控制流。
那我就可以开始输出代码了。我不需要完美的翻译..我仍然需要检查生成的代码并修复问题。理想情况下,译者应该标记有问题的翻译。
在你问“这到底有什么意义?”答案是.。这将是一次有趣的学习体验。如果你对如何使这件事不那么令人畏惧有任何见解,请告诉我。
编辑:
我更感兴趣的是,我可以在代码上执行什么样的模式,以便更容易地转换(例如:IoC,SOA?)代码比如何进行翻译。