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

2021-09-20 06:08:10 字數 514 閱讀 9086

自然,我們還是先從 tao 語言的編譯器下手吧。在動手寫編譯器之前,得容我將編譯器的結構進行進一步的劃分。編譯器可視為乙個黑盒,從其一端輸入源**,另一端產出目標**。此過程進一步拆分便有了如下形式。

首先是 tokenizer (詞法分析器),它讀入乙個乙個字元,並將其合併成乙個乙個token(單詞)。這些 token 將被 parser(語法分析器)接收並進行進一步處理。parser 處理結果稱之為 syntax tree (語法樹),此時產物不再是線性結構,而轉為變成樹形結構了。

一旦得到了 syntax tree 即可進行語義分析,之後便可生成**,至此,整個編譯的流程就此走完。可以見如下圖。

由於本系列將著重於「寫」出編譯器,必要的理論和概念還是會交代的。不過會有所側重,若非與我要寫的**緊密相關,概念和理論也不會做過多著墨。

從零開始寫個編譯器吧 - 編譯器的結構 - moskize 的部落格

從零開始寫個編譯器吧 開始寫詞法分析器(1)

上一章提到我要手寫詞法分析器這個狀態機,嗯,那就讓我們開始吧。public class lexicalanalysis public lexicalanalysis reader reader token read throws ioexception,lexicalanalysi ception ...

編譯方舟編譯器

環境 mac os parallels desktop 安裝ubuntu 16.04 安裝基礎包 sudo apt get y install openjdk 8 jdk git core gnupg flex bison gperf build essential zip curl zlib1g ...

方舟編譯器編譯

目錄環境變數 安裝 ninja 和 gn 編譯成功 總結2019.9.1 編譯華為方舟編譯器原始碼 這篇文章僅僅是關於如何搭建環境並進行編譯。本機環境 ubuntu 16 server.一定要好好看參考文件!建議使用root賬戶操作 先 clone 原始碼華為開源平台 對應的參考文件openarkc...