編譯句柄
Ⅰ 編譯原理中的句柄是什麼意思舉個簡單的例子
語法樹的最左子樹
Ⅱ 句柄的編譯原理
一個句型的最左直接短語稱為該句型的句柄,句型的句柄是和某產生式右部匹配的子串,並且,把它規約成該產生式左部的非終結符,代表了最右推導過程的逆過程的一步。
如右圖,在推導過程中,S→aABe→aAde→aAbcde→abbcde,此四步的句柄分別為aABe,d,Abc,b
句柄的特徵:
1. 它是直接短語,即某規則右部。
2. 它具有最左性。
注意:短語、直接短語和句柄都是針對某一句型的,特指句型中的哪些符號子串能構成短語和直接短語,離開具體的句型來談短語、直接短語和句柄是無意義的。另外句柄的右邊僅含終結符如果文法二義,那麼句柄可能不唯一。
Ⅲ 編譯原理中的短語、直接短語、句柄
如果給出短語等名詞的形式化的定義,便較難理解,不好求。我們通過構造語法樹來求解。首先你應該會根據文法將所給句型構造成語法樹的形式,即根據文法怎樣推導出句型E+T*F。如果你有數據結構二叉樹基礎的話這很簡單就構造出來了。構造出語法樹後,求短語看根節點,有T,和E。則短語為:E+T*F,T*F,而直接短語是指能直接推出葉子節點的根所對應的短語,可知該節點為T,直接短語為:T*F。句柄是最左直接短語,可知為:T*F。
Ⅳ 編譯原理中,句柄的定義中的最左直接短語,那個最左是什麼意思啊急求!!!跪謝!!!
就是說,對一棵分析樹從上到下,從左到右把所有的直接短語寫出來,在所有的直接短語的最前面(也就是最左邊)的那個就是句柄啦。
希望幫到你理解這個意思。
Ⅳ 編譯原理習題,下圖為什麼a為句柄, 而不是最左面的b為句柄怎樣理解句柄定義中的最左簡單子樹中的簡
baSb的最右推導為:S->AB->ASb->bBSb->baSb
根據句柄定義:
所以a為baSb的句柄。
只有單層分支的子樹稱為簡單子樹。最左簡單子樹末端結點組成的符號串為句柄。
Ⅵ 編譯原理 - 移進歸約分析中如何確定句柄的開始處與結束處
當然是根據文法來寫的呀 沒有文法無法確定 句柄的開始處和結束處 的 當然 還要看看匹配不匹配呀 ,要最後 這個句型和文法都匹配起來都行呀 總之 句柄肯定都是在產生式右端的 你可以一個個匹配過來
Ⅶ 編譯原理中的句柄是什麼意思
是操作系統用來管理不同的對象,給他們一個編號而已
比如窗口、線程、圖標等都會對應一個句柄,這樣可以方便標識與管理
句柄其實也就是一個整數值,而且是唯一的
Ⅷ 編譯原理-句型、句子、短語、直接短語、句柄、素短語、最左素短語
在進行語法分析的時候,有時候會對這些詞語的概念不清晰,這里我們就詳細歸納總結一下。
可以看出這個裡面,最需要理解的概念就是短語,其他大部分概念都是在短語基礎上延伸的,從概念上可以看出:
假設有一個文法
針對文法的一個特定句型 (Sd(T)db) , 其推導過程如下:
這個句型 (Sd(T)db) 對應的 CFG 分析樹如下:
那個這個句型 (Sd(T)db) 有多少個短語呢?
還記得短語的定義么, S ⇒* αβδ , αβδ 代表句型就是這里的 (Sd(T)db) 。
因此這個句型 (Sd(T)db) :
演算法非常簡單,就是通過分析樹的後序遍歷,先將子樹的葉節點從左到右排合並成字元串(即一個短語),然後用它代表子樹的根節點的值,再和與子樹根節點同一層節點值合並,得到新的短語。就這樣從分析樹的最底層,一路合並到分析樹的根節點,就能得到所有的短語了。
通過遞歸的方法,獲取短語列表 phraseList , 直接短語列表 directPhraseList 和 素短語列表 plainPhraseList 。
運行結果: