當前位置:首頁 » 編程軟體 » 編譯原理dag

編譯原理dag

發布時間: 2024-10-23 10:47:20

1. (高分)編譯原理的題,求高手,在線等,急急急!!!!!!

太多了,大概看了下考點:

若源程序是用高級語言編寫的,目標程序是 機器語言程序或匯編程序 ,則其翻譯程序稱為編譯程序.

何謂優化?按所涉及的程序范圍可分為哪幾級優化?
答:優化:對程序進行各種等價變換,使得從變換後的程序出發,能產生更有效的目標代碼。
三種級別:局部優化、循環優化、全局優化。

簡述常用的優化技術有哪些?
答:編譯程序中常用的優化技術有:
(1) 刪除公共子表示式;
(2) 復寫傳播;
(3) 刪除無用代碼;
(4) 代碼外提;
(5) 強度削弱;
(6) 刪除歸納變數;
(7) 合並常量。

一個句型中的最左 B 稱為該句型的句柄。
可選項有:
A. 短語 B. 簡單短語 C. 素短語 D. 終結符號

.遞歸下降法不允許任一非終極符是直接 左 遞歸的。

簡單優先方法每次歸約當前句型的 句柄 ,算符優先方法每次歸約當前句型的 最左素短語 ,二者都是不斷移進輸入符號,直到符號棧頂出現 可歸約串 的尾,再向前找到 可歸約串 的頭,然後歸約。

算符優先文法——設有一不含ε產生式的算符文法G,如果對任意兩個終結符對a,b之間至多隻有 、 和 三種關系中的一種成立,則稱G是一個算符優先文法。

常用的中間語言種類有哪幾種?
答:有逆波蘭式、三地址代碼、抽象語法樹和DAG。

2. 給力!2011年新年散分啦。高分求助編譯原理高手幫忙做幾道模擬題

三、( 8 分)化簡文法 G[S] :
S → ASe | BCaD | aD | AC
A → Cb | DBS
C → bC | d
B → Ac
D → Ad
化簡後: S → ASe|AC A → Cb C → bC | d
四、( 12 分) 設 L í {a,b,c}* 是滿足下述條件的符號串構成的語言:
(1)若出現 a ,則其後至少緊跟兩個 c ;
(2)若出現 b ,其後至少緊跟一個 c 。
試構造識別 L 的最小化的 DFA ,並給出描述 L 的正規表達式。
答:DFA 如圖所示。相應的正規式為 (c|acc|bc)* 。

五、( 12 分) 已給文法 G[S] : S → SaP | Sf | P P → qbP | q
將 G[S] 改造成 LL ( 1 )文法,並給出 LL ( 1 )分析表。
答:改造後的文法: S → PS' S' → aPS'| fS' | e P → qP' P' → bP | e
各候選式的 FIRST 集,各非終結符的 FOLLOW 集為
產生式 FIRST 集 FOLLOW 集
S → PS' {q} {#}
S' → aPS'
→ fS'
→ e {a}
{f}
{ e } {#}
P → qP' {q} {a,f,#}
P' → bP
→ e {b}
{ e } {a,f,#}
LL(1) 分析表為

六、( 12 分) 給定文法 G[S] : S → Aa|dAb|Bb|dBa A → c B → c
構造文法 G[S] 的 LR ( 1 )分析表。
分析表如下圖所示

七、( 8 分) 將下面的條件語句表示成逆波蘭式和四元式序列:
if a>b then x:=a+b*c else x:=b-a;
答:( 1 )逆波蘭式:
,其中, BLE 表示汪或等於時的轉向指令; [ … ] 表示標號。
( 2 )四元式:
(1) ( j>, a, b, (3))
(2) ( j, , , (7) )
(3) ( *, b, c, T1)
(4) ( +, a, T1, T2)
(5) ( :=, T2, , x)
(6) ( j, , , (9))
(7) ( -, b, a, T3)
(8) ( :=, T3, , x)
(9) ( … … )
八、( 8 分) 給定基本塊:
A:=3*5
B:=E+F
C:=A+12
D:=E+F
A:=D+12
C:=C+1
E:=E+F
假定出基本塊後,只有 A 、 C 、 E 是活躍的,給出用 DAG 圖完成優化後的代碼序列。
答:化簡後的的四元式序列為
A :=D+12
E :=E+F
C :=28

3. 編譯原理什麼是素短語

編譯原理中,素短語是至少含義一個終結符,並且自身不包含任何更小素短語的一種短語。

素短語是一種特殊的短語,它是一個遞歸的定義,至少含有一個終結符,並且除它自身之外不再含任何更小的素短語,所謂最左素短語就是處於句型最左邊的素短語的短語。

一個算符優先文法G的任何句型的最左素短語是滿足以下條件的最左子串NaNb…NcNdN(N是非終結符,a,b,c,d是終結符)。例如:句型T+T*F+id,T*F是最左素短語,id是素短語。

(3)編譯原理dag擴展閱讀:

通過語法樹可以得知素短語:

1、每個句型對應一棵語法樹

2、每棵語法樹的葉子結點從左到右排列構成一個句型

3、每棵語法樹的子樹的葉子結點從左到右排列構成一個短語

4、每棵語法樹的簡單子樹(只有父子兩層結點)的葉子結點從左到右排列構成一個簡單(直接)短語。

5、素短語是至少包含一個終結符的短語,但它不能包含其它素短語。

4. 要做一個根據C代碼自動生成函數調用關系圖的小程序

1,你可以嘗試一下llvm,蘋果公司支持的開源編譯器項目,它可以將程序解析成基本塊的關系圖;首先llvm做的事情要比你要求的多很多,程序會被解釋成一個模塊,每個模塊包含若干個函數function,function內部將代碼分成一個一個基本塊,基本塊是一個編譯原理的術語,你可以查一下相關定義。其次,高級語言程序要被解釋成一種中間表達,這種中間表達可以描述一種圖叫做有向無環圖,你所需要的調用關系圖是這個有向無環圖中的一個子圖。
2,自己做的話首先你要了解有向無環圖(DAG)的數據結構,比較適合描述函數調用關系圖,其次要將函數抽象成DAG上的一個結點,這個結點至少包含以下信息,調用這個函數的母函數指針集合,這個函數調用的函數指針集合,當前函數的名稱。

熱點內容
登錄哪裡修改無線密碼 發布:2024-10-23 13:29:48 瀏覽:541
灰蠱解壓 發布:2024-10-23 13:11:47 瀏覽:965
掏異物解壓 發布:2024-10-23 13:02:29 瀏覽:781
緩存穿透bitmap 發布:2024-10-23 12:54:52 瀏覽:673
華三伺服器設置固定ip 發布:2024-10-23 12:52:09 瀏覽:103
櫻花校園模擬器id密碼如何使用 發布:2024-10-23 12:42:11 瀏覽:874
百度編程地圖 發布:2024-10-23 12:39:50 瀏覽:885
五年級簡便演算法 發布:2024-10-23 12:30:07 瀏覽:263
如何建立公司伺服器 發布:2024-10-23 12:07:19 瀏覽:475
c語言有多難 發布:2024-10-23 12:00:23 瀏覽:239