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

loop_in_codes

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

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

LL(1)分析法和遞歸下降分析法同屬于自頂向下分析法。相對(duì)于遞歸下降而言,LL通過(guò)顯示
地維護(hù)一個(gè)棧來(lái)進(jìn)行語(yǔ)法分析,遞歸下降則是利用了函數(shù)調(diào)用棧。

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

1

個(gè)人覺(jué)得龍書(shū)在解釋這些算法和概念時(shí)都非常清楚細(xì)致,雖然也有人說(shuō)它很晦澀。

first集和follow集的計(jì)算,拋開(kāi)書(shū)上給的嚴(yán)密算法,用人的思維去理解(對(duì)于compiler
compiler則需要用程序去構(gòu)造這些集合,這是讓計(jì)算機(jī)去理解),其實(shí)很簡(jiǎn)單:

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

當(dāng)然,因?yàn)槲姆ǚ?hào)中有epsilon,所以在計(jì)算上面兩個(gè)集合時(shí)則會(huì)涉及到一種傳遞性。例
如,A->Bc, B->epsilon,B可以推導(dǎo)出epsilon,也就是基本等同于沒(méi)有,那么first(A)中
就會(huì)包含c符號(hào)。

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

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

在某個(gè)特定的編程語(yǔ)言中,因?yàn)槠湮姆ㄒ欢?,所以?duì)于其LL(1)實(shí)現(xiàn)中的分析表就是確定的
。我們也不需要在程序里動(dòng)態(tài)構(gòu)造first和follow集合。

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

LL分析法是不能處理左遞歸文法的,例如:expr->expr + term,因?yàn)樽筮f歸文法會(huì)讓對(duì)應(yīng)
的分析表里某一項(xiàng)存在多個(gè)候選式。這里,又會(huì)涉及到消除左遞歸的方法。這個(gè)方法也很簡(jiǎn)
單,只需要把文法推導(dǎo)式代入如下的公式即可:

A -> AB | C 等價(jià)于:A -> CX, X -> BX | epsilon

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

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

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

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

下載例子,例子代碼最好對(duì)照arith_expr.txt中寫(xiě)的文法和分析表來(lái)看。

PS,最近在云風(fēng)博客中看到他給的一句評(píng)論,我覺(jué)得很有道理,并且延伸開(kāi)來(lái)可以說(shuō)明我們
周?chē)暮芏喱F(xiàn)象:

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

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

posted on 2010-03-15 21:33 Kevin Lynx 閱讀(9689) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): 編譯原理

評(píng)論

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

籠統(tǒng)來(lái)說(shuō),【覺(jué)得】太多東西沒(méi)有意義,雖然并不真正懂這個(gè)東西!  回復(fù)  更多評(píng)論   

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

3、籠統(tǒng)來(lái)說(shuō),【覺(jué)得】太多東西沒(méi)有意義,雖然并不真正懂這個(gè)東西。


