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例分析
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 亚洲专区一区二区在线观看| 久久一本日韩精品中文字幕屁孩| 国产尤物视频在线| 波多野结衣一区二区三视频| 91麻豆精品国产91久久久久| 亚洲第一网站男人都懂| 999国内精品久久免费视频| 精品欧美视频| 国产极品美女在线| 青青草国产在线视频| 亚洲色图另类| 老色鬼久久亚洲AV综合| 91亚洲影院| 亚洲最猛黑人xxxx黑人猛交| 99久久亚洲精品影院| 国内精品九九久久久精品| 成人在线观看不卡| 国产激爽爽爽大片在线观看| 欧美第一页在线| 视频二区中文无码| 国产免费人成视频网| 伊人久久大香线蕉影院| 亚洲人成人无码www| 国产在线一区二区视频| 欧美亚洲一区二区三区在线| 日韩福利在线视频| 欧美成人精品一级在线观看| 99久久精品免费看国产免费软件| 成人伊人色一区二区三区| 亚洲视屏在线观看| 美女内射视频WWW网站午夜| 麻豆精品视频在线原创| 97超碰精品成人国产| 久久无码av三级| 国产成人1024精品下载| 在线欧美a| 日韩AV手机在线观看蜜芽| 久久性妇女精品免费| 欧美精品成人| 国产成人精品18| 午夜啪啪福利| 91po国产在线精品免费观看| 亚洲黄色视频在线观看一区| 国产精品一区在线麻豆| 久久精品无码国产一区二区三区 | 国产SUV精品一区二区| 激情成人综合网| 国内毛片视频| 蜜臀AV在线播放| 无码人中文字幕| 久久久久免费精品国产| 日韩精品久久久久久久电影蜜臀| 在线观看免费AV网| 国产成人久久综合一区| 精品国产毛片| 亚洲国产看片基地久久1024| 亚洲综合经典在线一区二区| 老司机午夜精品视频你懂的| 在线观看无码a∨| 国产成人三级| 99re免费视频| 午夜在线不卡| 国产裸舞福利在线视频合集| 国产天天射| 91区国产福利在线观看午夜| 99伊人精品| 97超碰精品成人国产| 日韩精品一区二区深田咏美| 91丝袜乱伦| 精品91视频| 国产精品无码久久久久久| 真人高潮娇喘嗯啊在线观看| 成人国产小视频| 一区二区无码在线视频| 中文国产成人精品久久| 任我操在线视频| 国产一二三区在线| 国产精品一区二区不卡的视频| 激情综合网激情综合| 久久国产精品夜色| 亚洲第一在线播放| 丰满人妻久久中文字幕|