问题标签 [interpreted-language]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
91998 浏览

c# - C# 是部分解释还是真正编译?

关于这一点有很多相互矛盾的信息。虽然有人说 C# 是编译的(因为它被编译成 IL,然后在运行时编译成本机代码),但其他人说它被解释为它需要 .NET。EN 维基 说:

许多解释语言首先被编译成某种形式的虚拟机代码,然后在运行时被解释或编译为本机代码。

所以我很困惑。谁能解释清楚?

0 投票
4 回答
2084 浏览

interpreted-language - 什么将 vbscript 转换为机器码?

像 C# 和 java 这样的编译语言具有即时编译器,可以将它们(从字节码)转换为机器码(0 和 1)。VBScript 之类的解释性语言如何转换为机器代码?它是由操作系统完成的吗?

0 投票
2 回答
111767 浏览

javascript - Javascript 是编译语言还是解释语言?

Javascript可以称为纯解释语言吗?还是它也有一些编译的味道?有人可以指导这两件事背后的原因,无论是真的。

0 投票
1 回答
156 浏览

java - 将 Apache Velocity 与自己的解释脚本语言一起使用

在我的 Java 应用程序中,我使用了一种面向对象的解释脚本语言(使用 ANTLR 指定),并希望将其与 Velocity 一起使用。

我的语言中的对象由 DataObject 的实例表示,如下所示(简化):

并且对象实例 $foo 的属性可以作为 $foo.bar 访问

现在假设我已将 $foo 放入 VelocityContext:

据我所知,我可以通过以下任何方式快速访问属性(位于 DataObject.properties 中):

现在我的主要问题是:有没有办法改变行为,使得 $foo.bar 不会处理 Java 属性 dataObject.bar,而是直接处理 dataObject.properties.get("bar"),这样我就可以使用 $ Velociy 中的 foo.bar 就像我在自己的脚本语言中一样?

0 投票
0 回答
1159 浏览

optimization - 在解释语言中取消切换循环有什么用处?

我正在查看 GCC 对 -O3 的作用(我确保我的所有代码都可以编译),并且我想知道在解释语言中取消切换循环有多大用处。我想知道对于“生产”就绪的代码是否值得,例如当您使用谷歌的闭包编译器时,因为它会加快一点,但我想象的不是很多。无论如何,这真正产生了多少好处?我想这是 x 检查 y 循环。其中 x 是 if else if 或 case 切换的数量,y 是循环的数量。所以它是 x*y。但是,当您使用解释型语言时,它值多少钱?

我以一种完全理论上的方式问它,因为我只是想知道它,我怀疑它有什么意义,甚至可能让它倒退,因为它在运行它时必须读取每个字符。

好的,这就是我在谈论取消循环的内容。

我所说的任何在运行时编译和/或通过 VM 运行的语言也都是解释性的,例如;PHP、JavaScript、BASH、Ruby、Perl 等

不知道我上面写的有没有。但这就是我的意思,在那些你必须逐字节读取输入然后将其转换成你可以使用的东西的语言中。我也知道您可以采取其他措施来加快速度,但这是我能想到的最简单的解释方式。

正常循环。

未切换循环(根据我从clang文档中收集到的内容(gcc的废话)。

上面的代码应该是他们所做的。

0 投票
3 回答
2188 浏览

javascript - 使用 Google Chrome (V8) 时,Javascript 可以被视为解释语言吗?

我正在阅读这篇关于 V8(Google 的 Javascript 引擎)的优秀文章:https ://developers.google.com/v8/design#mach_code 。

有一次,他们说 Javascript 直接编译成机器语言,没有任何字节码或解释器。

去引用:

V8 在第一次执行时将 JavaScript 源代码直接编译为机器码。没有中间字节码,没有解释器。

那么,为什么 Javascript 仍然与“脚本”和“解释”语言一起列出,当它被明确编译时(至少在 V8 中)?



编辑:如果已编译,我可以以某种方式从 Javascript 创建可执行文件吗?那需要以某种方式将其链接到 V8 吗?

考虑到这个问题,我找到了这句话:

V8 可以独立运行,也可以嵌入到任何 C++ 应用程序中。

在这里:http ://code.google.com/p/v8/ 。

0 投票
6 回答
3882 浏览

python - 短变量名有什么好处吗?

通过在像 python 这样的语言中使用较短的变量名,有什么可以在记忆和速度方面获得的吗?

如果是这样,在什么样的情况下考虑这个是合理的?

笔记

我绝不提倡短变量名,我只是想知道,请(重新)阅读这个问题。

注意 2 请,我确实理解描述性变量名称的值。我已经查看了足够多的代码来更喜欢描述性名称而不是较短的名称,并理解它的价值。一个普通的“否”并没有真正的帮助。

0 投票
3 回答
61 浏览

optimization - 计算常数的性能

以下两个伪代码块在编译语言和解释语言的速度方面如何比较?(忽略位数)

本质上,将变量写成几个常数的函数,而不是事先计算,会不会有任何性能损失?这通常会使代码更清晰。

.

谢谢!

0 投票
4 回答
1000 浏览

serialization - 是什么让 Smalltalk 能够进行图像持久化,为什么像 Ruby/Python 这样的语言不能序列化自己?

在 smalltalk 中,您可以将世界状态保存到图像文件中。我认为这与 Smalltalk 自身“序列化”的能力有关——也就是说,对象可以生成它们自己的源代码。

1)这是一个准确的理解吗?

2)将这种能力添加到现代语言(显然是非lisp)中的挑战是什么?

3)“序列化”是正确的词吗?什么是正确的行话?

0 投票
4 回答
2087 浏览

php - 解释语言(即 PHP)中的面向对象编程是否有效?

我只是想知道是否值得为了速度而坚持使用非 OOP 代码。此外,在商业 Web 应用程序中,OOP 通常是使用还是避免使用?哪个是标准?

非常感谢,

埃德