青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

loop_in_codes

低調(diào)做技術(shù)__歡迎移步我的獨立博客 codemaro.com 微博 kevinlynx

[總結(jié)]LL(1)分析法及其實現(xiàn)

LL(1)分析法和遞歸下降分析法同屬于自頂向下分析法。相對于遞歸下降而言,LL通過顯示
地維護一個棧來進行語法分析,遞歸下降則是利用了函數(shù)調(diào)用棧。

LL分析法主要由分析棧、分析表和一個驅(qū)動算法組成。其實LL的分析算法還是很容易懂的,
主要就是一個匹配替換的過程。而要構(gòu)造這里的分析表,則還涉及計算first集和follow集
的算法。

1

個人覺得龍書在解釋這些算法和概念時都非常清楚細致,雖然也有人說它很晦澀。

first集和follow集的計算,拋開書上給的嚴密算法,用人的思維去理解(對于compiler
compiler則需要用程序去構(gòu)造這些集合,這是讓計算機去理解),其實很簡單:

1、對于某個非終結(jié)符A的first集(first(A)),簡單地說就是由A推導得到的串的首符號的
集合:A->aB,那么這里的a就屬于first(A),很形象。
2、follow(A),則是緊隨A的終結(jié)符號集合,例如B->Aa,這里的a就屬于follow(A),也很形
象。

當然,因為文法符號中有epsilon,所以在計算上面兩個集合時則會涉及到一種傳遞性。例
如,A->Bc, B->epsilon,B可以推導出epsilon,也就是基本等同于沒有,那么first(A)中
就會包含c符號。

在了解了first集和follow集的計算方法后,則可以通過另一些規(guī)則構(gòu)造出LL需要的分析表。

編譯原理里總有很多很多的理論和算法。但正是這些理論和算法,使得編譯器的實現(xiàn)變得簡
單,代碼易維護。

在某個特定的編程語言中,因為其文法一定,所以對于其LL(1)實現(xiàn)中的分析表就是確定的
。我們也不需要在程序里動態(tài)構(gòu)造first和follow集合。

那么,要實現(xiàn)一個LL(1)分析法,大致步驟就集中于:設(shè)計文法->建立該文法的分析表->編
碼。

LL分析法是不能處理左遞歸文法的,例如:expr->expr + term,因為左遞歸文法會讓對應
的分析表里某一項存在多個候選式。這里,又會涉及到消除左遞歸的方法。這個方法也很簡
單,只需要把文法推導式代入如下的公式即可:

A -> AB | C 等價于:A -> CX, X -> BX | epsilon

最后一個問題是,如何在LL分析過程中建立抽象語法樹呢?雖然這里的LL分析法可以檢查文
法對應的語言是否合法有效,但是似乎還不能做任何有意義的事情。這個問題歸結(jié)于語法制
導翻譯,一般在編譯原理教程中語法分析后的章節(jié)里。

LL分析法最大的悲劇在于將一棵在人看來清晰直白的語法樹分割了。在遞歸下降分析法中,
一個樹節(jié)點所需要的屬性(例如算術(shù)運算符所需要的操作數(shù))可以直接由其子節(jié)點得到。但
是,在為了消除左遞歸而改變了的文法式子中,一個節(jié)點所需要的屬性可能跑到其兄弟節(jié)點
或者父節(jié)點中去了。貌似這里可以參考“繼承屬性”概念。

不過,綜合而言,我們有很多業(yè)余的手段來處理這種問題,例如建立屬性堆棧。具體來說,
例如對于例子代碼中計算算術(shù)表達式,就可以把表達式中的數(shù)放到一個棧里。

例子中,通過在文法表達式中插入動作符號來標識一個操作。例如對于文法:
expr2->addop term expr2,則可以改為:expr2->addop term # expr2。當發(fā)現(xiàn)分析棧的棧
頂元素是'#'時,則在屬性堆棧里取出操作數(shù)做計算。例子中還將操作符壓入了堆棧。

下載例子,例子代碼最好對照arith_expr.txt中寫的文法和分析表來看。

