什么是脚本语言?什么是解释性语言?什么是编译性语言?

来源:互联网 发布:网络信号中断警报下载 编辑:程序博客网 时间:2024/04/29 08:50
首先脚本语言,之前虽然一直嘴上说脚本语言但是对他并没有一个很清楚的概念。然后在网上查了一下也问了一下师傅刘哥,脚本语言开始就是用来“批量式”的执行命令。你在一个文件里把命令都写进去,然后执行这个文件。可是不久人们就发现,这些命令行其实可以用更加聪明的方法构造,比如定义一些变量,或者根据系统类型的不同执行不同的命令。于是,人们为这脚本语言加入了变量,条件语句,数组,等等构造。“脚本语言”就这样产生了。也就是说脚本语言有很多种,本来设计他的目的是为了以一种规范的方式解决某种问题,而后逐渐壮大发展成为一门语言。现在脚本语言有很多 ruby pyson lisp 还有php也是脚本语言等等。脚本程序相对一般程序开发来说比较接近自然语言,可以不经编译而是解释执行,利于快速开发或一些轻量的控制。

  说到编译和解释,软件语言有好多分类。编译型语言和解释型语言也是其中一个分类。

  编译型语言:编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成机器语言文件;比如,exe文件,以后运行的话就不用重新编译了,直接使用 编译的结果就行了;因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高!(专门编译,然后执行直接用)(效率高)

  解释型语言:解释型语言的程序不需要编译,省了道工序,解释型语言在运行程序的时候才翻译,比如解释型basic语言,专门有一个解释器能够直接执行 basic程序,每个语句都是执行的时候才翻译;这样解释型语言每执行一次就要翻译一次,效率比较低;(运行程序时才翻译,每执行一次,就要翻译一次) (效率低)。但是解释型语言跨平台性比较好,因为他依赖解释器,只要装解释器程序配好环境程序就好用。当然跨平台性和编译解释并没有直接的联系。比如java是通过JVM来实现跨平台,所有的java程序不需要再编译就可跨平台运行;C程序也可以跨平台,但是需要各种平台的开发包和编译器来支持;PHP、Python、Perl等脚本语言不需要各平台的编译器,但是需要先安装在各个平台上的运行环境以及相应的package才能保证程序的跨平台特性等等。

  java并不是严格的编译型语言或是解释型语言,我倒是更愿意说他是编译解释型语言。java语言既要编译,又要解释;编译只有一次,程序执行时解释执行;通过编译器,把java程序翻译成一种中间代码——字节码(不是机器码),然后通过JVM解释成相应平台的语言;所以java的跨平台性我感觉相对于c或c++的“源码级”跨平台。(本来就是存在针对linux、windows的不同的编译器。)是更加可行的,因为很难去把握。如果你的程序只使用C标准的输入输出,那么源代码也是跨平台的,只要用对应平台的编译器编译就可以运行,如果你使用 了平台专有的API,那么就不能跨平台,比如WINDOWS窗口程序,就调用了WINDOWS的创建窗口,显示窗口等API(这些调用并不一定在你自己的 代码中),linux是没有这些API的,所以就无法编译运行。

  当然了我并没有说哪种语言更加好或是哪种语言差。对于我们使用者来说语言只是工具,我们更有必要做的只是了解这些语言然后看我们具体的需求,包括我们本身掌握的技能或是我们团队对所选用的语言的掌握程度。然后在一个具体的业务需求下我们才可以说哪种语言更加合适。

1 0