代码之家  ›  专栏  ›  技术社区  ›  Ramon

PHP到Ruby编译器[关闭]

  •  1
  • Ramon  · 技术社区  · 14 年前

    有人知道(最好是开源的)PHP-to-ruby编译器吗?i、 一个解析PHP代码并产生语义上等价的ruby代码的程序?

    6 回复  |  直到 14 年前
        1
  •  2
  •   Andrew Grimm atk    14 年前

    我自己没用过,但你可能想看看 Phuby . 它允许您在ruby中运行PHP代码。然后我试着对代码进行单元测试(使用ruby单元测试),然后用ruby重新编写代码。

    不过,我怀疑Phuby还没有准备好远程制作。

        2
  •  3
  •   Community CDub    7 年前

    这已经是一项相当艰巨的任务了。你选择了两种完全不同的语言。当然,您可能可以通过编程将PHP转换为Ruby,但是生成的代码将非常不像Ruby。

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

    如果你能把习惯用法的PHP翻译成习惯用法的Ruby,你可能需要像人类一样的智能——即:理解代码的功能(本质上)并用目标语言重写它。不幸的是,我们在这方面没有很聪明的人工智能。至少我不知道。

        3
  •  2
  •   bobdiaes    14 年前

    我想不存在。

    Quercus和JRuby的结合可能会有所帮助,这取决于您要完成的任务。

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

    http://jruby.org/

        4
  •  2
  •   Chris Mowforth    14 年前

    人类的大脑和一把镐的复制品一起;)

        5
  •  1
  •   Anderson Green    8 年前

    使用 universal-transpiler 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
    
        6
  •  0
  •   Robert Speicher    14 年前

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