既然 V8 将 JavaScript 编译成汇编程序,我们可以说在 Chrome 环境中 JavaScript 不再是一种脚本语言而是一种编程语言吗?
V8 在第一次执行时将 JavaScript 源代码直接编译为机器码。没有中间字节码,没有解释器。
https://developers.google.com/v8/design#mach_code
10 个月前,同样的问题已经(更好地)在这里进行了辩论:
既然 V8 将 JavaScript 编译成汇编程序,我们可以说在 Chrome 环境中 JavaScript 不再是一种脚本语言而是一种编程语言吗?
V8 在第一次执行时将 JavaScript 源代码直接编译为机器码。没有中间字节码,没有解释器。
https://developers.google.com/v8/design#mach_code
10 个月前,同样的问题已经(更好地)在这里进行了辩论:
脚本语言也是一种编程语言。
无论如何,即使执行引擎的底层实现发生了变化,Javascript 语言的特性也没有改变。Javascript 仍然具有我们所看到的脚本语言所特有的特性,例如动态数据类型和动态代码生成。
Javascript 最初是一种简单的解释性脚本语言,但在过去几年中,代码的执行方式发生了很大变化。但是,除了这会如何影响性能之外,该语言仍然像往常一样工作。
“脚本语言”是“编程语言”的(定义不明确的)子集,因此将 JavaScript 称为编程语言总是合适的。
但基本上,脚本不是一个技术术语。当我们称某事物为脚本语言时,我们主要是在做出语言和文化判断,而不是技术判断。
程序(图灵机)只是一个数学结构,一条信息。你可以在数百年前创建编程语言并编写程序,而无需任何计算机来运行它。
编程语言是由它的规范定义的,而不是由你用它做的“事情”(编译、解释等)定义的。你不必有一台电脑来编写程序。如果您知道规范,您可以在头脑中或在纸上的输入上“运行”您的程序并获得输出。
实际上,最早的程序是在第一台电子计算机发明之前编写的。