從零開始寫個編譯器吧 - 編譯器的結構

天然,咱們仍是先從 tao 語言的編譯器下手吧。在動手寫編譯器以前,得容我將編譯器的結構進行進一步的劃分。編譯器可視爲一個黑盒,從其一端輸入源代碼,另外一端產出目標代碼。此過程進一步拆分便有了以下形式。html

首先是 Tokenizer (詞法分析器),它讀入一個一個字符,並將其合併成一個一個Token(單詞)。這些 Token 將被 Parser(語法分析器)接收並進行進一步處理。Parser 處理結果稱之爲 Syntax Tree (語法樹),此時產物再也不是線性結構,而轉爲變成樹形結構了。spa

一旦獲得了 Syntax Tree 便可進行語義分析,以後即可生成代碼,至此,整個編譯的流程就此走完。能夠見以下圖。3d

579f05903d962b00b71c460d946d85e6_b.jpg

因爲本系列將着重於「寫」出編譯器,必要的理論和概念仍是會交代的。不過會有所側重,若非與我要寫的代碼緊密相關,概念和理論也不會作過多着墨。htm

從零開始寫個編譯器吧 - 編譯器的結構 - moskize 的博客get

相關文章
相關標籤/搜索