通過前面的例子,我們知道,Go 程序文件在機器看來不過是一堆二進位位。我們能讀懂,是因為 Goland 按照 ASCII 碼(實際上是 UTF-8)把這堆二進位位進行了編碼。例如,把 8個 bit 位分成一組,對應一個字元,通過對照 ASCII 碼錶就可以查出來。
當把所有的二進位位都對應成了 ASCII 碼字元後,我們就能看到有意義的字元串。它可能是關鍵字,例如:package;可能是字元串,例如:「Hello World」。
詞法分析其實幹的就是這個。輸入是原始的 Go 程序文件,在詞法分析器看來,就是一堆二進位位,根本不知道是什麼東西,經過它的分析後,變成有意義的記號。簡單來說,詞法分析是計算機科學中將字元序列轉換為標記(token)序列的過程。