PS,最近在云風博客中看到他給的一句評論,我覺得很有道理,并且延伸開來可以說明我們
周圍的很多現(xiàn)象:

”很多東西,意識不到問題比找不到解決方法要嚴重很多。比如one-pass 這個,覺得實現(xiàn)
麻煩不去實現(xiàn),和覺得實現(xiàn)沒有意義不去實現(xiàn)就是不同的。“

對于以下現(xiàn)象,這句話都可以指明問題:
1、認為造輪子沒有意義,從不考慮自己是否能造出;
2、常告訴別人某個技術(shù)復雜晦澀不利于團隊使用,卻并不懂這個技術(shù);
3、籠統(tǒng)來說,【覺得】太多東西沒有意義,雖然并不真正懂這個東西。

posted on 2010-03-15 21:33 Kevin Lynx 閱讀(9688) 評論(2)  編輯 收藏 引用 所屬分類: 編譯原理

評論

# re: [總結(jié)]LL(1)分析法及其實現(xiàn)[未登錄] 2010-03-16 08:17 ~

籠統(tǒng)來說,【覺得】太多東西沒有意義,雖然并不真正懂這個東西!  回復  更多評論   

# re: [總結(jié)]LL(1)分析法及其實現(xiàn) 2010-05-17 15:08 路過

3、籠統(tǒng)來說,【覺得】太多東西沒有意義,雖然并不真正懂這個東西。


