脚本还是编程语言? [复制]

Posted

技术标签:

【中文标题】脚本还是编程语言? [复制]【英文标题】:scripting or programming language? [duplicate] 【发布时间】:2011-11-28 00:32:56 【问题描述】:

可能重复:When is a language considered a scripting language?

编程语言和脚本语言有什么区别?我在 C/C++ 上工作了一段时间,现在我开始研究 Python,有人告诉我它是一种很好的脚本语言 this post。

但随着我的学习,我发现到目前为止可以用 C 完成的所有事情都可以用 Python 完成!那么脚本和编程语言之间真正的区别是什么?

【问题讨论】:

【参考方案1】:

我实际上认为这个问题有点误导。当然,脚本语言也是一种编程语言。但也有区别:

编译语言和解释语言之间。

传统上,像 c 这样的语言被编译成 cpu 可以直接理解的机器代码。另一方面,“脚本语言”通常不会在执行之前被编译成机器代码,而是使用解释器进行解释。 解释型语言的优势通常在于它具有更快的开发周期,因为不需要编译并且更容易从一个平台迁移到另一个平台。例如。 python脚本可以在windows、linux、mac上执行,无需更改。 另一方面,编译语言的优势在于它的执行速度通常要快得多。

我经常使用“通常”和“传统上”,因为现在有一些技术使划清界限变得更加困难。例如。可以将 python 代码直接编译为本机代码,并且还有 c 代码的解释器。此外,“Just In Time”编译器和虚拟机也使得在这里绘制黑白变得更加困难。

更多:http://en.wikipedia.org/wiki/Interpreted_language

鸭子类型和强类型语言

通常脚本语言是鸭子类型的,这意味着可以为变量分配任何类型,并且没有或只有可选的类型检查。另一方面,在 C 和 C++ 等编译语言中,每个变量都是类型化的,它可以并且只会保存该类型的值。 鸭类型语言的优点通常是它需要更少的物理类型和更少的代码(例如类型名称可以留在函数声明等......)并且更容易编写可重用的函数。 强类型语言的优势通常是它“帮助”程序员在运行应用程序之前发现错误。例如。编译器会抱怨类型错误,而无需运行发生错误的具体行。尤其是在有许多贡献者的大型项目中,这可以成为一个惊人的优势。

更多:http://en.wikipedia.org/wiki/Duck_typing

【讨论】:

以上是关于脚本还是编程语言? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

编程语言和脚本语言有啥区别? [复制]

PHP脚本语言还是编程语言? [关闭]

php是脚本语言还是服务器端语言?

脚本语言分几种

编程unity,如何隐藏ugui里面text的outline,求具体复制粘贴就能用的脚本。

是否可以从服务本身以编程方式重新启动 Windows 服务?还是我应该选择其他方法? [复制]