为蟒蛇,它可以创建一个预先编译版本的文件。pyc使程序能够运行,不需解释。可以Ruby,PHP and Perl做同样的命令?

有帮助吗?

解决方案

有没有便携式码规范,红宝石,因此还没有标准的方式载预先编译码档案。然而,几乎所有红宝石的实现方式使用某种类型的字节或intcode格式,并且他们可以卸和重新装载码档案。

YARV 总是汇编,以码之前执行代码,但是,通常只有在存储器。有种方法倾倒的字节码磁盘。 目前,有没有办法读回来 , 然而.这将变化的未来:工作正在进行中,在一个码验证程序,用于YARV,一旦做到这一点,特码可以安全地装载到虚拟机,没有恐惧的腐败。此外,继续开发商已经表示,他们愿意为实现一个 YARV VM模拟器里面它, 一旦YARV码格式和验证程序是稳定的,所以,你可以载YARV字节到它.(注意,这个版本是 过时.)

也总是汇编,以码,它有一个 格式编制的文件 (.rbc 文件,类似于JVM .class 文件)和有谈码存档格式(.rba 文件,类似于JVM .jar 文件)。有一个机会,题可能会实现一个YARV仿真程序,如果部署的应用程序,因为YARV码曾经成为流行。此外,继续开发商已经表示,他们愿意为实现一个 题码模拟器里面它, 如果题码变成一种流行的方式部署红宝石的应用程序。(注意,这个版本是 过时.)

XRuby 是一个纯粹的编译器,它汇编了红宝石的源代码觉JVM字节(.class 文件)。你可以部署这些 .class 文件就像任何其他Java应用程序。

它的 开始作为一名翻译,但它有两个JIT和一个编译器 提前编译器 (jrubyc),可以汇编的红宝石来源码JVM字节(.class 文件)。此外,正在开展工作,以创建一个 新的 编译器,可以汇编(类型的附加说明)红宝石码JVM码 这实际上看起来像一个Java类和可用于从Java码无障碍。

Ruby.NET 是一个纯粹的编译器,汇编了红宝石的来源码CIL字节(PE .dll.exe 文件)。你可以部署这些就像任何其他CLI应用程序。

如何从语言特性 还编译为CIL字节,但通常不会在这-内存。但是,可以通过 commandline切换到它, ,因此它转储的 .dll.exe 文件出的磁盘。一旦你有了这些,他们可以部署。

BlueRuby 自动预先分析红宝石的源代码转。(BlueRuby间语言),这基本上是一个化但是.(见 蓝宝石-宝石VM在SAP种(PDF格式),用于细节。)

想想 (但我是绝对不确定),有一种方法来获得 红衣主教 甩出去 鹦鹉 码档案。(实际上,红衣主教只编译为过去,然后鹦鹉需要结束了,所以这将是鹦鹉的工作倾倒和载码档案。)

其他提示

Perl5可以倾倒的字节到磁盘中,但它是越野车和讨厌。 Perl6 有一个非常干净的方法创造字节的可执行文件 鹦鹉 可以运行。

Perl只是时间汇编的速度足够快,这个问题不在大多数情况下。一个地方不管是在CGI的环境,这是什么 mod_perl 是的。

有关歇斯底里葡萄干,Perl 5中看起来为模块搜索时.pmc文件提前.pm文件。这些文件可能包含字节码,但Perl不写字节码出默认(不像Python)的。

模块::编译(或:这是什么PMC啄) 进入这个不起眼的功能,一些更深入。他们不经常使用,但是......

谁写聪明人模块::编译利用这一点,以预编译的Perl代码到...好,它仍然是Perl的,但它的预处理。

除了其它的优点,这加快装载时间和使用源过滤器时使调试容易(Perl代码修改的Perl源代码由解释器被加载之前)。

不为PHP,虽然大多数PHP设置掺入字节码缓存将缓存编译字节码,使脚本运行下一次,编译版本运行。这显着地加快了执行。

有没有办法,我所知道的在通过命令行的字节码实际上得到。

为Perl你可以尝试使用 B::码perlcc.然而,这些都是高度实验性的。和Perl6是很快出来了(从理论上),并将在鹦鹉和将使用不同的字节,因此,所有这将是有没有实际意义。

这里有一些示例咒语的命令行

perl -MO=Bytecode,-H,-o"Module.pm"c "Module.pm"

根据的编程的Perl 第三版,有可能在一些实验方法来近似此。

如果您使用 Zend的卫队你的PHP脚本,它基本上是预编译脚本字节码,然后可以通过PHP引擎如果Zend的优化扩展被加载运行。

所以,是Zend的护罩/优化器允许使用预编译PHP脚本。

有关PHP,所述 Phalanger计划编译成.NET程序集。我不知道那是什么,你正在寻找,但。

有没有人使用LLVM的字节码考虑,而不是一个尚未另一个定制字节码?

红宝石1.8实际上并未使用在所有(甚至在内部)的字节码,所以没有预编译步骤。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top