對編譯原理的見解

 

    編譯原理計算機專業的一門重要專業課,旨在介紹 編譯程序構造的通常原理和基本方法。內容包括語言和文法、詞法分析、 語法分析、語法制導翻譯、中間代碼生成、 存儲管理、代碼優化和 目標代碼生成。 編譯原理計算機專業設置的一門重要的專業課程。雖然只有少數人從事編譯方面的工做,可是這門課在理論、技術、方法上都對學生提供了系統而有效的訓練,有利於提升軟件人員的素質和能力。
   這門課程關注的是編譯器方面的產生原理和技術問題,彷佛和計算機的基礎領域不沾邊,但是編譯原理卻一直做爲大學本科的 必修課程,同時也成爲了研究生入學考試的必考內容。編譯原理及技術從本質上來說就是一個算法問題而已,固然因爲這個問題十分複雜,其解決算法也相對複雜。 咱們學的數據結構與算法分析也是講算法的,不過講的基礎算法,換句話說講的是算法導論,而編譯原理這門課程講的就是比較專一解決一種的算法了。在20世紀 50年代,編譯器的編寫一直被認爲是十分困難的事情,第一Fortran的編譯器聽說花了18年的時間才完成。在人們嘗試編寫編譯器的同時,誕生了許多跟 編譯相關的理論和技術,而這些理論和技術比一個實際的編譯器自己價值更大。就猶如數學家們在解決著名的哥德巴赫猜測同樣,雖然沒有最終解決問題,可是其間 誕生很多名着的相關數論。
  當你真正完成編譯原理的學習後,你對你所寫的程序、程序語言都會有更深的本質認識,這樣的認識也會讓你站的高度徹底不一樣,而且知道編譯的過程方法理論,能夠爲之後學習工做打下基礎,並且編譯原理並不只僅是用來寫編譯器的,還能夠在許多意想不到的領域進行應用。若是之後走工程方向的,學好編譯原理能夠基本囊括全部須要的技術,鍛鍊腦力,同時能夠有普遍應用,更本質上說,讓你理解你每天用的語言,這是優秀程序員須要具有的專研精神。
  不學編譯原理,可能永遠給各類寫編譯器的人當奴隸,覺得寫程序只能按照他們設計的語言哲學來作。學好了編譯原理,不必定非要本身寫語言,可是至少能把不少其餘程序員以爲很酷的東西看得透徹一點,不會被程序語言的設計表象騙到太多。
  下面我就發表本身對於學習編譯原理的方法
1.先利用ANTLR之類的編譯器生成工具,作一個小程序,所需知識只是正則表達式的基本知識和生成工具自己的使用方法. 這樣作的好處是:  
 1)能夠體會到編譯原理的實用性,提升學習興趣 
 2)入門容易,消除編譯原理學習的畏難情緒. 
 3)得到詞法分析器和語法分析器的感性認識,有利於加深對理論的理解.  
 4)得到編譯器自動生成工具(compiler compiler)的使用經驗,提升解決實際問題的能力.  
2.象ANTLR之類的工具是開源(open source)的,可研究其源碼,以便必要時本身手編分析程序. 
3.回過頭來看編譯原理教材. 這時大概會發現,不少理論很容易懂. 
4.結合教材所附源碼,進一步加深對教材的理解 
相關文章
相關標籤/搜索