助記符 如Load A 14 比 0 1 容易理解的多撵渡。
機器無法讀取,需要匯編器把助記符轉(zhuǎn)成機器碼死嗦。
時間推移 匯編器越來越多功能趋距,讓編程更容易
自動分析JUMP地址:
兩個跳轉(zhuǎn)位置
如果加了指令,地址都會變越除,更新程序很痛苦 怎么辦节腐?
多以匯編不用固定跳轉(zhuǎn)地址,而是插入可跳轉(zhuǎn)的標簽摘盆。
當程序別傳入?yún)R編器翼雀,匯編器自己搞定跳轉(zhuǎn)地址。
程序員可以專心編程孩擂,不用管底層細節(jié)狼渊。
隱藏不必要的細節(jié),做更復雜的工作类垦。
------又提升了一層抽象
但是匯編只是修飾了一下機器碼
一般說狈邑,一條匯編 指令,對應一條機器指令蚤认。
所以會變嗎和底層硬件的連接很緊密米苹。
匯編器依然強迫程序員思考,用什么寄存器 和內(nèi)存地址砰琢。
如果你想要一個額外的數(shù)蘸嘶,可能要改很多代碼
高級語言
匯編和指令一一對應良瞧,但高級語言可能會轉(zhuǎn)成幾十條二進制指令。
為了做這種復雜的轉(zhuǎn)換亏较,1952年 創(chuàng)造了第一個編譯器莺褒。
編譯器:把高級語言轉(zhuǎn)成低級語言。匯編或機器碼
程序員只需要創(chuàng)建 代表內(nèi)存地址的抽象雪情,叫 “變量”
我做的大部分工作就是因為懶遵岩,我不喜歡寫程序,所以我寫著門語言 讓編程更容易巡通。
編譯器轉(zhuǎn)換的代碼是否比得上手寫的代碼尘执,運行速度慢一點,編程疏導大大加快宴凉。
早期寫完程序誊锭,還能再一臺電腦運行,如果電腦升級要重寫所有代碼弥锄。
所以建立了 數(shù)據(jù)系統(tǒng)語言委員會丧靡,開發(fā)一種語言 在不同機器上通用。
于是誕生了 一門高級 易于使用的籽暇,普通面向商業(yè)語言 cobol
為了兼容不同底層硬件温治,每個計算架構 需要一個COBOL 編譯器。
重要的是這些編譯器都可以 接受相同的cobol 代碼
這叫 “一次編譯 到處運行”
計算機科學從深奧的學科戒悠,變成了大眾化工具熬荆。
編程的抽象 叫程序員,制作更復雜的程序绸狐。
1960 年 有 ALGOL LISP BASIC 等語言卤恳。
70年代有 PASCAL C 和smalltalk
80 有 c++ objective perl
90 yo Python ruby Java
新千年 swift C# go 在崛起