脚本语言与编程语言

任何人都可以解释脚本语言和编程语言之间的区别吗?
你也可以陈述每个例子。 我已经Google了很多,但我总是从Stack Overflow中找到最好的答案。


脚本语言是不需要显式编译步骤的编程语言。

例如,在正常情况下,您必须先编译一个C程序,然后才能运行它。 但在正常情况下,在运行JavaScript之前不必编译JavaScript程序。 所以JavaScript有时被称为“脚本”语言。

由于现代硬件和现代编译技术的编译速度如此之快,这条线变得越来越模糊。 例如,谷歌浏览器中的JavaScript引擎V8也在浏览器外部使用很多,实际上JavaScript代码实时编译为机器代码,而不是解释它。 (事实上​​,V8是一个优化的两阶段编译器。)

还要注意,一种语言是否是一种“脚本”语言可能比语言更多关于环境。 没有理由不能编写C解释器并将其用作脚本语言(以及人们)。 也没有理由不能将JavaScript编译为机器代码并将其存储在可执行文件(以及人们有)中。 Ruby语言就是一个很好的例子:最初的实现是完全解释的(一种“脚本”语言),但现在有了多个编译器。

“脚本”语言的一些例子(例如传统上没有明确编译步骤的语言):

  • LUA
  • JavaScript的
  • VBScript和VBA
  • Perl的
  • 传统上用一个明确的编译步骤使用一小部分:

  • C
  • C ++
  • d
  • Java(但是请注意,Java被编译为字节码,然后在运行时解释和/或重新编译)
  • 帕斯卡尔
  • ......然后你就可以在两个阵营中使用像Python这样的东西了:Python在没有编译步骤的情况下被广泛使用,但是主要实现(CPython)通过即时编译字节码然后在字符集中运行字节码VM,并且它可以将该字节码写入文件( .pyc.pyo )以供使用,而无需重新编译。

    这只是少数,如果你做了一些研究,你可以找到更多。


    为了理解脚本语言和编程语言之间的区别,人们必须理解为什么脚本语言诞生了。

    最初,编写程序语言是为了编写像Excel,Word,浏览器,游戏等程序而编写的。这些程序是用c和java等语言构建的。 加班时,这些程序需要用户创建新功能的方式,所以他们必须提供一个字节码的接口,因此脚本语言诞生了。

    脚本语言通常不会被编译,因此只要你写了一些有意义的东西就可以运行。 因此,Excel可以使用C ++构建,但是它公开了一种名为VBA的脚本语言,供用户定义功能。 同样,浏览器也可以用C ++ / Java编写,但是它们公开了一种叫javascript的脚本语言(与Java无关)。 游戏通常使用C ++构建,但公开了称为Lua的语言,供用户定义自定义功能。

    脚本语言通常位于某种编程语言的后面。 由于脚本语言运行在原始编程语言的一个子集上,因此脚本语言对计算机原生能力的访问通常较少。 这里的一个例子是Javascript将无法访问您的文件系统。 脚本语言通常比编程语言慢。

    尽管脚本语言可能访问较少并且速度较慢,但​​它们可以是非常强大的工具。 促成脚本语言成功的一个因素是易于更新。 你还记得网络上java applets的日子吗?这是一个运行编程语言(java)vs运行脚本语言(javascript)的例子。 那时候,电脑并没有那么强大,而且JavaScript也没有那么成熟,所以Java小程序主宰了这个场景。 但是,Java小程序很烦人,他们需要用户分类加载并编译语言。 快进到今天,Java applet几乎已经灭绝,Javascript在这个场景中占据主导地位。 由于大多数浏览器组件已经安装,所以Javascript加载速度非常快。

    最后,脚本语言也被认为是编程语言(尽管有些人拒绝接受) - 我们应该使用的术语是脚本语言与编译语言。


    所有的脚本语言都是编程语言。

    语言不被归类为脚本 - 它完全取决于执行环境。

    如果环境是被解释的环境,那么通常称为脚本环境。

    链接地址: http://www.djcxy.com/p/12543.html

    上一篇: Scripting Language vs Programming Language

    下一篇: File I/O in Every Programming Language