- 編譯系統透視:圖解編譯原理
- 新設計團隊
- 463字
- 2019-01-04 03:30:32
2.1 詞法分析概要說明
從第1章我們了解到,編譯時要經過詞法分析識別出符號、語法分析生成語法樹、語法樹生成中間代碼、中間代碼生成目標代碼這樣幾個階段,最終目標代碼產生運行時結構。如圖2-1所示。

圖2-1 全書講解內容的總體結構圖
本章仍以第1章講解運行時結構時提供的源程序為例,講解編譯的第一階段——詞法分析。詞法分析在全書中的位置如圖2-2所示。

圖2-2 詞法分析在全書結構中的位置
案例程序的C語言表現形式如下所示:
int fun(int a,int b); int m=10; int main() { int i=4; int j=5; m=fun(i,j); return 0; } int fun(int a,int b) { int c=0; c=a+b; return c; }
這是我們看到的源程序的樣子,但它在計算機上存儲的形式與我們看到的形式不同,如果以十六進制的數字形式展現它們,C語言寫的案例程序看上去如圖2-3所示。

圖2-3 案例程序的十六進制數表現形式
在計算機中,這是一串連續的看起來毫無頭緒的數字。詞法分析的任務就是要把這一串連續的數字根據C語言的詞法規則切割成“int”、“a”、“=”、“10”、“;”——分立的標識符、數字、符號。
詞法分析的實現過程是將這一串連續的數字作為字符串逐個讀出字符,按照C語言的詞法規則把連續的字符切分成獨立的符號,并鑒別屬性。
推薦閱讀
- Visual C++程序設計學習筆記
- Raspberry Pi Networking Cookbook(Second Edition)
- 算法基礎:打開程序設計之門
- Java入門很輕松(微課超值版)
- Learning AWS Lumberyard Game Development
- aelf區塊鏈應用架構指南
- Banana Pi Cookbook
- 人人都是網站分析師:從分析師的視角理解網站和解讀數據
- 差分進化算法及其高維多目標優化應用
- Building RESTful Python Web Services
- Android應用案例開發大全(第二版)
- LabVIEW虛擬儀器程序設計從入門到精通(第二版)
- MATLAB GUI純代碼編寫從入門到實戰
- Emotional Intelligence for IT Professionals
- Java 從入門到項目實踐(超值版)