1、認(rèn)為造輪子沒(méi)有意義,從不考慮自己是否能造出;
這個(gè)比喻很失水準(zhǔn)。應(yīng)該為不知道輪子有什么用  回復(fù)  更多評(píng)論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美激情亚洲综合一区| 久久久久久噜噜噜久久久精品| 欧美精品久久一区二区| 母乳一区在线观看| 美女精品网站| 欧美电影在线观看| 欧美精品久久久久久久| 欧美性jizz18性欧美| 国产精品久久久久久久浪潮网站| 欧美黑人一区二区三区| 狠狠色丁香久久婷婷综合丁香| 国产精品五月天| 韩国精品在线观看| 亚洲日本久久| 亚洲欧美三级伦理| 狼人天天伊人久久| 欧美成人综合| 99re6热在线精品视频播放速度 | 欧美激情第10页| 欧美精品v国产精品v日韩精品| 久久成人精品| 老色批av在线精品| 亚洲黄色成人| 亚洲亚洲精品在线观看 | 欧美成人在线影院| 国产精品久久久久久久久久久久| 国产在线麻豆精品观看| 99精品视频免费观看| 久久久久99| 一区二区三区www| 久久网站热最新地址| 欧美午夜影院| 亚洲精品乱码久久久久久久久 | 久久久久久久欧美精品| 欧美视频在线看| 91久久在线| 久久午夜视频| 亚洲综合成人在线| 欧美日韩第一区| 影音先锋亚洲视频| 亚洲欧美日韩一区二区在线 | 久久riav二区三区| 久久久国产精品一区二区中文| 欧美日韩午夜视频在线观看| 禁断一区二区三区在线| 午夜精彩视频在线观看不卡| 亚洲国产精品成人久久综合一区| 午夜久久久久久| 欧美精品播放| 99这里只有精品| 免费av成人在线| 国产毛片久久| 亚洲欧美日韩国产成人| 亚洲国产成人在线视频| 欧美一区二视频| 国产日韩欧美a| 亚洲欧美日韩国产另类专区| 国产精品欧美久久久久无广告| 老鸭窝91久久精品色噜噜导演| 国产日韩精品在线播放| 亚洲在线观看视频网站| 亚洲毛片在线观看| 欧美日韩ab| 亚洲精品国产精品国自产在线| 噜噜爱69成人精品| 午夜一区二区三区在线观看| 国产精品成人一区二区网站软件| 亚洲精品久久久久久久久久久久| 欧美国产日韩亚洲一区| 免费成人高清视频| 国语自产精品视频在线看8查询8| 午夜精品视频在线观看| 亚洲永久在线| 国产欧美日韩一区| 欧美制服丝袜第一页| 午夜精品福利在线观看| 国产婷婷色一区二区三区在线| 久久er精品视频| 久久久精品国产一区二区三区| 国产亚洲激情| 免费的成人av| 欧美日韩一区二区三区免费看| 亚洲欧美网站| 久久久久国内| 亚洲久久一区二区| 亚洲视频在线观看一区| 国内久久视频| 亚洲精品在线视频| 国产伦精品一区二区三区照片91| 久久精品国产91精品亚洲| 欧美一区二区三区免费观看视频| 在线观看免费视频综合| 夜夜嗨av一区二区三区四区| 国产精品网站在线播放| 久久久www| 欧美精品一区二| 久久激情五月丁香伊人| 免费欧美电影| 欧美一区二区三区日韩视频| 乱码第一页成人| 欧美一区二区三区四区视频 | 亚洲欧美日韩人成在线播放| 国产亚洲精品久久久久动| 美女国产一区| 国产精品日韩高清| 亚洲第一福利在线观看| 国产精品国产馆在线真实露脸| 玖玖玖国产精品| 国产精品久久7| 欧美成人蜜桃| 国产精品视频导航| 欧美国产一区二区| 国产精品天天看| 亚洲免费精彩视频| 国产视频一区在线| 日韩视频在线观看| 在线观看国产精品网站| 一区二区三区四区国产精品| 久久久久在线观看| 国产精品你懂的在线| 欧美成人嫩草网站| 国产精品女主播在线观看| 最新国产成人av网站网址麻豆| 国产精品九九| 欧美国产精品劲爆| 国产一区二区中文字幕免费看| 夜夜嗨一区二区三区| 亚洲欧洲一区二区在线播放| 欧美一区二区黄| 亚洲欧美国内爽妇网| 欧美日韩1080p| 亚洲国产高清aⅴ视频| 国产日韩欧美中文| 午夜精品亚洲| 欧美一区二区三区啪啪| 欧美日韩一区二区免费在线观看 | 国产欧美精品日韩精品| 亚洲日本免费电影| 亚洲国产人成综合网站| 久久精品盗摄| 久久蜜臀精品av| 国产精品无码永久免费888| 中文日韩电影网站| 亚洲综合激情| 欧美连裤袜在线视频| 亚洲国产欧美一区二区三区丁香婷 | 久久久久欧美精品| 国产精品自拍网站| 国产精品99久久不卡二区| 亚洲小视频在线观看| 欧美日韩精品系列| 日韩一二三区视频| 亚洲一区二区在线视频| 欧美午夜不卡视频| 亚洲无限av看| 午夜精品一区二区三区四区 | 亚洲国产高潮在线观看| 久久影视三级福利片| 欧美激情第3页| 亚洲美女av黄| 国产精品mv在线观看| 一区二区三区精品| 羞羞漫画18久久大片| 国产一二三精品| 久久免费观看视频| 亚洲精品久久久久久下一站 | 欧美色图天堂网| 亚洲一区二区三区四区在线观看| 亚洲影院高清在线| 国产一区二区日韩| 欧美国产91| 亚洲欧美国内爽妇网| 久久婷婷激情| 一区二区三区av| 国产亚洲精品高潮| 欧美精品在线观看一区二区| 亚洲一区欧美一区| 欧美激情一区二区三区不卡| 亚洲免费视频观看| 91久久精品一区二区别| 在线看欧美日韩| 欧美日韩在线播放一区| 午夜精品www| 亚洲精品视频在线| 久久嫩草精品久久久久| 日韩一级成人av| 狠狠狠色丁香婷婷综合激情| 欧美三日本三级三级在线播放| 久久精品一区二区三区中文字幕 | 国产精品国产三级国产aⅴ浪潮| 久久高清免费观看| 一区二区三区视频在线观看| 欧美国产亚洲精品久久久8v| 欧美在线精品一区| 亚洲一卡二卡三卡四卡五卡| 最新亚洲视频| 亚洲国产精品成人综合| 国产性天天综合网| 国产精品久久久久久久久久免费看| 欧美91福利在线观看|