讀《編譯原理》第四章

2021-08-08 14:00:43 字數 1234 閱讀 8717

語法分析,121頁

此文是讀書筆記,大部分讀書筆記是不適合他人讀的。

語法分析分三種:

錯誤恢復策略

恐慌模式的恢復

短語層次的恢復

錯誤產生式

全域性糾正

上下文無關方法

由終結符號,非終結符號,乙個開始符號和一組產生式組成。

推導語法分析樹和推導

語法分析樹,是二義性的(ambiguous)

大部分語法分析器都期望文法是無二義性的。

驗證文法生成的語言

上下文無關文法和正規表示式

4.3 設計文法

4.3.1 詞法分析和語法分析

4.3.2 消除二義性

4.3.3 左遞迴的消除

4.3.4 提取左公因子

一種文法轉換方法,可以產生適用於**分析技術或自頂向下分析技術的文法。

4.3.5 非上下文無關語言的構造

4.4 自頂向下的語法分析

4.4.1 遞迴下降的語法分析

4.4.2 first 和 follow

4.4.3 ll(1) 文法

l 表示從左向右掃瞄輸入

l 表示產生最左推導

1 表示在每一步中需要向前看乙個輸入符號來決定語法分析動作。

4.4.4 非遞迴的**分析

4.4.5 **分析中的錯誤恢復

4.5 自底向上的語法分析

4.5.1 歸約

4.5.2 控制代碼剪枝

4.5.3 移入 歸約語法分析技術

4.5.4 移入 歸約語法分析中的衝突

4.6 lr 語法分析技術介紹:簡單 lr 技術

4.6.1 為什麼使用 lr 語法分析器

**驅動的

4.6.2 項和 lr(0) 自動機

4.6.3 lr 語法分析演算法

4.6.4 構造 slr 語法分析表

4.6.5 可行字首

4.7 更強大的 lr 語法分析器

4.8 使用二義性文法

4.9 語法分析器的生成工具

4.9.1 語法分析器生成工具 yacc

在 unix 中是命令方式出現的。

源程式是:

宣告%%

翻譯規則

%%輔助性 c 語言例程

4.9.2 使用 yacc 處理二義性文法

4.9.3 使用 lex 建立 yacc 的詞法分析器

4.9.4 yacc 中的錯誤恢復

編譯原理第四章學習總結

通過第三章對於正規式及有限自動機等知識內容的學習,我們初步了解了詞法分析器。從而進入第四章 語法分析的學習。在第四章中我們可以了解到語法分析是編譯過程的核心部分,它的任務是在詞法分析識別出單詞符號串的基礎上,分析並判定程式的語法結構是否符合語法規則。地位極高。一 學習內容 對於語法分析器而言,它的主...

編譯原理第四章課程總結

語法分析的方法主要有 1.自上而下分析方法 a 遞迴下降子程式 b 非遞迴 分析,如ll 1 2.自下向上分析方法 a 算符優先分析b lr分析方法 lr 0 slr 1 lr 1 lalr 一 自上而下分析方法 1 遞迴下降子程式分析方法 a 為每乙個非終結符寫乙個分析過程 b 這些過程可能是遞迴...

讀《C 入門經典》第四章

c 也算是半路出家了,基礎不是很好,這幾天重新學習了一下 c 入門經典 算是打基礎啦。前三章已經看完了,今天開始看第四章。1 c 簡介 2 編寫c 程式 3 變數和表示式 4 流程控制 分支,迴圈 4.1 布林邏輯 布林比較 關係運算子 bool islessthan10 islessthan10 ...