好吧。在學習完編譯原理之後終於自己做了乙個編譯器的前端。
當然只是乙個很簡單的前端。
前端分為詞法分析,語法分析和語義分析。
語法的結構如下:
<
程式》::= main()<
語句塊》
<
語句塊》::= 『』
<
語句串》::=<
語句》;
<
語句》::=<
賦值語句
>|<
條件語句
>|<
迴圈語句
>
<
賦值語句
>::=id=<
表示式》
<
條件語句
>::=if<
條件》<
語句塊》[else<
語句塊》]
<
迴圈語句
>::=do<
語句塊》while<
條件》<
條件》::=<
表示式》<
關係運算子
><
表示式》
<
表示式》::= <
項》<
項》::= <
因子》<
因子》::=id|num|(<
表示式》)
num::=( +|-|ε )
數字數字
*(.數字數字
*| ε)( e ( +|-|ε )
數字數字
*|ε)
id::=字母(
字母|數字)*
字母::=a|b|c…|z|a|b|c…|z 數字
::=0|1|2…|9
<
關係運算子
>::= <|<=|>|>=|==|!=
當然這個語法結構還有很多不完善的地方,比如說宣告語句的實現,以及布林表示式的實現等等。
會在以後的時間逐步去完善,爭取在寫出乙個後端出來。
只是乙個簡單的語法結構來窺探如何開發乙個編譯器的前端。
QtCreator MSVC編譯器開發
qt在windows中的編譯,一般使用兩種編譯器,msvc和mingw mingw minimalist gnu for windows 是乙個gcc和gnu binutils的原生軟體埠,用於在windows上開發原生的microsoft windows應用程式。mingw和qt creator以...
編譯方舟編譯器
環境 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...