将Ruby转换为低级语言?

前端之家收集整理的这篇文章主要介绍了将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所示,有可能使动态语言带来惊人的速度,但是您必须投入大量的资金和办公室才能充满聪明的程序员.

原文链接:https://www.f2er.com/ruby/265793.html

猜你在找的Ruby相关文章