Tag: 编译器 构造

我可以在代码上强制执行哪种模式,以便于将其转换为另一种编程语言?

我正在着手做一个侧面项目,其目标是将代码从一种编程语言翻译到另一种编程语言。 我开始使用的语言是PHP和Python(从Python到PHP应该更容易一些),但理想情况下,我可以轻松地添加其他语言。 计划是: 这是面向web开发。 原始代码和目标代码将被放在框架之上(我也将写)。 这些框架将包含MVCdevise模式,并遵循严格的编码约定。 这应该使翻译更容易一些。 我也在研究IOC和dependency injection,因为它们可能会使翻译过程更容易,也更不容易出错。 我将利用Python的parsing器模块 ,它让我摆弄抽象语法树。 显然我能用PHP得到的最接近的是token_get_all() ,这是一个开始。 从那时起,我可以build立AST,符号表和控制stream程。 那我相信我可以开始输出代码了。 我不需要一个完美的翻译 。 我仍然需要查看生成的代码并修复问题。 理想情况下,翻译者应该标记有问题的翻译。 在你问“这到底是什么? 答案是…这将是一个有趣的学习经验。 如果您对如何使这个不那么艰巨的任何见解,请让我知道。 编辑: 我更感兴趣的是知道我可以在代码上执行什么样的模式,以便更易于翻译(即:IoC,SOA?)代码,而不是如何进行翻译。