【计算机基础之编程语言】编程语言的发展
自从第一台电子计算机问世,人类和机器的交流方式就成为了软件工程师和计算机从业者的主要研究方向,更有效更简便的编程语言成为了软件工程师的新宠儿,伴随着计算机的飞速发展,计算机的硬件升级速度也越来越快,对编程语言的要求也日益严格。在过去的几十年,编程语言有了长足的发展,至今已经有四代语言问世。大量的编程语言为了满足不同领域的编程要求和软件功能,经历 了被修改,被取代,被发展等过程,最终发展成了现在编程语言的多样化。
第一代 机器语言 面向机器
概念
是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。
特点
(1)一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如,操作码字段和地址码字段,其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。
(2)面向机器:机器语言对不同型号的计算机来说一般是不同的,所以可移植性差,重用性差。每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言。
例如某台计算机字长为16位,即有16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作。
如某种计算机的指令为1011011000000000,它表示让计算机进行一次加法操作;而指令1011010100000000则表示进行一次减法操作。它们的前八位表示操作码,而后八位表示地址码。从上面两条指令可以看出,它们只是在操作码中从左边第0位算起的第6和第7位不同。这种机型可包含256(=2的8次方)个不同的指令。
(3)CPU、寄存器、内存、集成硬件都有对应的指令集,比如针对CPU的指令系统叫做CPU机器语言,用机器语言编程序,就是从实用的cpu的指令系统中挑选合适的指令,组成一个指令系列;;
举例:
A、指令部份的范例
0000代表加载(LOAD)
0001代表储存(SET)
B、暂存器部份的范例
0000代表暂存器A
0001代表暂存器B
C、内存部份的范例
000000000000代表位址为0的内存
000000000001代表位址为1的内存
000000001000代表位址为16的内存
100000000000代表位址为2^11的内存
D、集成范例
0000,0000,000000001000代表LOADA,16
0000,0000,000000000001代表LOADB,1
0000,0001,000000001000代表STOREA,16
0000,0001,000000000001代表STOREB,1
(4)可阅读性较差
第二代 汇编语言 面向机器
概念
是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号代替操作数的地址,亦称为符号语言。
特点
(1)面向机器:在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
(2)执行效率高,它通常被应用在底层,硬件操作和高要求的程序优化的场合,比如驱动程序、嵌入式操作系统和实时运行程序;
(3)可阅读性和简便性比机器语言好,比如:用“ADD”代表数字逻辑上的加减,“ MOV”代表数据传递
(4)机器不能识别,需要汇编语言编译器把这些字符变成计算机能够识别的二进制数;编译器的选择依赖于目标处理器的类型和具体的系统平台
举例:大多数汇编语言都是基于8086/8088,不同芯片都有一些扩展指令。
第三代 高级语言,面向过程
概念
面向过程的语言也称为结构化程序设计语言。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数则用于完成这些任务,解决问题的焦点集中于函数。
(1)面向处理任务的过程,与硬件结构无关,但是将面向过程语言程序转换成机器语言程序的编译器是与计算机硬件有关的
(2)语句接近自然表达式
举例:C语言
第四代 面向对象语言
面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。
比如C++、Java、Python
第五代语言 自然语言
概念
又被称为知识库语言或人工智能语言,目标是最接近日常生活所用语言的程序语言,它主要使用在人工智能领域,帮助人们编写推理、演绎程序。
对于人工智能技术要解决的问题,往往无法把全部知识都体现在固定的程序中。通常需要建立一个知识库(包含事实和推理规则),程序根据环境和所给的输入信息以及所要解决的问题来决定自己的行动,所以它是在环境模式的制导下的推理过程。这种方法有极大的灵活性、对话能力、有自我解释能力和学习能力。真正意义上的第五代语言尚未出现