计算机发展史_[读书笔记]《计算机科学速成课》—11 编程语言发展史

计算机只能处理二进制,称为机器语言(Machine Language)机器码(Machine Code)。在计算机早期,必须用机器码写程序,一般会先对程序进行高层次的功能描述,称为伪代码(Pseudo-code),只是助于程序员理解,无法让计算机运行,然后根据指令表将伪代码转换成二进制机器码,然后将机器码送入计算机中并运行。

在1940-1950年,程序员开发出一种新语言,更可读、更高层次,每个操作码分配一个简单名字,称为助记符(Mnemonics),助记符后跟数据,形成完整的指令。所以与其写0和1的机器码,程序员可以直接写“LOAD_A 14”,这个语言称为汇编语言(Assembly Language)。当然计算机无法理解“LOAD_A 14”,所以程序员们写了一个程序来将文字指令自动转换成二进制指令,这个程序称为汇编器(Assembler)汇编器读取汇编语言写的程序,然后转换成机器码

随着发展,汇编器有越来越多的功能使得编程更加容易,其中一个功能就是自动分析JUMP地址。左图是之前的一个例子,JUMP后面跟的是内存中的真实地址,如果我们在上方对程序进行修改,则后面的所有地址都会改变。所以汇编器不用固定跳转地址,而是让你插入可跳转的标签,当程序传入汇编器,汇编器就会自己推算出跳转地址,这样就程序员就无序过分关注细节。

30769bd1f4136adbfcd58f9632d55afa.png
汇编代码例子

汇编只是修饰了一下机器码,一般来说,一条汇编指令对应一条机器指令,所以汇编码和底层硬件连接很密切,程序员仍需要思考使用什么寄存器和内存地址。为了释放电脑的潜力,霍普设计了一个高级编程语言,叫做Arithmetic Language Version 0,简称A0。一行高级编程语言,可能转换成几十条二进制指令。为此做到这种复杂转换,霍普在1952年创造了第一个编译器(Compiler)编译器专门把高级语言转换成低级语言(比如汇编或机器码)。由此,高级编程语言就不用管寄存器或内存位置,编译器会解决这些细节。

在1950年,大多数编程语言和编译器只能运行在一种计算机中,如果更换计算机,就要重写所有代码,因此1959年开发一种通用编程语言,可以在不同机器上通用,最后诞生了一门高级、易于使用的语言普通面向商业语言(Common Business-Oriented Language,COBOL)为了兼容不同底层硬件,每个计算机架构需要一个COBOL编译器,由此无论运行的计算机是什么,这些编译器可以接收相同的COBOL代码。如今大多数编程语言都是如此,不必接触CPU特有的汇编码和机器码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值