編譯原理 筆記

第一講 編譯過過程概述
主要介紹了:
(1)什麼是編譯是編譯程序?
(2)編譯程序的作用;
(3)編譯過程;
(4)編譯程序的組成及各部分的作用。

第二講 上下文無關文法和語言
主要介紹了:
(1)語法、語義等概念,
(2)回顧了關於程序語言定義,初等數據類型,數據結構,高級高級語言的一般特性,程序結構,語句與控制結構等內容;
(3)重點介紹了程序設計語言的描述工具-文法,包括文法的定義,文法的種類等內容,
(4)重點介紹用於描述程序設計語言的上下文無關文法,上下文無關文法的推導,上下文無關文法與語言,語法分析樹的構造,文法的二義性等;
(5)符號串(語言)的各種運算及其性質;
(6)對於給定的一個文法,對於其某句型的推導、句型的推導過程、句子、所形成的語言等,以及推導所形成的語法樹。
(7)最左推導,最右推導、規範推導等有關的概念及其產生過程;
(8)什麼是句型分析,什麼是短語、直接短語,句柄,如何求解?

第三講 詞法分析器
主要介紹了:
(1)詞法分析器的組成、作用及工作原理,
(2)介紹詞法分析器的構造原理,
(3)狀態轉換圖
(4)正規集、正規表達式及其求法
(5)介紹確定有限自動機、不確定有限自動機等工具;
(6)NFA到DFA的轉化、DFA的化簡、從正規式構造自動機等內容。

第四講 自上而下的語法分析
主要介紹了:
(1)語法分析器的功能,
(2)自上而下語法分析方法以及自上而下分析所面臨的問題:
(3)左遞歸及左遞歸的消除,回溯及回溯的避免;
(4) LL(1)文法的特點及其如何確定一個文法是否是LL(1)文法;
(5)遞歸下降分析法和預測分析程序,
(6)預測分析器的工作過程,如何構造預測分析表。

第五講 自下而上的語法分析方法
主要介紹了:
1、算符優先分析法。
(1)對算符優先分析方法,
(2)介紹算符文法、
(3)算符優先文法的定義
(4)講述算符優先分析的過程
(5)介紹算符優先分析法的核心——算符優先分析表的構造方法。
2、LR分析法
(1)項目、項目分類、項目集
(2)LR(0)項目構造方法
(3)LR(0)項目集的構造
(4)LR(0)識別活前綴的自動機構造
(5)LR(0)分析表的構造
(6)LR(0)文法,及其語句的分析過程
(7)SLR(1)分析表的構造
(8)SLR(1)文法及其語句的分析過程
第六講 語義分析與中間代碼生成
1、 中間代碼的類型與各自的定義
2、 常用語句的翻譯與中間代碼的生成

典型的知識點:
1) 簡述文法的作用
2) 文法有哪幾部分組成?各部分的作用是什麼?
3) 對給定的文法以及某個句子,如何確定該句子能否有給定的文法構造?
4) 對於給定的語言集合,如何構造產生該語言的文法。
5) 由文法給出該文法所產生的語言;
6) 簡述詞法規則的描述方法
7) 掌握正規式、正規文法、自動機的構造方法及三種工具之間的轉換方法
8) 正規式(正規集)NFADFA最小化DFA
9) 如何消除文法中的直接和間接左遞歸,如何消除回溯?
10) 給定文法,構造該文法的遞歸下降分析器
11) 給定文法,如何判斷該文法是否是LL(1)文法?
12) 給定文法,構造文法的預測分析表;
13) LL(1)文法的分析過程;
14) LR(0)、SLR(1)分析表的構造與分析
15) 對給定的一個算符優先文法,如何構造該文法的算符優先分析表?
16) 算符優先分析法的分析過程;
17) 屬性文法的構造
18) 語句翻譯與中間代碼

發佈了46 篇原創文章 · 獲贊 58 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章