Programming languages 它是一种编程语言吗?

Programming languages 它是一种编程语言吗?,programming-languages,scripting,autoit,Programming Languages,Scripting,Autoit,它是一种编程语言吗?编程语言和脚本语言的区别是什么 这似乎很复杂。你可以在里面做很多事情。代码甚至可以编译成.exe文件。所以我不明白为什么它不会被认为是一种编程语言。一种纯粹的脚本语言不可能独立存在——它让其他东西做一些事情(比如JavaScript操纵网页) 有些语言,如Python、Ruby或Perl,被称为脚本语言,因为它们与其他脚本语言有很多共同点,但它们可以单独使用 AutoIt听起来像一种普通的脚本语言: AutoIt v3是一种类似于基本免费软件的脚本语言,旨在实现Windows

它是一种编程语言吗?编程语言和脚本语言的区别是什么


这似乎很复杂。你可以在里面做很多事情。代码甚至可以编译成.exe文件。所以我不明白为什么它不会被认为是一种编程语言。

一种纯粹的脚本语言不可能独立存在——它让其他东西做一些事情(比如JavaScript操纵网页)

有些语言,如Python、Ruby或Perl,被称为脚本语言,因为它们与其他脚本语言有很多共同点,但它们可以单独使用

AutoIt听起来像一种普通的脚本语言:

AutoIt v3是一种类似于基本免费软件的脚本语言,旨在实现Windows GUI和通用脚本的自动化

听起来它的主要用途是操作Windows GUI元素,所以这使它成为一种脚本语言。例如,在web服务器上这样做有意义吗


不过,正如格雷格所提到的,需要注意的重要一点是,“脚本语言”一词的定义非常糟糕,实际上没有任何意义,也不应该担心。

在许多情况下,脚本语言都是编程语言。看起来确实如此


“脚本”似乎适用于这种情况,因为它用于自动化GUI交互,这是该术语的一个常见用法。

脚本语言是一种不进行编译,而是实时解释的语言


所有的脚本语言都是编程语言,但并非所有的编程语言都是脚本语言。

我对AutoIt一无所知,但为了回答您关于编程语言与脚本语言的问题,Larry Wall将其很好地放在了他的一个洋葱状的演讲中:

假设你回到Ada Lovelace 并问她 脚本和程序。她可能会 看着你笑,然后说点什么 比如:剧本就是你给的 演员,但节目是你想要的 给观众看。艾达就是其中之一 精明的女士


如果您对阅读更多内容感兴趣,

脚本语言是使用简单语法(类似于人类语言语法)的编程语言

编程语言的语法通常类似于机器代码

因此,由于“AutoIt”是一种语法简单的编程语言,因此它被认为是一种脚本语言

“AutoIt”的问题是它是一种100%解释语言,因此,它也是一种慢语言

为什么?

因为“AutoIt”不会为了“cpu”理解而将其脚本文件转换为“机器”代码,因此,“cpu”将不断需要一个“AutoIt”解释器来翻译脚本,这使得所有过程都变慢了

loop, 1.000.000
var = var + a_index
“AutoIt”解释器必须将“var=var+a_索引”转换为“cpu”100万次!(翻译过程真的很慢!)


另一方面,在编译语言中,所有脚本都转换为机器代码,因此,“cpu”不需要“解释器”来执行代码,因此不需要翻译!(上面的循环在编译语言中可能比在解释语言中快一百万倍!)

脚本语言和编程语言之间的区别主要归结于它们的设计目的。有很多交叉,根本没有明确的区别。重复:,所有的脚本语言都是编程语言,但不是所有的编程语言都是脚本语言。所以LISP是一种脚本语言?我对LISP不是很精通,但快速搜索让我相信在某些实现中它是一种脚本语言,我也感觉到脚本语言的这个定义不一定是标准的。虽然我记得在我以前的CS课程中,有很多关于脚本语言和编译语言的测试问题都是遵循这个定义的。对不起,看起来我们的讨论有点矛盾。我想说脚本语言和解释语言是两种类型的计算机语言,它们的维恩图有很大的重叠,但它们不是同义词。我引用LISP作为一种语言的例子,这种语言通常被解释,但通常不被认为是脚本语言。AutoIt可以独立使用。您可以将脚本编译成独立的.EXE,这些EXE不需要在主机pc上安装框架。AutoIt可用于编写GUI界面、应用程序安装程序、看门狗应用程序、web服务器。。。它远远超出了作为GUI自动化工具的最初设计规范。我不是指没有框架的独立工作,而是指不需要工作环境(如Windows GUI元素)的独立工作。但是,如果你说它可以用来编写一个web服务器,那么显然它不需要GUI元素来处理,这样就可以满足我对standalone的定义!