助记符 如Load A 14 比 0 1 容易理解的多。
机器无法读取,需要汇编器把助记符转成机器码。
时间推移 汇编器越来越多功能,让编程更容易
自动分析JUMP地址:
两个跳转位置
image.png
如果加了指令,地址都会变,更新程序很痛苦 怎么办?
image.png
多以汇编不用固定跳转地址,而是插入可跳转的标签。
当程序别传入汇编器,汇编器自己搞定跳转地址。
程序员可以专心编程,不用管底层细节。
隐藏不必要的细节,做更复杂的工作。
------又提升了一层抽象
但是汇编只是修饰了一下机器码
一般说,一条汇编 指令,对应一条机器指令。
所以会变吗和底层硬件的连接很紧密。
汇编器依然强迫程序员思考,用什么寄存器 和内存地址。
如果你想要一个额外的数,可能要改很多代码
高级语言
汇编和指令一一对应,但高级语言可能会转成几十条二进制指令。
为了做这种复杂的转换,1952年 创造了第一个编译器。
编译器:把高级语言转成低级语言。汇编或机器码
程序员只需要创建 代表内存地址的抽象,叫 “变量”
我做的大部分工作就是因为懒,我不喜欢写程序,所以我写着门语言 让编程更容易。
编译器转换的代码是否比得上手写的代码,运行速度慢一点,编程疏导大大加快。
早期写完程序,还能再一台电脑运行,如果电脑升级要重写所有代码。
所以建立了 数据系统语言委员会,开发一种语言 在不同机器上通用。
于是诞生了 一门高级 易于使用的,普通面向商业语言 cobol
为了兼容不同底层硬件,每个计算架构 需要一个COBOL 编译器。
重要的是这些编译器都可以 接受相同的cobol 代码
这叫 “一次编译 到处运行”
计算机科学从深奥的学科,变成了大众化工具。
编程的抽象 叫程序员,制作更复杂的程序。
1960 年 有 ALGOL LISP BASIC 等语言。
70年代有 PASCAL C 和smalltalk
80 有 c++ objective perl
90 yo Python ruby Java
新千年 swift C# go 在崛起
网友评论