1,關於文法
乙個文法g可以抽象的分為四元組(vn,vt,p,s)
vn表示非終結符 vt表示終結符 p表示產生式 s表示開始符
2,老師上課說的編譯原理的階段說的是:詞法分析,語法分析,語義分析,中間**生成,**優化,目標**生成
其中語法分析,語義分析,中間**生成稱為語法制導翻譯
語義分析,中間**生成稱為語義翻譯
3,喬姆斯基創造了文法,克林創造了自動機,其實這兩種東西是等價的
4,優化可生成「執行時間段且儲存空間小的**」
5,如何判斷文法是不是二義文法
對乙個串進行識別,判斷其是否能夠分出兩個串
已知文法 g[s] 為 s → asb|sb|b ,試證明文法 g[s] 為二義文法。
證明:
由文法g[s]:s→asb|sb|b,對句子aabbbb對應的兩棵語法樹為:
6,如果文法g是無二義性的,那麼它對應的最左推導和最右推導對應的語法樹必定相同
7,構造編譯程式應該掌握:源程式,目標語言,編譯方法
8,兩個正規式等價說的是兩個正規式所識別的語言集相等
9,計算機執行用高階語言編寫的程式主要有:解釋和編譯
10,自上而下分析法操作 (自己想)
11,題型:消除左遞迴,提取公因子
解題方法:
很好想,左遞迴就套公式,用乙個臨時變數解決,提取公因子就用提取公因子,換乙個新變數出來
例題:
考慮文法 g[s]:
s → (t) | a+s | a
t → t,s | s
消除文法的左遞迴及提取公共左因子。
解:消除文法g[s]的左遞迴:
s→(t) | a+s | a
t→st′
t′→,st′| ε
提取公共左因子:
s→(t) | as′
s′→+s | ε
t→st′
t′→,st′| ε
12,幾個填空題
詞法分析輸入:源程式 輸出:單詞符號
語法分析輸入:單詞符號 輸出:語法單位
語法分析的方法大致分為:自上而下分析法 + 自下而上分析法(現在我還沒看)
**分析使用**分析表+符號棧聯合控制
最右推導規範推導!最右推導就是從右邊開始推?哦了?
根據優化所設計的範圍,可把優化分為:區域性優化,迴圈優化,全域性優化
優化的定義:對程式進行各種變換,使的從變換後的程式出發,能夠產生更高效的**
文法g含有終結符的句型成為句子
自上而下分析法: 從開始符號開始推,推出句子 (句子為下)
自下而上分析法:從句子開始逐步歸約,直到歸約到開始符
目標**的形式:機器語言,組合語言,待裝配機器語言模組
**考慮問題:(1)生成目標**短 (2)減少訪問記憶體(3)考慮到計算機指令系統的特點
display表:巢狀層次顯示表
作用:登記外層每個活動的最新的起始位址
13,幾個填空題:
13.1編譯程式首先要識別出源程式中每個(單詞),然後分析每個(句子)並翻譯其含義
13.2通常把分析前端和綜合後端兩大階段,詞法,語法和語義分析是對源程式的(分析),中間**生成,**優化,目標**生成是對源程式的(綜合)
13.3程式語言的發展帶來了日漸多變的執行時儲存管理方案,主要分為(靜態儲存分配) + (動態儲存分配)
13.4對於編譯程式而言,輸入資料是(源程式),輸出結果是(目標程式)
編譯原理華工期末複習筆記
理解流程 nfa轉dfa 理解流程 五求輸出狀態集合的空閉包 得到輸出狀態等價類 重複直至無新的等價類出現 收斂 4.繪製狀態機圖dfa 技巧dfa最小化 理解反證法 初始假設全部都為乙個等價類,窮舉證明,利用反例來逐步劃分等價類流程否 如果有則把其影響到的狀態一併移除。此操作有級聯效應。得到收斂的...
編譯原理 複習
1 什麼叫編譯程式 高階語言 翻譯為 目標語言 組合語言或機器語言 2 編譯程式的6個階段 1 詞法分析 簡單理解就是掃瞄,很傻瓜式地由頭到尾掃瞄源程式,識別出 單詞 輸出結果是二元組,即 單詞總別,值 2 語法分析 根據語法規則將單詞符號串行分解成各類語法單位,如 表示式 語句 程式 3 語義分析...
編譯原理複習
介紹編譯原理,了解乙個新的領域,得去了解它的整體框架 語法分析 語義分析 語法制導翻譯 中間 生成 生成彙編 生成優化 執行彙編 3位址或4位址 的彙編執行 1.根據語言寫出文法產生式 2.構造與某一正規式等價自小dfa dfa deterministic finite automation 確定有...