程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 編譯器開篇:總述,編譯器開篇總述

編譯器開篇:總述,編譯器開篇總述

編輯:JAVA綜合教程

編譯器開篇:總述,編譯器開篇總述


      首先聲明,該系列博文是我學習編譯原理的過程中的記錄,其中主要參考的書籍是Allen I Holub的Compiler design in C.

      首先對該書作者表示感謝,像龍書,虎書,鯨書這基本書太過高深,閱讀理解核心思想還可以,但離自己動手編寫實際的代碼還是有距離的,我覺得代碼這種東西還是自己寫出來才算是真正有意義的,於是動手改寫隨書代碼(原書是C版本,自己嘗試改為Java版本)並對編譯器整體結構進行了拆分,以求梳理出清晰的線路,以便自己真正理解並在以後可以回想起來,以上就是我學習的初衷。

      按原書籍的組織結構,也是分為詞法分析器生成器(LEX)、語法分析器生成器(YACC)來完成,先放一張最近梳理的詞法分析器的結構圖吧,後續還會繼續深入。

      圖是用思維導圖freeplane畫出來的,實在太大,分成幾塊來看吧。

      

 

圖一 詞法分析器整體圖

       

圖二  輸入緩沖區結構圖

             

圖三 詞法分析器生成器結構圖

             

圖四   不確定有限自動機結構圖

 

圖五確定有限自動機結構圖

圖六  分析器生成圖

 

圖七  模板文件圖

 附上目前項目的代碼:

編譯器生成程序Compiler:https://github.com/9527hello/Compiler

C的編譯器CCompiler:https://github.com/9527hello/CCompiler

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved