999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java的遞歸下降語法分析器的實現

2020-09-10 07:22:44劉楊
客聯 2020年7期
關鍵詞:程序分析

劉楊

【摘 要】遞歸下降分析是設計LL(1)文法的自上而下語法分析的一種思路。相對于其他的語法分析構造方法,這一邏輯簡單明了,易于用代碼實現。只不過,作為自上而下的分析方法,在編寫代碼前,要確保所分析的文法是不含左遞歸并且是消除回溯的。

本文將先后介紹LL(1)文法的成立條件和遞歸下降分析器的設計邏輯,最后給出程序的關鍵代碼段示例。

【關鍵詞】編譯原理;語法分析;自上而下分析;遞歸下降;LL(1)分析

一、LL(1)文法

這里,首先給出LL(1)文法的三個成立條件:

1)文法中不含有左遞歸;

2)對文法中任意一個非終結符的各個產生式的候選的FIRST集兩兩不相交;

3)對文法中每個非終結符A,若其某個產生式的FIRST集合含有ε,則需要FIRST(A)與FOLLOW(A)不相交。

消除左遞歸是直接在文法結構上做修改,防止產生式右部最終推導回到了原來產生式左部的非終結符。

上述第2個條件是為了消除大部分回溯。在面臨單個字符時,同一個終結符的不同產生式可能都可以初步接受(FIRST集合有重合部分),但是正確結果往往只有一個;而想發現錯誤也往往要把該條產生式的路徑走到底,這就造成程序可能要不斷地“碰壁”而從頭開始重新掃描輸入,造成大量不必要的開銷。但是,只要同一個非終結符的每個產生式FIRST集不相交,導致各個產生式識別初步接受的字符集合是獨立的,相對唯一的,那么識別字串的路徑就能保證是唯一的。

上述第3個條件,是為了解決和ε產生式有關的回溯問題。掃描輸入串的過程中,當某一個字符不能被當前產生式直接識別,如果該產生式對應的非終結符有ε產生式,那么可以考慮使用ε暫時作為識別結果,使得程序能夠向后判斷產生式是否匹配。使用ε產生式的條件是,當前字符必須在當前非終結符的后繼/后隨終結符集中出現過,也就是其FOLLOW集。

二、遞歸下降分析器的設計

遞歸下降,就是自上而下語法分分析的主要思想。遞歸下降分析器專指的是實現LL(1)分析的程序。這樣的程序,由一組遞歸的過程組成,其中每一個遞歸過程代表著文法的一個非終結符。也就是程序結構與文法的產生式結構緊密相連,這也是該程序易于構造的重要原因。執行的過程類似于數據結構中對二叉樹的從左到右的深度優先遍歷。下面我們以文法G為設計對象:

G:

E→TE'

E'→+TE'| -TE' |ε

T→FT'

T'→*FT'| /FT' |ε

F→(E) | id |num

可以得到各非終結符的FIRST集和FOLLOW集:

FIRST(E) = {(, id, num};FIRST(E') = {+, -, ε};FIRST(T) = {(, id, num}

FIRST(T') = {*, /, ε};FIRST(F) = {(, id, num}

FOLLOW(E) = {), #};FOLLOW(E') = {id, num};FOLLOW(T) = {id, num}

FOLLOW(T') = {id, num};FOLLOW(F) = {id, num}

上述文法明顯滿足了LL(1)條件。

三、代碼段分析

以下以產生式E→TE’為例展示遞歸過程;E’、T’等使用E2、T2表示。

(一)遞歸的開始

(二)執行到E中的T和E’

(三)執行到F和T’

【參考文獻】

[1] 陳火旺,等.程序設計語言編譯原理(第3版)[M].北京:國防工業出版社,2006: 68-76

[2] [美] Andrew W.Appel.現代編譯原理[M].趙克佳,等,譯.北京:人民郵電出版社, 2006: 36-37

猜你喜歡
程序分析
隱蔽失效適航要求符合性驗證分析
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
電力系統及其自動化發展趨勢分析
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
中西醫結合治療抑郁癥100例分析
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 中文字幕av无码不卡免费| 青青青亚洲精品国产| 波多野结衣一区二区三区88| 欧美日韩国产精品综合| 午夜激情福利视频| 26uuu国产精品视频| 国产在线高清一级毛片| 2020国产免费久久精品99| 亚洲av无码专区久久蜜芽| 91啪在线| 激情无码字幕综合| 18禁色诱爆乳网站| 色综合成人| 精品1区2区3区| 国产真实乱子伦视频播放| 免费a级毛片视频| 一本大道香蕉高清久久| 黄色在线网| 国产亚洲欧美日韩在线观看一区二区| 波多野结衣中文字幕一区二区| 亚洲综合色婷婷| 久久久久久久久18禁秘| 亚洲天堂自拍| 国产肉感大码AV无码| 亚洲一区无码在线| 伊人91视频| 亚洲愉拍一区二区精品| 在线观看国产精美视频| 亚洲激情99| 国产SUV精品一区二区6| 免费一级α片在线观看| 婷婷综合亚洲| 亚洲国产中文在线二区三区免| 久久国产V一级毛多内射| 国产91成人| 激情影院内射美女| 激情综合网址| 亚洲a级在线观看| 青青青视频免费一区二区| AV不卡国产在线观看| 久久综合一个色综合网| 毛片久久网站小视频| 青青草一区| 无码'专区第一页| 欧美三级自拍| 欧美狠狠干| 欧美午夜网| 成人午夜精品一级毛片| 国产在线精彩视频论坛| 美臀人妻中出中文字幕在线| 国产精选自拍| 夜夜操天天摸| 综合久久久久久久综合网| 992tv国产人成在线观看| 无码中字出轨中文人妻中文中| 在线日韩一区二区| 欧美日本在线| 日韩精品一区二区深田咏美| 亚洲成人一区二区三区| 免费a在线观看播放| 伊人成人在线| 国产成人盗摄精品| 一区二区三区国产精品视频| 亚洲精品动漫在线观看| 欧美福利在线| 亚洲大学生视频在线播放| 毛片在线播放a| 91福利片| 亚洲欧美国产高清va在线播放| 少妇高潮惨叫久久久久久| 亚洲日韩AV无码精品| 亚洲无码A视频在线| 久久久久久久蜜桃| 天堂av高清一区二区三区| 成人综合网址| 无码中文字幕精品推荐| 国产精品福利一区二区久久| 亚洲毛片一级带毛片基地| 波多野结衣无码中文字幕在线观看一区二区 | 手机在线免费毛片| 亚洲,国产,日韩,综合一区 | 色天天综合|