詞法分析相對來說比較簡單。可能是詞法分析程序本身實現起來很簡單吧,很多沒有學過編譯原理的人也同樣可以寫出各種各樣的詞法分析程序。不過編譯原理在講解詞法分析的時候,重點把正則表達式和自動機原理加了進來,然後以壹種十分標準的方式來講解詞法分析程序的產生。這樣的做法道理很明顯,就是要讓詞法分析從程序上升到理論的地步。
語法分析部分就比較麻煩壹點了。現在壹般有兩種語法分析算法,LL自頂向下算法和LR自底向上算法。LL算法還好說,到了LR算法的時候,困難就來了。很多自學編譯原理的都是遇到LR算法的理解成問題後就放棄了自學。其實這些東西都是只要大家理解就可以了,又不是像詞法分析那樣非得自己寫出來才算真正的會。像LR算法的語法分析器,壹般都是用工具Yacc來生成,實踐中完全沒有比較自己來實現。對於LL算法中特殊的遞歸下降算法,因為其實踐十分簡單,那麽就應該要求每個學生都能自己寫。當然,現在也有不少好的LL算法的語法分析器,不過要是換在非C平臺,比如Java,Delphi,妳不能運用YACC工具了,那麽妳就只有自己來寫語法分析器。