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

來源:互聯網
上載者:User

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

      首先聲明,該系列博文是我學習編譯原理的過程中的記錄,其中主要參考的書籍是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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.