问题标签 [compiled-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 投票
3 回答
29871 浏览

ruby - Ruby 是脚本语言还是解释语言?

我刚刚注意到,在 Ruby 的维基百科页面中,这种语言被定义为解释性语言。
我知道我的背景中可能缺少一些东西。
我一直都知道不需要编译器的解释语言和编译语言(需要在执行程序之前编译)之间的区别,但是脚本语言的特点是什么?
Ruby 可以定义为脚本语言吗?

谢谢并原谅我停电

0 投票
3 回答
61 浏览

optimization - 计算常数的性能

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

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

.

谢谢!

0 投票
1 回答
303 浏览

programming-languages - 为什么解释语言和编译语言之间有如此明确的界限?

在学习 C 或 C++ 等编译语言时,您会了解编译器。为了运行你的代码,你必须先编译它。编译您的代码会将其从文本表示形式转换为可以执行的内容。生成的代码非常快,可以使用预处理器等。

在学习 Python、Matlab 或 Ruby 等动态语言时,您会了解解释器。为了运行您的代码,您只需将其输入到解释器中。因此,您可以在运行时使用您的代码并动态更改程序的行为。这样做的缺点似乎是解释型语言相当慢,而且缺乏明确的编译时间似乎使得预处理器不可能。

然后是即时编译器,它们像解释语言一样使用,但与编译语言相比性能不足。但它们通常不使用预处理器,也不输出准备运行的二进制文件。

然后我学习了 Lisp,它可以被编译、解释和你有什么,同时它既快速又拥有强大的预处理系统(宏)。这在 Lisp 世界中似乎是常识,但在其他任何地方都不是。

为什么没有流行的 C 解释器或 Python 编译器?为什么解释语言和编译语言之间存在如此大的差异?(我知道存在一些可以编译 Python 或解释 C 的项目,但总的来说它们似乎不是很受欢迎)。

0 投票
2 回答
2780 浏览

python - 解释语言的链接和加载

在编译语言中,源代码由编译器转换为目标代码,不同的目标文件(如果有多个文件)由链接器链接,并由加载器加载到内存中执行。

如果我有一个使用解释性语言(例如,ruby 或 python)编写的应用程序,并且如果源代码是跨文件拆分的,那么这些文件究竟是什么时候组合在一起的。换句话说,链接何时完成?解释语言是否首先具有链接器和加载器,或者解释器会做所有事情?

我真的对此感到困惑,无法理解它!任何人都可以对此有所了解吗?

0 投票
1 回答
1240 浏览

if-statement - 括号中的任何隐含 else 少的 if 语句?语言未知

Ars Technica上也讨论过关于iOS Crypto Flaw的讨论后,有人提到他们遇到了一种情况,即无括号表达式后面的行被视为.ifelse

因此,根据该人的说法,如果条件为true ,则表达式 B将被跳过,就好像是隐含的和不必要的。else

这与我所听到的相反——我的经验是,如果条件为真,那么所有三个表达式都会被执行——但鉴于我是一个支持括号的拥护者,我的经验可能是有限的,所以我犹豫不决彻底把人叫出来。相反,我花了大约 10 分钟来澄清并确保我正确理解了他们在说什么:)

他们说的有道理吗?什么语言?

我很确定所有主要的脚本语言都遵循我的理解。我认为这个人在 Objective-C 方面有更大的背景。但如果这是真的,那肯定是总是使用括号的最大理由。

0 投票
1 回答
87 浏览

d - 如何在 D 中声明私有类成员?

该程序将回显“C”。我该如何禁止呢?

0 投票
1 回答
69 浏览

interpreted-language - 为什么要使用解释语言来使编译后的语言“即时”可调?

我读过某些程序,例如文明视频游戏系列,使用解释组件(在本例中为 Lua)与编译组件(我假设为 C++)接口,以允许用户通过 mod 等进行扩展。为什么以这种方式调用虚拟机,当我假设您可以编写和烘焙自己的编译语言扩展时,会有所帮助?

0 投票
2 回答
223 浏览

python - 循环数很重要效率(解释语言还是编译语言?)

假设您必须使用 2 个甚至 3 个循环来执行计算。直观地说,使用单个循环执行此操作可能会更有效。我尝试了一个简单的 Python 示例:

此代码运行:

因此,有效地 1 循环似乎更有效。然而,我的问题有一个稍微不同的场景,因为我需要使用数组中的值(在下面的示例中,我使用该函数range进行简化)。也就是说,如果我将所有内容折叠到一个循环中,我将不得不从另一个数组的值创建一个扩展数组,该数组的大小在 2 到 10 个元素之间。

在我的计算机中,此代码运行在:

所以看起来 3 个嵌套循环更有效,因为我花了一些时间bcase1. 所以我不确定我是否以最有效的方式创建这个数组,但撇开它不谈,它真的可以将循环折叠成一个循环吗?我在这里使用 Python,但是像 C++ 这样的编译语言呢?在这种情况下,编译器是否会做一些事情来优化单循环?或者另一方面,当您有多个嵌套循环时,编译器是否会进行一些优化?

0 投票
2 回答
4908 浏览

bash - Bash 是解释型语言吗?

从我目前所读到的内容来看,bash 似乎符合解释语言的定义:

但是,我在Wikipedia 的解释语言页面上或在 Google 上的广泛搜索中找不到对 bash 的引用。我还在 Programmers Stack Exchange 上找到了一个页面,该页面似乎暗示 bash 不是一种解释性语言——如果不是,那它是什么?

0 投票
2 回答
68 浏览

module - 从多个项目导入 D 模块

我需要将多个项目中的模块导入当前项目。

目前我从编译器收到以下消息:

项目设置如下:

编译命令: