簡單的C語言編譯器--概述


  在學習了編譯原理的相關知識后,逐漸的掌握一個編譯器的結構、作用和實現方法。同時,希望自己在不斷的努力下寫出一個簡單的C語言編譯器。

實現步驟

  1. 詞法分析器:將C語言測試代碼分解成一個一個的詞法單元;
  2. 語法分析器:利用LR(1)文法分析算法對詞法單元進行歸約;
  3. 語義制導翻譯:即語義分析,集成在語法分析器中,在每次歸約后執行相應的語義動作,產生三地址碼;
  4. 代碼優化:對三地碼進行優化,提高效率;
  5. 匯編代碼生成:分配寄存器、由三地址碼轉化為匯編代碼,再由匯編器編譯成可執行代碼

由於時間關系和實現難度較大的原因,我只是做到編譯器的前端部分,即實現了1-3部,剩下了只好以后努力了。

主要功能

  • 支持一元運算符(++,--,!,-),其中++和--有前綴和后綴兩種功能
  • 支持邏輯運算符:||和&&
  • 支持算術運算符:+,-,*,/,%
  • 支持關系運算符:>,>=,<,<=,==,!=
  • 控制流:for循環,while循環
  • 支持判斷語句if
  • 賦值操作及一維數組的部分操作
  • 只有boolint類型,其中的int為無符號整數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM