《程序是怎樣跑起來的》一書從計(jì)算機(jī)的內(nèi)部結(jié)構(gòu)開始講起,以圖配文的形式詳細(xì)講解了二進(jìn)制、內(nèi)存、數(shù)據(jù)壓縮、源文件和可執(zhí)行文件、操作系統(tǒng)和應(yīng)用程序的關(guān)系、匯編語言、硬件控制方法等內(nèi)容,目的是讓讀者了解從用戶雙擊程序圖標(biāo)到程序開始運(yùn)行之間到底發(fā)生了什么。
程序是怎樣跑起來的電子書預(yù)覽
程序相關(guān)知識(shí)
我們知道,Go 程序文件在機(jī)器看來不過是一堆二進(jìn)制位。我們能讀懂,是因?yàn)?Goland 按照 ASCII 碼(實(shí)際上是 UTF-8)把這堆二進(jìn)制位進(jìn)行了編碼。例如,把 8個(gè) bit 位分成一組,對(duì)應(yīng)一個(gè)字符,通過對(duì)照 ASCII 碼表就可以查出來。
當(dāng)把所有的二進(jìn)制位都對(duì)應(yīng)成了 ASCII 碼字符后,我們就能看到有意義的字符串。它可能是關(guān)鍵字,例如:package;可能是字符串,例如:“Hello World”。
詞法分析其實(shí)干的就是這個(gè)。輸入是原始的 Go 程序文件,在詞法分析器看來,就是一堆二進(jìn)制位,根本不知道是什么東西,經(jīng)過它的分析后,變成有意義的記號(hào)。簡單來說,詞法分析是計(jì)算機(jī)科學(xué)中將字符序列轉(zhuǎn)換為標(biāo)記(token)序列的過程。
我們來看一下維基百科上給出的定義:
詞法分析(lexical analysis)是計(jì)算機(jī)科學(xué)中將字符序列轉(zhuǎn)換為標(biāo)記(token)序列的過程。進(jìn)行詞法分析的程序或者函數(shù)叫作詞法分析器(lexical analyzer,簡稱lexer),也叫掃描器(scanner)。詞法分析器一般以函數(shù)的形式存在,供語法分析器調(diào)用。
.go 文件被輸入到掃描器(Scanner),它使用一種類似于 有限狀態(tài)機(jī)的算法,將源代碼的字符系列分割成一系列的記號(hào)(Token)。
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版