小型pascal编译器C语言代码,Pascal简单编译器
0
172
2018-08-21 22:49
本文設(shè)計了一個簡單的編譯器,包括編譯器較完整的前端和后端的設(shè)計,可以對 Pascal 文法的源程序進(jìn)行詞法分析、語法分析、語義分析、并生成四元式中間代碼,最后能生成目標(biāo)代碼。 文法包括變量和常量的聲明,多維數(shù)組、結(jié)構(gòu)體的聲明和調(diào)用,過程函數(shù)和子函數(shù)的聲明和調(diào)用,算術(shù)運(yùn)算,邏輯運(yùn)算,賦值語句,條件選擇語句,循環(huán)語句。 在詞法分析中,掃描器依次掃描寫有源程序的文本文檔中的字符,按給出的有限狀態(tài)自動機(jī)轉(zhuǎn)換關(guān)系拼成單詞,生成 Token 序列,支持添加注釋信息,以及 Pascal 語言代碼中錯誤的位置信息。 本文用遞歸下降子程序的方法進(jìn)行語法分析,同時進(jìn)行語義分析。語義動作包括查填符號表系統(tǒng),并借助符號表系統(tǒng)進(jìn)行定義和重定義檢查,類型匹配校驗,數(shù)據(jù)的越界和溢出檢查,值單元存儲分配信息,子函數(shù)和過程函數(shù)的參數(shù)傳遞與校驗,并生成四元式中間代碼。 在編譯器后端中,基于 DAG 有向無環(huán)圖對基本塊內(nèi)的四元式序列做了優(yōu)化。 最后,生成了在單寄存器下經(jīng)過寄存器分配優(yōu)化的目標(biāo)代碼。
如無法正常下載,請通過“查看聯(lián)系方式”或者APP掃碼,直接聯(lián)系作者開放下載權(quán)限
0
贊
總結(jié)
以上是生活随笔為你收集整理的小型pascal编译器C语言代码,Pascal简单编译器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Python3开发的一款Androi
- 下一篇: 机器学习中的敏感性和特异性的概念