1. 程式人生 > >[原始碼和報告分享]Linux環境下的針對PL0語言的語法詞法語義分析

[原始碼和報告分享]Linux環境下的針對PL0語言的語法詞法語義分析

摘 要

此次編譯原理課程設計,我利用flex工具進行PL/0語言的詞法分析、自己用C++語言實現了LR語法分析、語義分析以及中間程式碼生成,我選擇的是布林表示式文法,對符合文法的布林表示式能夠產生相應四元式,處理了控制結構的真鏈與假鏈,對錯誤的表示式能夠給出錯誤提示。

鑑於flex工具原本來自Unix以及個人日常習慣,本實驗開發環境選用Linux,程式碼在Ubuntu16.10中測試通過。

關鍵字flex;詞法分析;Linux;語法分析;中間程式碼生成;真假鏈

引 言

編譯原理是一門實踐性比較強的學科,學習了課本上理論知識,閱讀了書後示例PL/0編譯程式,此次課程設計針對PL/0語言進行了詞法分析、語法分析及布林表示式的中間程式碼(四元式)生成。其中PL/0的詞法分析程式的功能是為語法語義分析提供單詞,把輸入的字串形式的源程式分割成一個個單詞符號傳遞給語法語義分析;而語法分析的任務是識別單詞符號序列是否符合給定的語法規則。實驗中在語法分析過程中需要用到flex工具,這個工具源於Unix和Linux,很多同學使用Windows還需要配置相關環境,我日常使用Linux,因此選用它作為程式設計環境,免去了不必要的麻煩,配置較為方便。

 

 

 

 

詳細的開發文件和程式原始碼我都分享在了個人部落格上了,感興趣的可以去看看:

https://write-bug.com/article/1390.html