编程语言简介
什么是语言?
语言就是人与人之间沟通的介质,如英语,汉语,俄语等。
什么是编程语言?
编程语言则是人和计算机之间沟通对的介质.
编程的目的:
人和计算机之间沟通的目的是为了奴役计算机,让计算机可以按照人类的思维逻辑(程序)去自发地去工作,从而把人力解放出来
编程语言的分类
机器语言
1:机器语言是站在计算机(奴隶)的角度,说计算机能听懂/理解的语言,而计算机能直接理解的就是二进制指令,所以机器语言就是直接用二进制编程,这意味着机器语言是直接操作硬件的,因此机器语言属于低级语言,此处的低级指的是底层、贴近计算机硬件(贴近代指需要详细了解计算机硬件细节、直接控制硬件)
2:用二进制代码0和1描述的指令称为机器指令,由于计算机内部是基于二进制指令工作的,所以机器语言是直接控制计算机硬件。
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码以及代码的含义,然后在编写程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,不便阅读和书写,还容易出错,且依赖于具体的计算机硬件型号,局限性很大。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
总结
1:执行效率最高
编写程序可以被计算机无障碍理解,直接运行,执行效率高
2:开发效率最低
复杂,开发效率低
3:跨平台性差
贴近\依赖具体的硬件,跨平台性差
汇编语言
1:汇编语言仅仅是用一个英文标签代表一组二进制指令,毫无疑问,比起机器语言,汇编语言是一种进步,但汇编语言的本质仍然是直接操作硬件,因此汇编语言仍是比较低级/底层的语言、贴近计算机硬件
2:汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
总结
1:执行效率高
相对于机器语言,使用英文标签编写程序相对简单,执行效率高,但相较于机器语言稍低
2:开发效率低
仍然是直接操作硬件,比起机器语言来说,复杂度稍低,但依旧居高不下,所以开发效率依旧较低
3:跨平台性差
同样依赖具体的硬件,跨平台性差
高级语言
1:高级语言是站在人(奴隶主)的角度,说人话,即用人类的字符去编写程序,而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言是与操作系统打交道的,此处的高级指的是高层、开发者无需考虑硬件细节,因而开发效率可以得到极大的提升,但正因为高级语言离硬件较远,更贴近人类语言,人类可以理解,而计算机则需要通过翻译才能理解,所以执行效率会低于低级语言。
2:按照翻译的方式的不同,高级语言又分为两种:
1:编译型语言
2:解释型语言
编译型语言
1:类似谷歌翻译,是把程序所有代码编译成计算机能识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件.
2:编译型语言特点
1、执行效率高
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(即机器语言),
因此其目标程序可以脱离其语言环境独立执行,使用比较方便,执行效率较高。
2、开发效率低:
应用程序一旦需要修改,必须先修改源代码,然后重新编译、生成新的目标文件才能执行,
而在只有目标文件而没有源代码,修改会很不方便。所以开发效率低于解释型
3、跨平台性差
编译型代码是针对某一个平台翻译的,当前平台翻译的结果无法拿到不同的平台使用,针对不同的平台必须重新编译,即跨平台性差
4:其他
现在大多数的编程语言都是编译型的。
编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序直接在计算机上多次运行。
大多数软件产品都是以目标程序形式发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的技术。
C、C++、Ada、Pascal都是编译实现的
解释型语言
1:类似同声翻译,需要有一个解释器,解释器会读取程序代码,一边翻译一边执行
2:解释型语言的特点:
1、执行效率低
解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码。
这种中间代码与机器代码是不同的,中间代码的解释是由软件支持的,不能直接使用硬件,
软件解释器通常会导致执行效率较低。
2、开发效率高
用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的,与编译程序不同的是,
解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码再执行。
解释程序的优点是当语句出现语法错误时,可以立即引起程序员的注意,而程序员在程序开发期间就能进行校正。
3、跨平台性强
代码运行是依赖于解释器,不同平台有对应版本的解释器,所以解释型的跨平台性强
4:其他
对于解释型Basic语言,需要一个专门的解释器解释执行Basic程序,每条语句只有在执行时才被翻译,
这种解释型语言每执行一次就翻译一次,因而效率低下。一般地,动态语言都是解释型的,
例如:Tcl、Perl、Ruby、VBScript、JavaScript等
混合型语言
Java是一类特殊的编程语言,Java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,
然后在Java虚拟机上以解释方式执行字节码。
总结
1:执行效率:机器语言>汇编语言>高级语言(编译型>解释型)
2:开发效率:机器语言<汇编语言<高级语言(编译型<解释型)
3:跨平台性:解释型具有极强的跨平台性