編譯原理--文法及相關知識

編譯原理講的是把源代碼編譯成目標代碼(機器代碼)的過程,整個過程基本包括:

      詞法分析:編譯過程的第一個階段,將源程序一個字符一個字符的讀入,識別出一個個單詞。

      語法分析:在詞法分析的基礎上將單詞序列分解成語法短語,如“程序”、“語句”、“表達式”。

      語義分析:審查源程序有無語義錯誤,如數據類型是否一致。

      生成中間代碼:將源程序編程中間代碼,中間代碼非常容易生成目標代碼。

      代碼優化:對中間代碼進行改造,目的使目標代碼更高效。

      目標代碼生成:將中間代碼變化成特定機器上的絕對指令代碼或彙編指令代碼。

 

軟考中設計的知識點,主要圍繞與 詞法分析 相關的文法講解。

 

文法:把高級語言編譯成機器代碼時,編譯器要能識別出高級語言,知道當前正在編譯的是編程語言的關鍵字、用戶定義變量或者是操作符等等,因此需要用一種描述語言的語言或規則,這正是文法(我的理解,歡迎拍磚)。

 

首先看文法相關的知識:

 

首先需要了解終結符和非終結符的概念:終結符是不可再分的符號,對應程序語言中的字母,標點,運算符等;非終結符是可再分的符號,可以分成終結符或其他非終結符。

其次是文法的四元組(Vn,Vt,P,S),Vn表示非終結符集,Vt終結符集,P表示規則,S表示開始符。

 

文法分四個類型:總體上的關係是

0型文法:文法都滿足,因此是最基本的文法,也叫短語文法

 

1型文法:在滿足0型文法的基礎上,要滿足規則右端的字符串長度大於或等於規則左端的字符串(規則:α-->β)。

2型文法:在滿足1型文法的基礎上,α是非終結符。

3型文法:

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章