1、認為造輪子沒有意義,從不考慮自己是否能造出;
這個比喻很失水準。應該為不知道輪子有什么用  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲伊人一本大道中文字幕| 亚洲私人黄色宅男| 免费成人av在线看| 亚洲自拍偷拍视频| 欧美中在线观看| 久久精品国产清自在天天线| 欧美一区午夜视频在线观看| 欧美专区在线| 欧美v日韩v国产v| 欧美日本一区| 国产精品视频男人的天堂| 国产一区二区三区久久| 在线观看免费视频综合| 亚洲国产婷婷| 亚洲欧美韩国| 免费观看30秒视频久久| 日韩午夜av电影| 欧美一区二区三区在线播放| 欧美 日韩 国产精品免费观看| 欧美屁股在线| 国内揄拍国内精品久久| 99re6这里只有精品| 亚洲激情偷拍| 亚洲精品视频在线播放| 99riav1国产精品视频| 先锋亚洲精品| 亚洲国产精品精华液网站| 亚洲精品一二三| 欧美在线黄色| 欧美理论在线| 在线观看亚洲专区| 亚洲欧美色一区| 亚洲成色777777女色窝| 性感少妇一区| 欧美日韩国内| 91久久精品日日躁夜夜躁国产| 午夜精彩视频在线观看不卡 | 国产精品免费在线| 在线观看视频欧美| 久久av资源网| 亚洲视频日本| 欧美伦理91i| 亚洲国产精品va在看黑人| 亚洲欧美制服另类日韩| 亚洲伦理在线观看| 久久久久九九九九| 国产区精品在线观看| 一本色道久久88综合亚洲精品ⅰ| 裸体歌舞表演一区二区| 午夜精品久久久久久久99水蜜桃| 欧美激情一二三区| 亚洲国产一区二区三区在线播| 午夜精品视频在线| 99视频有精品| 欧美日韩国产精品专区| 亚洲精品久久7777| 欧美激情亚洲一区| 久久综合伊人77777蜜臀| 伊人春色精品| 另类亚洲自拍| 美腿丝袜亚洲色图| 亚洲国产精品精华液2区45 | 日韩一级精品| 欧美日韩国产电影| 亚洲天天影视| 99国产精品一区| 欧美日韩中文在线| 亚洲在线电影| 亚洲线精品一区二区三区八戒| 国产精品扒开腿做爽爽爽视频 | 亚洲性线免费观看视频成熟| 国产精品久久久久久久久久久久久久 | 欧美xxxx在线观看| 欧美久久婷婷综合色| 日韩视频免费大全中文字幕| 免费国产自线拍一欧美视频| 美女视频网站黄色亚洲| 亚洲黄色在线观看| 亚洲国产精品www| 欧美成人资源| 亚洲一区二区三区成人在线视频精品| 一区二区三区免费在线观看| 国产精品久久久久久福利一牛影视| 亚洲一区二区三区视频| 亚洲男人的天堂在线aⅴ视频| 国产精品系列在线播放| 久久久久9999亚洲精品| 久久综合九色99| 中文网丁香综合网| 欧美在线观看一二区| 亚洲精品韩国| 一区二区三区鲁丝不卡| 国产精品影片在线观看| 免费h精品视频在线播放| 欧美激情国产日韩| 性欧美1819sex性高清| 久久看片网站| 一本色道久久精品| 午夜精品999| 亚洲区免费影片| 亚洲——在线| 91久久夜色精品国产九色| 亚洲精品一区在线| 国产一区日韩欧美| 亚洲欧美日韩在线播放| 欧美一二区视频| 亚洲精品乱码视频| 欧美一站二站| 亚洲亚洲精品在线观看| 久久三级福利| 欧美影院视频| 欧美日韩三级| 裸体丰满少妇做受久久99精品| 欧美日韩国产小视频在线观看| 久久综合久久综合久久综合| 欧美久久九九| 欧美成人一区二区三区| 国产精品一区在线播放| 这里只有精品丝袜| 久久综合精品国产一区二区三区| 午夜精品一区二区三区电影天堂| 欧美91福利在线观看| 久久亚洲风情| 国产日韩一区二区三区在线播放| 亚洲激情图片小说视频| 亚洲第一黄色网| 久久久亚洲精品一区二区三区| 午夜精品一区二区三区四区| 欧美日韩在线播放一区二区| 欧美电影在线观看| 亚洲国产日韩一级| 久久爱91午夜羞羞| 久久国产色av| 国产美女诱惑一区二区| 亚洲第一精品久久忘忧草社区| 亚洲日本激情| 亚洲丰满在线| 久久免费精品视频| 麻豆久久婷婷| 狠狠入ady亚洲精品| 久久国产综合精品| 久久精品噜噜噜成人av农村| 国产女优一区| 欧美一区二区高清在线观看| 欧美在线播放一区| 国产一区二区黄色| 久久精品国产亚洲高清剧情介绍| 久久精品免费播放| 国内精品免费在线观看| 久久精品导航| 欧美成年人网站| 最新中文字幕亚洲| 欧美日韩国产影院| 亚洲小视频在线观看| 久久国产精品99久久久久久老狼 | 欧美激情免费观看| 亚洲国产成人在线视频| 99国产精品视频免费观看一公开| 亚洲美女毛片| 欧美伊人久久| 韩日视频一区| 欧美精品国产| 亚洲一区二区三区在线看| 欧美在线视频一区二区| 在线日韩精品视频| 欧美激情精品久久久久久黑人 | 久久精品一区二区三区不卡| 国产日产欧美精品| 久久在线免费视频| 99国产精品久久久久久久成人热| 午夜精品亚洲| 亚洲国产精品成人综合色在线婷婷| 欧美α欧美αv大片| 亚洲婷婷免费| 美腿丝袜亚洲色图| 亚洲视频中文字幕| 国内精品久久久久久久影视蜜臀| 免费在线观看日韩欧美| 久久精品成人| 欧美日韩在线视频首页| 欧美国产91| 亚洲综合色在线| 1000部国产精品成人观看| 欧美日韩国产小视频在线观看| 亚洲欧美日韩中文视频| 亚洲第一页中文字幕| 午夜精品国产更新| 亚洲国内自拍| 国产亚洲欧美一区二区三区| 欧美www视频在线观看| 午夜精品久久久久久久| 91久久中文字幕| 久久人人爽人人爽| 亚洲一区二区三区视频播放| 1024亚洲| 狠狠久久亚洲欧美专区| 国产精品羞羞答答| 欧美精品自拍| 久久久国产成人精品| 午夜精品99久久免费|