編譯原理考後覆盤

2021-10-24 06:26:50 字數 2997 閱讀 9308

第一章 引論

全講翻譯程式、編譯程式、宿主機、目標機、編譯過程的5 個階段(每個階段的任務、所依循的規則、使用的工具)、圖1.1、編譯前端和後端、t 形圖

第二章 高階語言及其語法描述

全講字母表、符號串、連線積、上下文無關文法(終結符號、非終結符號、開始符號、產生式)、推導、句型、最左推導、最右推導、語法分析樹、二義文法、4 種文法

第三章 詞法分析

3.1、3.2、3.3.1-3.3.3

單詞符號的分類、輸入預處理、超前搜尋、狀態轉換圖、正規式與正規集、確定有限自動機、非確定有限自動機、子集法

第四章 語法分析—自上而下分析

4.1-4.5

左遞迴、消除左遞迴演算法、ll(1)文法、first 集合、follow 集合、**分析表構造

第五章 語法分析—自下而上分析

5.1、5.2.1-5.2.2、5.3.1-5.3.3

歸約、短語、直接短語、控制代碼、規範歸約概念、算符優先文法、firstvt 和lastvt 集合及構造演算法、最左素短語、算符優先分析演算法、圖5.4、lr 分析表結構、lr(0)專案集族和lr(0)分析表構造、slr 分析表構造

第六章 屬性文法和語法制導翻譯

6.1-6.2、6.4.1

屬性文法、綜合屬性和繼承屬性、依賴圖、抽象語法樹、翻譯模式

第七章 語義分析和中間**產生

7.1、7.3.1、7.4、7.5.1、7.6

中間語言形式、布林表示式翻譯、回填技術、控制流語句翻譯

第八章 符號表

8.1、8.2、8.3.2

符號表包含內容、符號表的3 種構造法和處理法(特別是雜湊技術)

第九章 執行時儲存空間組織

9.1、9.2、9.4、9.5.1

活動的概念、引數傳遞方式、活動記錄定義及包含內容、靜態鏈、動態鏈、非區域性名字訪問的2種方式

第十章 優化

10.1、10.2.1、10.3

優化的目的及原則、基本方法、基本塊及流圖、迴圈優化

第十一章 目標**生成

11.1

目標**的3 種形式、**生成著重要考慮的兩個問題、設計**生成器時的一般問題

填空20 判斷10 簡答25 綜合45

最終成績=平時成績(30%)+考試成績(70%)

實現ll(1)分析的另一種有效方式是使用______和______進行聯合控制。

我的答案: 總控程式 **分析表

正確答案: 分析棧 分析表

反思總結:

腦子裡當時就只記住上圖藍色方框裡的總控程式和**分析表就填上去了,要看仔細,理解清楚!

判斷: 一棵語法樹表示了乙個句型的所有可能的推導。

我的答案: √

正確答案: ×

反思總結:當時想的是一棵語法樹表示乙個句型種種可能的不同推導過程 , 包括最左(最右) 推導。但是沒注意到「所有」這個絕對描述的字眼,正確表述為:一棵語法樹表示了乙個句型所有可能的推導(二義性文法除外)

知識點總結:

從乙個句型到另乙個句型的推導過程往往不是唯一的。一顆語法樹表示了乙個句型種種可能的(但未必是所有的)不同推導過程,包括最左(最右)推導。這樣的一顆語法樹是這些不同推導過程的共性抽象,是它們的代表。乙個句型不一定只對應唯一的一棵語法樹(二義文法),也就是不一定只有唯一的乙個最左(最右)推導。

某文法如果存在某個句子對應兩棵不同的語法樹(證明乙個文法是二義的),則說這個文法是二義性文法。或者說,若乙個文法中存在某個句子,有兩個不同的最左推導或最右推導,則該文法是二義的。

文法的二義性和語言的二義性是兩個不同的概念。

二義性問題是不可判定的,即不存在乙個演算法,它能在有限步驟內,確切的判定乙個文法是否為二義的。

請畫出編譯程式的總框圖。

注意: 千萬不要忘記兩邊的符號表管理和出錯處理以及雙向箭頭

簡述詞法分析階段預處理程式的作用。

完整答案(記牢)

剔除無用的空白、跳格、回車和換行等編輯性字元;

區分標號區、連線續行和給出句末符等。

考慮文法g(e):

e → t | e+t

t → f | t*f

f → (e) | i

和句子i1+i2*i3+i4:

(1)畫出它所對應的語法樹;

(2)寫出它的短語、直接短語和控制代碼。

(1)語法樹如下:

(2)短語:i1,i2,i3,i4,i2*i3,i1+i2*i3,i1+i2*i3+i4

直接短語:i1,i2,i3,i4

控制代碼(最左直接短語):i1

注意: 題目越簡單越要小心仔細檢查,做到不重不漏,理清概念,不要混淆概念、思維錯亂!

覆盤 8月 第4周工作覆盤

本次覆盤任務大於意義 7月第3周目標 目的 智慧型運營平台開發工作 目標 1 智慧型運營平台開發 完成累計資料 web開發 7月第4周覆盤 目標完成進度檢查 1.智慧型運營平台工作發現的問題修復 完成 2.跟蹤處理kafka生產問題 完成 3.視客相伴預約導航協助終端聯調測試 完成 達成亮點分析 1...

重構如覆盤

這篇blog算是之前關於重構的乙個總結,導火索是上週花了不少時間把前一段寫的乙個功能模組做的乙個重構。事實 沒做之前,功能什麼的基本都對,有一些小bug和效率不是很好,問題最大的是我感覺這部分有點失控,心裡一種亂的不安全感,這個感覺很差。另外就是在處理bug,增加新的功能和用其他方案做優化的時候,可...

覆盤知識6

1 什麼情況下使用collections.defaultdict?當定義乙個字典時,某個鍵值不存在時會報錯,但是用collections.defaultdict初始化不會報錯,引數可以是int,表示value值是int型別,引數如果是list,表示value值是list列表。2 爬蟲內容 reque...