高級語言視角
算法語言
高級語言編程都是通過描述算法,在其中描述算法的邏輯結(jié)構(gòu)主要就是分支和循環(huán)。高級計(jì)算機(jī)語言編程過程中,我們發(fā)現(xiàn)許多相似的概念。比如:變量賦值語句,if-else邏輯控制結(jié)構(gòu),for循環(huán)結(jié)構(gòu),文件,Socket等。
編譯器
推斷,編譯器塑造變量賦值,if-esle邏輯控制,for循環(huán)結(jié)構(gòu)。推斷,操作系統(tǒng)塑造文件,Socket等。理解編程高級編程語言,本質(zhì)就是理解編譯原理和操作系統(tǒng)。
推斷,編譯器早于操作系統(tǒng),0和1的組合記憶是人類面臨的第一個(gè)難題。于是,最早的匯編器就是將助記符對應(yīng)于二進(jìn)制。思考,若類似鍵盤的字母輸入設(shè)備,那么匯編器然并卵。改善輸入設(shè)備,為人類可識(shí)別的英文字母,當(dāng)我們輸入相應(yīng)的匯編指令,都會(huì)經(jīng)過處理(人工或硬件或程序),然后,變化成二進(jìn)制輸入。早期輸入計(jì)算機(jī)的輸入設(shè)備都是識(shí)別二進(jìn)制,匯編語言寫出來的程序,需要人工對應(yīng)表進(jìn)行翻譯成對應(yīng)的二進(jìn)制。
操作系統(tǒng)
BIOS,通用計(jì)算機(jī)關(guān)鍵所在,提供了基本的輸入輸出,并且規(guī)范了CPU執(zhí)行的代碼開始位置。
操作系統(tǒng),接管BIOS的后續(xù)代碼執(zhí)行,一些簡單的系統(tǒng)調(diào)用有BIOS提供,抽象各種概念來達(dá)到對待計(jì)算機(jī)的統(tǒng)一視圖。主要分為兩個(gè)方面,統(tǒng)一各個(gè)設(shè)備提供的功能接口規(guī)范(同一功能設(shè)備,不同驅(qū)動(dòng)程序)和統(tǒng)一視圖于各個(gè)設(shè)備(文件系統(tǒng),針對各種存儲(chǔ)設(shè)備)。
本質(zhì)(面向操作系統(tǒng))
高級語言編程,語法結(jié)構(gòu)是面向編譯器的邏輯。編譯器提供了語法的邏輯視圖,也就是編譯器這個(gè)軟件提供的一些功能,屏蔽功能復(fù)雜性,暴露需要的通用性。
高級語言編程,抽象設(shè)備是操作系統(tǒng)將物理設(shè)備抽象出來的統(tǒng)一概念。例如文件系統(tǒng),Socket等,運(yùn)行的程序本身是操作系統(tǒng)的一個(gè)概念(進(jìn)程),也就是高級語言規(guī)范其實(shí)是捆綁于操作系統(tǒng)中,需要遵守操作系統(tǒng)的規(guī)范。進(jìn)程,運(yùn)行中的代碼,存于內(nèi)存,運(yùn)行于cpu,若需要交互IO設(shè)備,則需要進(jìn)行系統(tǒng)調(diào)用(OS提供)。
于是,高級語言編程本質(zhì)是存于內(nèi)存,執(zhí)行于CPU,交互外界于系統(tǒng)調(diào)用。
而且,編譯器實(shí)際上不僅僅是編譯器,而且還是統(tǒng)一提供操作系統(tǒng)的抽象概念的暴露者。