上文中我們介紹了PL/0的文法,接下來我們將介紹一個完整的編譯系統(tǒng)各個部分~
編譯系統(tǒng)介紹
一個經(jīng)典的編譯程序一般包括7個部分:詞法分析,語法分析,語義分析及代碼生成黍少,代碼優(yōu)化(可省略),代碼執(zhí)行处面,符號表管理仍侥,出錯管理。這7個部分之間的關(guān)聯(lián)關(guān)系如下圖所示:
在本項目中鸳君,整個編譯過程被分為了3個部分:
- 詞法分析將PL/0源代碼分為一個個token
- 語法分析和語義分析同時進(jìn)行农渊,生成Pcode(包括符號表管理和出錯管理)
- 對Pcode進(jìn)行解釋執(zhí)行,使其在java虛擬機(jī)上能夠運(yùn)行
編譯過程
整個編譯過程如下圖所示:
由上圖我們可以看到或颊,整個編譯程序分為四個小部分(詞法分析砸紊,出錯管理,符號表管理囱挑,Pcode生成)和一個綜合部分(語法分析)醉顽。
后面的博客將對這些部分一一介紹~