當前位置:編程學習大全網 - 腳本源碼 - 如何通俗易懂地解釋編譯原理中語法分析的過程

如何通俗易懂地解釋編譯原理中語法分析的過程

分成詞法分析,語法分析(LL算法,遞歸下降算法,LR算法),語義分析,運行時環境,中間代碼,代碼生成,代碼優化這些部分。其實現在很多編譯原理的教材都是按照85,86出版的那本龍書來安排教學內容的,所以那本龍書的內容格式幾乎成了現在編譯原理教材的定式,包括國內的教材也是如此。壹般來說,大學裏面的本科教學是不可能把上面的所有部分都認真講完的,而是比較偏重於前面幾個部分。像代碼優化那部分東西,就像個無底洞壹樣,如果要認真講,就是單獨開壹個學期的課也不可能講得清楚。所以,壹般對於本科生,對詞法分析和語法分析掌握要求就相對要高壹點了。

詞法分析相對來說比較簡單。可能是詞法分析程序本身實現起來很簡單吧,很多沒有學過編譯原理的人也同樣可以寫出各種各樣的詞法分析程序。不過編譯原理在講解詞法分析的時候,重點把正則表達式和自動機原理加了進來,然後以壹種十分標準的方式來講解詞法分析程序的產生。這樣的做法道理很明顯,就是要讓詞法分析從程序上升到理論的地步。

語法分析部分就比較麻煩壹點了。現在壹般有兩種語法分析算法,LL自頂向下算法和LR自底向上算法。LL算法還好說,到了LR算法的時候,困難就來了。很多自學編譯原理的都是遇到LR算法的理解成問題後就放棄了自學。其實這些東西都是只要大家理解就可以了,又不是像詞法分析那樣非得自己寫出來才算真正的會。像LR算法的語法分析器,壹般都是用工具Yacc來生成,實踐中完全沒有比較自己來實現。對於LL算法中特殊的遞歸下降算法,因為其實踐十分簡單,那麽就應該要求每個學生都能自己寫。當然,現在也有不少好的LL算法的語法分析器,不過要是換在非C平臺,比如Java,Delphi,妳不能運用YACC工具了,那麽妳就只有自己來寫語法分析器。

  • 上一篇:彭昱暢都挺好什麽角色
  • 下一篇:塔望這家品牌策劃公司有什麽特色?
  • copyright 2024編程學習大全網