脚本还是编程语言? [复制]
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
【讨论】:
以上是关于脚本还是编程语言? [复制]的主要内容,如果未能解决你的问题,请参考以下文章