PHP到Ruby编译器

有没有人知道(最好是开源)PHP到ruby编译器? 即一个解析PHP代码并生成语义上等效的ruby代码的程序?

我自己没有用过,但你可能想看看Phuby 。 它允许您在ruby中运行PHP代码。 然后我尝试对代码中的生命进行unit testing(使用rubyunit testing),然后在ruby中重新编写代码。

但是,我怀疑Phuby甚至没有远程生产就绪。

这已经是一项非常艰巨的任务。 你选择了两种非常不同的语言。 当然,您可能以编程方式将PHP转换为Ruby,但结果代码将非常像ruby。

查看一些相关问题及其答案:

  • 如何在编程语言之间进行翻译
  • 为什么不可能创建一个实用的Perl到Python源代码转换器?

如果你可以将惯用的PHP翻译成惯用的Ruby,你可能需要类似人类的智能 – 即:能够理解代码的function(本质上)并用目标语言重写它。 不幸的是,我们在这方面没有非常聪明的AI。 至少不是我知道的。

我不认为一个存在。

Quercus(用Java重新实现PHP)和JRuby的组合可能会有所帮助,具体取决于您要完成的任务。

http://www.caucho.com/resin-3.0/quercus/

http://jruby.org/

人脑与镐轴的副本串联;)

使用SWI-Prolog的通用转换器库,您可以将PHP的子集转换为Ruby和其他几种语言。 这是一个以PHP源代码作为输入的示例程序:

:- use_module(library(transpiler)). :- set_prolog_flag(double_quotes,chars). :- initialization(main). main :- Input = "function add($a,$b){return $a.$b;}function squared($a){return $a*$a;}function add_exclamation_point($parameter){return $parameter.\"!\";}", translate(Input,'php','ruby',X), atom_chars(Y,X), writeln(Y). 

这是Ruby中程序的输出:

 def add(a,b) return a+b end def squared(a) return a*a end def add_exclamation_point(parameter) return parameter+"!" end 

当你刚开始从PHP到Ruby时, http://railsforphp.com/reference/可以成为一个方便的参考。 您可以查找PHP函数并找到它的Ruby等价物。