将Ruby转换为低级语言?
我有
Ruby的各种脚本:
rails (symfony) ruby (php,bash) rb-appscript (applescript) 还可以用Ruby替换低级语言吗? 我用Ruby编写,并将其转换为java,c或c. 因为人们说在Ruby中有更多的性能关键任务,你可以用C扩展它.但是扩展这个词意味着你编写你刚才调用的Ruby代码的C文件.我想知道,我可以使用Ruby并将其转换为C源代码,将其编译为机器代码.然后我可以用C扩展它,但是在Ruby代码中. 这就是这篇文章.在Ruby中编写所有内容,但可以获得C(或Java)的性能. 第二个优点是您不必学习其他语言. 就像HipHop for PHP一样. 是否有实现? 解决方法
这样的编译器将是一项巨大的工作.即使它的工作,它仍然必须
>包括ruby运行时 所有这些都会造成巨大的运行时惩罚,因为C编译器既不能理解也不能优化这样的抽象. Ruby和其他动态语言不仅较慢,因为它们被解释(或编译为字节码,然后被解释),也是因为它们是动态的. 例 在C中,大多数情况下可以调用方法调用,因为编译器知道这个方法的确切类型.如果子类型被传递,该方法仍然不能改变,除非它是虚拟的,在这种情况下,使用一个非常有效的查找表. 在Ruby中,类和方法可以随时以任何方式进行更改,因此每次都需要(相对昂贵的)查找. 像Ruby,Python或Perl这样的语言有很多功能,这些功能很简单,而且大多数相关程序大多依赖于这些功能(当然这些功能非常有用!),因此无法将其删除或内联. 简单地说:动态语言很难优化,只需要做一个解释器做的事情,编译到机器代码就不会被切断.如V8所示,有可能使动态语言带来惊人的速度,但是您必须投入大量的资金和办公室才能充满聪明的程序员. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |