編譯原理三地址
① 編譯原理里什麼是三地址碼
指令是由操作碼和地址碼兩部分組成.
有些指令要有3個操作數,也就是3個地址碼--三地址碼。
3地址指令:
OP
A1
A2
A3
② 編譯原理什麼是素短語
編譯原理中,素短語是至少含義一個終結符,並且自身不包含任何更小素短語的一種短語。
素短語是一種特殊的短語,它是一個遞歸的定義,至少含有一個終結符,並且除它自身之外不再含任何更小的素短語,所謂最左素短語就是處於句型最左邊的素短語的短語。
一個算符優先文法G的任何句型的最左素短語是滿足以下條件的最左子串NaNb…NcNdN(N是非終結符,a,b,c,d是終結符)。例如:句型T+T*F+id,T*F是最左素短語,id是素短語。
(2)編譯原理三地址擴展閱讀:
通過語法樹可以得知素短語:
1、每個句型對應一棵語法樹
2、每棵語法樹的葉子結點從左到右排列構成一個句型
3、每棵語法樹的子樹的葉子結點從左到右排列構成一個短語
4、每棵語法樹的簡單子樹(只有父子兩層結點)的葉子結點從左到右排列構成一個簡單(直接)短語。
5、素短語是至少包含一個終結符的短語,但它不能包含其它素短語。
③ 編譯原理 四元式
四元式是一種比較普遍採用的中間代碼形式。
代碼段的四元式表達式:
101 T:=0 (表達式為假的出口)
103 T:=1 (表達式為真的出口)
因為用戶的表達式只有一個A<B,因此A<B的真假出口就是表達式的真假出口,所以
100: if a<b goto 103 (a<b為真,跳到真出口103)
101: T:=0(否則,進入假出口)
102: goto 104 (要跳過真出口,否則T的值不就又進入真出口了,為真)
103: T:=1
104:(程序繼續執行)
(3)編譯原理三地址擴展閱讀:
四元式是一種更接近目標代碼的中間代碼形式。由於這種形式的中間代碼便於優化處理,因此,在目前許多編譯程序中得到了廣泛的應用。
四元式實際上是一種「三地址語句」的等價表示。它的一般形式為:
(op,arg1,arg2,result)
其中, op為一個二元 (也可是一元或零元)運算符;arg1,arg2分別為它的兩個運算 (或操作)對象,它們可以是變數、常數或系統定義的臨時變數名;運算的結果將放入result中。四元式還可寫為類似於PASCAL語言賦值語句的形式:
result ∶= arg1 op arg2
需要指出的是,每個四元式只能有一個運算符,所以,一個復雜的表達式須由多個四元式構成的序列來表示。例如,表達式A+B*C可寫為序列
T1∶=B*C
T2∶=A+T1
其中,T1,T2是編譯系統所產生的臨時變數名。當op為一元、零元運算符 (如無條件轉移)時,arg2甚至arg1應預設,即result∶=op arg1或 op result ;對應的一般形式為:
(op,arg1,,result)
或
(op,,,result)
④ 編譯原理題目:請將表達式(a-b)*(a+b/c)表示成三地址碼
t1 = a - b
t2 = b / c
t3 = a + t2
t4 = t1 * t3
⑤ 編譯原理單選題,求助!!!急!!!
西交《數字邏輯電路》在線作業免費答案
算符優先分析法每次都是對( )進行歸約:
A.句柄
B.最左素短語
C.素短語
D.簡單短語
正確答案:B
表達式-a+b*(-c+d)的逆波蘭式是( )。
A.ab+-cd+-*
B.a-b+c-d+*
C.a-b+c-d+*
D.a-bc-d+*+
正確答案:D
以( )作為輸出,允許自程序單獨編譯。
A.絕對機器代碼
B.可再定位機器語言
C.匯編語言程序
D.中間語言
正確答案:B
太多了,不打字了,剩下的加好友發給你剩下的吧。
⑥ 編譯原理實驗FOR循環語句的翻譯程序設計(遞歸下降法、輸出三地址表示)編程思想
for(i=0;i<3;i++)
{
.........
}
⑦ 編譯原理題!
bu dong
⑧ 編譯原理,把數組元素賦值語句翻譯為三地址代碼的問題,題目和答案如圖,第五題,不過看不太懂,84是從
「84」是C,定義在課本180頁式(7.7)。lown 表示數組第n維的下標最小值,比如MATLAB中數組A,A(1)是其數組的第一個元素,則其low1 = 1. C語言中數組A,A[0]是其第一個元素,則low1 = 0.
⑨ 編譯器有哪幾部分構成.編譯原理
1. 詞法分析
詞法分析器根據詞法規則識別出源程序
中的各個記號(token),每個記號代表一類單詞(lexeme)。源程序中常見的記號可以歸為幾大類:關鍵字、標識符、字面量和特殊符號。詞法分析器
的輸入是源程序,輸出是識別的記號流。詞法分析器的任務是把源文件的字元流轉換成記號流。本質上它查看連續的字元然後把它們識別為「單詞」。
2. 語法分析
語法分析器根據語法規則識別出記號流中的結構(短語、句子),並構造一棵能夠正確反映該結構的語法樹。
3. 語義分析
語義分析器根據語義規則對語法樹中的語法單元進行靜態語義檢查,如果類型檢查和轉換等,其目的在於保證語法正確的結構在語義上也是合法的。
4. 中間代碼生成
中間代碼生成器根據語義分析器的輸出生成中間代碼。中間代碼可以有若干種形式,它們的共同特徵是與具體機器無關。最常用的一種中間代碼是三地址碼,它的一種實現方式是四元式。三地址碼的優點是便於閱讀、便於優化。