任何編程語言編寫的程序歸根到底都是由底層的機器代碼(01序列)執(zhí)行的滥搭,無論是編譯型語言還是解釋型語言哮洽。而任何高級編程語言程序的源代碼都是一個個字符序列吃度,這個字符序列到底層的01序列是通過編譯器或解釋器經(jīng)過多次轉(zhuǎn)換完成的。
1.機器代碼是機器最終實際執(zhí)行的01序列滑黔。
2.匯編語言是描述本地機器的指令集體系結(jié)構(gòu)僻他,匯編語言編譯成機器語言宵距。
3.高級語言包含相對應(yīng)的數(shù)據(jù)結(jié)構(gòu)和語法結(jié)構(gòu),更接近人類的語言習慣吨拗。高級語言經(jīng)過編譯或解釋轉(zhuǎn)化為機器代碼满哪。
計算機編程語言實現(xiàn)結(jié)構(gòu)
1.編譯型語言被編譯成機器代碼,比如C劝篷、C++哨鸭。
2.解釋型語言是通過解釋器執(zhí)行,比如javascript娇妓、shell兔跌、python等。
3.虛擬機語言運行在虛擬機上峡蟋,需要被編譯成虛擬機代碼,由虛擬機知行华望,比如java蕊蝗。雖然python也有自己的虛擬機,但不需要編譯赖舟,所以把它歸類為解釋型語言蓬戚。
從機器語言->匯編語言->系統(tǒng)語言(C和C++)->解釋性語言(python)和虛擬機(java),抽象層次越高宾抓,越貼近于人的思維子漩,不需要考慮那么多細節(jié),同時石洗,程序員的自由度和程序的運行速度越來越低幢泼。 從低到高:
1.在底層,匯編語言會經(jīng)過匯編器轉(zhuǎn)換為機器代碼讲衫。
2.在C和C++系統(tǒng)編程語言這一層缕棵,會通過編譯器完成語言元素到匯編語言的映射。
3.解釋型語言(python)通過解釋器實現(xiàn)向底層語言的映射涉兽。python虛擬機是由C語言編寫的招驴,所以python程序會轉(zhuǎn)化為C程序而而執(zhí)行。虛擬機語言(java)會被編譯成虛擬機本地的機器代碼枷畏,然后再虛擬機上執(zhí)行别厘。而虛擬機是模擬一個指令集的程序,所以它自身有一套獨立于具體硬件拥诡、操作系統(tǒng)的指令集触趴。需要通過底層語言實現(xiàn)這套指令集氮发。