gpt4 book ai didi

ruby - 如果 Ruby 的所有实现都被编译成字节码,Ruby 真的是一种解释型语言吗?

转载 作者:数据小太阳 更新时间:2023-10-29 06:34:57 43 4
gpt4 key购买 nike

在为 this question about Blue Ruby 选择的答案中,查克说:

All of the current Ruby implementations are compiled to bytecode. Contrary to SAP's claims, as of Ruby 1.9, MRI itself includes a bytecode compiler, though the ability to save the compiled bytecode to disk disappeared somewhere in the process of merging the YARV virtual machine. JRuby is compiled into Java .class files. I don't have a lot of details on MagLev, but it seems safe to say it will take that road as well.

我对这个关于 Ruby 的编译/解释问题感到困惑。

我了解到 Ruby 是一种解释型语言,这就是为什么当我将更改保存到我的 Ruby 文件时我不需要重新构建项目。

但是如果现在所有的 Ruby 实现都是编译的,那么说 Ruby 是一种解释型语言还公平吗?还是我误解了什么?

最佳答案

如果将字节码算作编译的话,现在几乎所有语言都是“编译”的。甚至 Emacs Lisp 也是编译的。 Ruby 是一个特例,因为直到最近,它还没有编译成字节码。

我认为您质疑将语言描述为“编译”与“解释”的效用是正确的。不过,一个有用的区别是该语言是否直接从用户代码创建机器代码(例如 x86 汇编程序)。 C、C++、许多 Lisp 和启用了 JIT 的 Java 可以,但 Ruby、Python 和 Perl 没有。

不太了解的人会将任何具有单独手动编译步骤的语言称为“已编译”,而将没有“解释”的语言称为“解释”。

关于ruby - 如果 Ruby 的所有实现都被编译成字节码,Ruby 真的是一种解释型语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/717490/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com