问题标签 [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.
ruby - Ruby 是脚本语言还是解释语言?
我刚刚注意到,在 Ruby 的维基百科页面中,这种语言被定义为解释性语言。
我知道我的背景中可能缺少一些东西。
我一直都知道不需要编译器的解释语言和编译语言(需要在执行程序之前编译)之间的区别,但是脚本语言的特点是什么?
Ruby 可以定义为脚本语言吗?
谢谢并原谅我停电
optimization - 计算常数的性能
以下两个伪代码块在编译语言和解释语言的速度方面如何比较?(忽略位数)
本质上,将变量写成几个常数的函数,而不是事先计算,会不会有任何性能损失?这通常会使代码更清晰。
.
谢谢!
programming-languages - 为什么解释语言和编译语言之间有如此明确的界限?
在学习 C 或 C++ 等编译语言时,您会了解编译器。为了运行你的代码,你必须先编译它。编译您的代码会将其从文本表示形式转换为可以执行的内容。生成的代码非常快,可以使用预处理器等。
在学习 Python、Matlab 或 Ruby 等动态语言时,您会了解解释器。为了运行您的代码,您只需将其输入到解释器中。因此,您可以在运行时使用您的代码并动态更改程序的行为。这样做的缺点似乎是解释型语言相当慢,而且缺乏明确的编译时间似乎使得预处理器不可能。
然后是即时编译器,它们像解释语言一样使用,但与编译语言相比性能不足。但它们通常不使用预处理器,也不输出准备运行的二进制文件。
然后我学习了 Lisp,它可以被编译、解释和你有什么,同时它既快速又拥有强大的预处理系统(宏)。这在 Lisp 世界中似乎是常识,但在其他任何地方都不是。
为什么没有流行的 C 解释器或 Python 编译器?为什么解释语言和编译语言之间存在如此大的差异?(我知道存在一些可以编译 Python 或解释 C 的项目,但总的来说它们似乎不是很受欢迎)。
python - 解释语言的链接和加载
在编译语言中,源代码由编译器转换为目标代码,不同的目标文件(如果有多个文件)由链接器链接,并由加载器加载到内存中执行。
如果我有一个使用解释性语言(例如,ruby 或 python)编写的应用程序,并且如果源代码是跨文件拆分的,那么这些文件究竟是什么时候组合在一起的。换句话说,链接何时完成?解释语言是否首先具有链接器和加载器,或者解释器会做所有事情?
我真的对此感到困惑,无法理解它!任何人都可以对此有所了解吗?
if-statement - 括号中的任何隐含 else 少的 if 语句?语言未知
在Ars Technica上也讨论过关于iOS Crypto Flaw的讨论后,有人提到他们遇到了一种情况,即无括号表达式后面的行被视为.if
else
因此,根据该人的说法,如果条件为true ,则表达式 B将被跳过,就好像是隐含的和不必要的。else
这与我所听到的相反——我的经验是,如果条件为真,那么所有三个表达式都会被执行——但鉴于我是一个支持括号的拥护者,我的经验可能是有限的,所以我犹豫不决彻底把人叫出来。相反,我花了大约 10 分钟来澄清并确保我正确理解了他们在说什么:)
他们说的有道理吗?什么语言?
我很确定所有主要的脚本语言都遵循我的理解。我认为这个人在 Objective-C 方面有更大的背景。但如果这是真的,那肯定是总是使用括号的最大理由。
d - 如何在 D 中声明私有类成员?
该程序将回显“C”。我该如何禁止呢?
interpreted-language - 为什么要使用解释语言来使编译后的语言“即时”可调?
我读过某些程序,例如文明视频游戏系列,使用解释组件(在本例中为 Lua)与编译组件(我假设为 C++)接口,以允许用户通过 mod 等进行扩展。为什么以这种方式调用虚拟机,当我假设您可以编写和烘焙自己的编译语言扩展时,会有所帮助?
python - 循环数很重要效率(解释语言还是编译语言?)
假设您必须使用 2 个甚至 3 个循环来执行计算。直观地说,使用单个循环执行此操作可能会更有效。我尝试了一个简单的 Python 示例:
此代码运行:
因此,有效地 1 循环似乎更有效。然而,我的问题有一个稍微不同的场景,因为我需要使用数组中的值(在下面的示例中,我使用该函数range
进行简化)。也就是说,如果我将所有内容折叠到一个循环中,我将不得不从另一个数组的值创建一个扩展数组,该数组的大小在 2 到 10 个元素之间。
在我的计算机中,此代码运行在:
所以看起来 3 个嵌套循环更有效,因为我花了一些时间b
在case1
. 所以我不确定我是否以最有效的方式创建这个数组,但撇开它不谈,它真的可以将循环折叠成一个循环吗?我在这里使用 Python,但是像 C++ 这样的编译语言呢?在这种情况下,编译器是否会做一些事情来优化单循环?或者另一方面,当您有多个嵌套循环时,编译器是否会进行一些优化?
bash - Bash 是解释型语言吗?
从我目前所读到的内容来看,bash 似乎符合解释语言的定义:
- 它没有被编译成较低的格式
- 每条语句最终都会调用一个子程序/一组已经翻译成机器代码的子程序(即
echo foo
调用一个预编译的可执行文件) - 解释器本身 ,
bash
已经被编译
但是,我在Wikipedia 的解释语言页面上或在 Google 上的广泛搜索中找不到对 bash 的引用。我还在 Programmers Stack Exchange 上找到了一个页面,该页面似乎暗示 bash 不是一种解释性语言——如果不是,那它是什么?
module - 从多个项目导入 D 模块
我需要将多个项目中的模块导入当前项目。
目前我从编译器收到以下消息:
项目设置如下:
编译命令: