編譯原理考點中概念整理

2022-09-10 11:42:21 字數 1946 閱讀 1663

1.編譯程式構成:

p6圖1.10(回去加上)

2.編譯程式和解釋程式的區別:

編譯程式是乙個語言處理程式,它把乙個高階語言程式翻譯成某個機器語言的匯程式設計序或二進位制**程式,這個二進位制**程式在機器上執行以生成結果。

解釋程式接受某個語言的程式並立即執行這個源程式。它的工作模式是乙個個的獲取、分析並執行源程式語句,一旦第乙個語句分析結束,源程式便開始執行並生成結果。

3.詞法分析、語法分析、語義分析及其任務:

詞法分析是編譯過程的第乙個階段。這個階段的主要任務是從左到右乙個字元乙個字元的讀入源程式,對構成源程式的字元流進行掃瞄和分解,從而識別出乙個個單詞。

語法分析是編譯過程的第二個階段。語法分析的任務是在詞法分析的基礎上將單詞序列分解成各類語法短語。語法分析所依據的是語言的語法規則,即描述程式結構的規則。通過語法分析確定整個輸入串是否構成乙個語法上正確的程式。

語義分析是審查源程式有無語義錯誤,為**生成階段收集型別資訊。

4.文法 句型 句子 短語

文法:以有窮的集合刻畫無窮的集合的乙個工具。是一類描述規則的語言。

句型:g[s]是乙個文法,如果符號串x是從識別符號推導出來的,則稱x是文法g[s]的句型。

句子:若句型x僅由終結符組成,則稱x為g[s]的句子。

短語:給定乙個句型,其分析樹的邊緣成為該句型的乙個短語。

5.文法的型別:

0型文法:a→b,a中至少含有乙個非終結符。也成為短語文法。「0型語言都是遞迴可列舉的,反之遞迴可列舉集必定是0型語言。」

1型文法:a→b,|b|>=|a|(b→空除外)也稱為上下文有關的。

2型文法:a→b,a是乙個非終結符。也稱為上下文無關的。

3型文法:a→ab|a (右線性) a→ba|ao(左線性)。也成為正規文法。

6.可歸字首 活字首:

可歸字首:對於乙個合法的句子而言,每次規約後得到的都是由已規約部分和輸入剩餘部分合起來構成文法的規範句型,而用哪個產生式繼續規約僅取決於當前句型的前部,規範句型的這種前部稱作可歸字首。

活字首:把在規範句型中形成可歸字首之前包括可歸字首在內的所有字首都成為活字首。

7.綜合屬性 繼承屬性:

綜合屬性:對關聯於產生式a→a的語義動作 b:=f(c1,c2,...,ck),如果b是a的某個屬性,則稱b是a的乙個綜合屬性。

繼承屬性:對關聯於產生式a→a的語義動作 b:=f(c1,c2,...,ck),如果b是產生式右部某個文法符號x的某個屬性,則稱b是x的乙個繼承屬性。

8.符號表作用:

符號表自建立後便開始被用於收集符號(識別符號)的屬性資訊,不同階段會有不同的資訊。

在語義分析中,符號表所登記的內容是進行上下文語義合法性檢查的依據。

在目標**生成階段,符號表是對符號名進行位址分配的依據。

9.靜態語義分析任務:

編譯器在靜態語義分析階段收集程式結構(控制結構和資料結構)相關的語義資訊,在此過程中同時進行靜態語義檢查。若程式可以順利通過靜態語義檢查,則部分語義資訊會進一步用於中間或目標**生成。

10.儲存分配策略:

靜態儲存分配:在編譯期間為物件分配儲存空間。要求在編譯期間就可確定資料物件的大小,同時還可以確定資料物件的數目。

棧式儲存分配:執行棧資料空間的儲存和管理方式。它將資料物件的執行時儲存按照棧的方式來管理,常用於有效實現可動態巢狀的程式結構。因為是動態分配,所以執行的時候才能確定資料物件的儲存分配結果。(當資料物件的生存期與建立他的過程/函式執行期無關時不適合進行棧式儲存分配。)

堆式儲存分配:可以在任意時刻以任意次序從資料段的堆區分配和分配資料物件的執行時儲存空間。 

11.過程活動記錄:

過程活動記錄是指執行棧上的棧幀,他在函式/過程呼叫時被建立,在函式/過程執行過程中被訪問和修改,在函式/過程返回時被撤銷。棧幀包含區域性變數、函式實參、臨時值(用於表示式計算的中間單元)等資料資訊以及必要的控制資訊。

12.display表:

記錄各巢狀層當前過程的活動記錄在執行棧上的起始位置(基位址)。

編譯原理期末考點

題型 單選5個 10分 填空10個 20分 簡答2個 10分 解答9個 60分 最後3題,每個10分 目錄 第一章第二章 第三章 第四章第五章 第六章什麼是編譯程式 把某一種高階語言程式等價的轉換成另一種低階語言的程式 翻譯程式有哪兩種 編譯和解釋程式 編譯的6個過程,自己的作用 任務 中間 逆波蘭...

編譯原理基礎概念

字首,中綴,字尾表示式 中綴 普通的四則運算的式子 1 2 3 4 字首 運算子在運算元之前 1234 計算機每次從右往左掃瞄,將數字壓入棧中,碰到運算子的時候從棧中取出來 字尾 運算子在運算元之後 12 3 4 三元式 四元式 三元式 運算子,運算物件1,運算物件2 四元式 運算子,運算物件1,運...

C C 編譯原理及過程整理

面試被問到c編譯原理,所以回來整理一下。編譯主要分為四個大步驟 預編譯 編譯 s asm 彙編 obj o a ko 鏈結 exe elf axf等 在c c 中統稱為編譯。前面文章 介紹過整合開發環境 編譯器,這裡再說明一下,整合開發環境是用於提供程式開發環境的應用程式,一般包括 編輯器 編譯器,...