可能重复:
什么时候语言被认为是脚本语言?
编程语言和脚本语言有什么区别?我在 C/C++ 上工作了一段时间,现在我开始研究 Python,有人告诉我它是一个很好的脚本语言这篇文章。
但随着我的学习,我发现到目前为止可以用 C 完成的所有事情都可以用 Python 完成!那么脚本和编程语言之间的真正区别是什么?
可能重复:
什么时候语言被认为是脚本语言?
编程语言和脚本语言有什么区别?我在 C/C++ 上工作了一段时间,现在我开始研究 Python,有人告诉我它是一个很好的脚本语言这篇文章。
但随着我的学习,我发现到目前为止可以用 C 完成的所有事情都可以用 Python 完成!那么脚本和编程语言之间的真正区别是什么?
我实际上认为这个问题有点误导。当然,脚本语言也是一种编程语言。但也有区别:
在编译语言和解释语言之间。
传统上,像 c 这样的语言被编译成 cpu 可以直接理解的机器代码。另一方面,“脚本语言”通常不会在执行之前被编译成机器代码,而是使用解释器进行解释。解释型语言的优点通常是它具有更快的开发周期,因为不需要编译并且更容易从一个平台迁移到另一个平台。例如,python 脚本可以在 windows、linux、mac 上执行而无需更改。另一方面,编译语言的优点是它的执行速度通常要快得多。
我经常使用“通常”和“传统”,因为现在有一些技术使得划清界限变得更加困难。例如,可以将 python 代码直接编译为本机代码,并且还有 c 代码的解释器。此外,“Just In Time”编译器和虚拟机也使得在这里绘制黑白变得更加困难。
更多:http ://en.wikipedia.org/wiki/Interpreted_language
鸭类型和强类型语言
通常脚本语言是鸭子类型的,这意味着可以为变量分配任何类型,并且没有或只有可选的类型检查。另一方面,在 C 和 C++ 等编译语言中,每个变量都是类型化的,它可以并且只会保存该类型的值。鸭子类型语言的优点通常是它需要更少的物理类型和更少的代码(例如类型名称可以留在函数声明等......)并且更容易编写可重用函数。强类型语言的优势通常是它“帮助”程序员在运行应用程序之前发现错误。例如,编译器会抱怨类型错误,而无需运行发生错误的具体行。尤其是在有许多贡献者的大型项目中,这可以成为一个惊人的优势。