freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

一個(gè)編譯原理語法分析器的實(shí)現(xiàn)與設(shè)計(jì)一個(gè)編譯原理語法分析器的實(shí)現(xiàn)與設(shè)計(jì)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)-閱讀頁

2024-12-19 11:23本頁面
  

【正文】 a = a 1 Exit For Case /P a = a 1 Exit For Case Else FXZ(a) = (i, j, k) a = a + 1 FXZ(a) = Empty End Select k = k + 1 Loop 4 特殊問題 及 解決方法 在程序的開發(fā)過程中,遇到的問題及解決辦法如下: 第 XI 頁 共 22 頁 Select集的求解 問題描述 在 LL( 1)分析方法中, select 集的求解至關(guān)重要,其中又涉及到 first 集和 follow 集的求解。要用計(jì)算機(jī)實(shí)現(xiàn)這一復(fù)雜的過程,對(duì)開發(fā)人員的邏輯思維能力要求甚高。 解決結(jié)果 在成功獲得 select 集后,對(duì)其進(jìn)行了輸出,結(jié)果如圖 6 所示: 圖 6 顯示 select 集 為 ListBox 添加水平滾動(dòng)條 問題描述 在 VB 中,系統(tǒng)提供的 ListBox 只有垂直滾動(dòng)條,而沒有水平滾動(dòng)條。添加的水平滾動(dòng)條的寬度也應(yīng)該能動(dòng)態(tài)的改變,以最寬的一行數(shù)據(jù)為水平滾動(dòng)條寬度的依據(jù)。代碼如下: Private Declare Function SendMessage Lib user32 Alias SendMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const LB_SETHORIZONTALEXTENT = amp。 i 的值由所輸出的最長(zhǎng)的一串字符串決定,具體獲取方法為: 添加一個(gè)自動(dòng)縮放大小的 label,將最長(zhǎng)的字符串附給其 Caption 屬性,然后取得 label 的寬度除以 15,即為 i 的值。 通過 open 對(duì)話框輸入正確的文 法(圖 8 所示),把自己想輸入的文法通過正確格式書寫在 TXT 文檔中,運(yùn)行軟件后就可以選中該文件打開運(yùn)行。 圖 11 文法分析表 第 XV 頁 共 22 頁 圖 12 句子分析過程 測(cè)試錯(cuò)誤文法 句子錯(cuò)誤有 2 種情況: 1.句子不符合文法,錯(cuò)誤提示如圖 13 所示: 圖 13 句子不符合文法( 1) 2.句子中有終結(jié)符以外的 字符,錯(cuò)誤提示如圖 14 所示: 第 XVI 頁 共 22 頁 圖 14 句子不符合文法( 2) 結(jié) 論 編譯原理是計(jì)算機(jī)專業(yè)中最難的一門課程 ,在理論上它要求學(xué)生掌握有關(guān)形勢(shì)語言和自動(dòng)機(jī)的抽象概念 ,在技術(shù)上要求學(xué)生能夠熟練地利用各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行編程。在數(shù)據(jù)的處理上我采用各模塊全數(shù)組操作,并且將最終結(jié)果通過字符串方式保存,通過字符串來向其他模塊傳送數(shù)據(jù),這種新的嘗試也讓我的程序帶有個(gè)人的風(fēng)格,讓我對(duì)編程的多樣化有了更 深的了解和認(rèn)識(shí)。 參考文獻(xiàn) [1] 錢煥延 .編譯技術(shù)第 2版 [M].南京:東南大學(xué)出版社出版, 2020。 [3] 賀世娟,陳冀川 .Visual Basic 程序設(shè)計(jì) [M].北京:中國(guó)水利水電出版社出版。 [5] 陳明 .Visual Basic教程 [M].北京: 人民郵電出版社 , 。 [7] 周峰 .Visual Basic案例開發(fā)集錦 [M].北京:電子工業(yè)出版社, 2020。在此向他表示我最衷心的感謝! 感謝同班同學(xué)在課題研究初期給予 的幫助在他們的幫助下課題才得以很好的展開,有了一個(gè)很好的開端,感謝寢室同學(xué)在測(cè)試中給予的幫助,因?yàn)樗麄兊膮f(xié)助才得以高效率的完成本課題! 在論文完成過程中,本人還得到了其他老師和許多同學(xué)的熱心幫助,本人向他們表示深深的謝意! 最后向在百忙之中評(píng)審本文的各位專家、老師表示衷心的感謝! 作者簡(jiǎn)介: 出生年月: 19821014 性別:男 Email: 民族:漢族 第 XVIII 頁 共 22 頁 聲 明 本論文的工作是 2020年 2月至 2020年 6月在成都信息工程學(xué)院 網(wǎng)絡(luò)工程 系完成的。除非另有說明,本文的工作是原始性工作。 ( 2)學(xué)??梢圆捎糜坝?、縮印或其他復(fù)制方式保存學(xué)位論文。 ( 4)學(xué)校可允許學(xué)位論文被查閱或借閱。 除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。 在編譯原理的教學(xué)過程中,算法的講解都需要對(duì)算法進(jìn)行詳細(xì)的分析,包括算法條件的判斷,文法分析表的構(gòu)造過程,文法分析表的具體生成,針對(duì)文法的句子的分析過程等,這些過程往往需要占用大量時(shí)間來分析 、制表等。 本文旨在介紹語法分析方法中的一種自上而下的分析方法 —— LL(1)分析法。 關(guān)鍵詞 :編譯;語法分析; LL(1)算法;演示 The Design and Implementation of A Syntax Analyzer based on Compilation Theory Abstract The piler generally is made up of the lexical analyzer program, the syntax analysis program, the semantics analysis program, the interlanguage production procedure, the goal code production procedure, the code optimization procedure, the form executive program and the procedure of disposing mistakes. In the teaching process of piler principle, all algorithm explanation needs to be explain clearly, including algorithm condition judgment, grammar analytical table structure process, grammar analytical table concrete production, in view of grammar sentence analysis process and so on. These processes often take much time to analyze, the scheduling and so on. This program mainly work is to plete the algorithm which take advantage of the procedure to deal with those above mentioned processes , in order to save time. The paper aims at introducing a syntax analytical method named LL(1) algorithm which from the up to down. The syntax analyzer analyzes the character string beginning from the left to right one word each time and educes the most left deduction of the sentence in the analyze course.. Key words: piler。 LL(1) algorithm。 編譯程序是現(xiàn)代計(jì)算機(jī)系統(tǒng)的基本組成部分之一。 在編譯原理的教學(xué)過程中,語法和語義分析階段關(guān)于算法的講解都需要對(duì)算法進(jìn)行詳細(xì)的分析,包括算法條件的判斷,文法分析表的構(gòu)造過程,文法分析表的具體生成,針對(duì)文法的句子的分析過程等。教學(xué)主要是對(duì)這些過程的講解和分析,沒有必要花這么多的時(shí)間來做這些工作。 《 一個(gè)編譯原理語法分析器的設(shè)計(jì)與實(shí)現(xiàn)》 ,并實(shí)現(xiàn)以 下相關(guān)操作: LL( 1)的要求 select集(其中包括 first集和 follow集的求解)并判斷 select集是否符合 LL( 1)算法的要求 select 集構(gòu)造文法分析表 語法分析 : 逐一分析詞法分析所得的屬性字,檢查其中的語法錯(cuò)誤,如果沒有發(fā)現(xiàn)語法錯(cuò)誤, 則給出正確的語法結(jié)構(gòu)。 文法 :對(duì)語言結(jié)構(gòu)的定 義和描述,即在形式上用于描述和規(guī)定語言結(jié)構(gòu)。 規(guī)則 :為一個(gè)二元組,通常格式為 U:: =x 或 U→ x;其中 U 為規(guī)則的左部,是一個(gè)符號(hào); x是規(guī)則的右部,是一貫有窮字符串。 BNF 表示法 :即巴科斯范式表示法,它引進(jìn)了符號(hào)“ |”,符號(hào)“ |”表示“或”。 第 2 頁 共 22 頁 文法 G[Z]:規(guī)則的非空有窮集合,其中 Z 為文法的 識(shí)別符號(hào) 或 開始符號(hào) ,它至少要在一條規(guī)則的左部出現(xiàn)。 非 終結(jié)符 :文法中出現(xiàn)在規(guī)則左部的符號(hào),它們組成的集合稱為非終結(jié)符集。 遞歸 :同一操作或一組操作的連續(xù)重復(fù), 其實(shí)質(zhì)上是處理過程的性質(zhì),在這種過程的每一步都要用到它自身的上一步或上幾步的結(jié)果。 直接左遞歸規(guī)則 :型如 U:: =Uy 的規(guī)則稱為直接左遞歸規(guī)則。 Follow 集 :向前看集。 LL( 1)文法 :對(duì)于文法 G( S),其每個(gè)非終結(jié)符的不同規(guī)則具有不相交的Select 集,則稱該文法為 LL( 1)文法。 或者說,從根結(jié)點(diǎn)出發(fā),自上而下地建立一顆語法樹,其未端結(jié)點(diǎn)按從左到右的順序連接起來,構(gòu)成給定的符號(hào)串,則符號(hào)串得到識(shí)別。 該解決辦法是把文法中每個(gè)非終結(jié)符號(hào) A 的右部稱為 A 的候選式,對(duì)候選式的選擇,則根據(jù)當(dāng)前輸入符號(hào)來決定。 當(dāng) ??? 時(shí),則對(duì)于當(dāng)前輸入的符號(hào) a,若有 a?First(?),則可以選用規(guī)則A::=? 進(jìn)行推導(dǎo)。 例:設(shè)有文法 G[Z],和句子 bbabaax Z::=aV|bZ V::=baZ|x Select(Z ::=aV)={a}。 Select(V ::=baZ)=。 Z? bZ? bbZ? bbaV? bbabaZ? bbabaaV?bbabaax (babaax) (abaax) (baax) (ax) (x) 對(duì)于文法,有 A::= x1|x2|? |xn,若有 First(xi) ∩ First(xj) ??(i?j),采用試探法:即從首字符中有輸入符號(hào)的多個(gè)候選式中任選一個(gè)來試探,如果不成功,就換另一個(gè)接著試。對(duì)于回溯現(xiàn)象,可以通過 “ 左提因子方法 ” 對(duì)文法進(jìn)行修改來消除。 遞歸子程序及其調(diào)用: 常用的子程序的種類有 3 種: 簡(jiǎn)單子程序, 嵌套子程序, 遞歸子程序。 ,不得隨意公用。方法是在內(nèi)存中開辟一個(gè)保護(hù)棧,每次 進(jìn)入遞歸子程序時(shí),就把當(dāng)前返回地址送入保護(hù)棧,相應(yīng)地,每次退出遞歸子程序時(shí),就取棧頂?shù)姆祷氐刂纷鳛槠浞祷氐刂贰? 遞歸子程序調(diào)用時(shí),入口與出口的工作: (1)遞歸入口工作: ①當(dāng)前返回地址送保護(hù)棧; ②遞歸子程序中(調(diào)用程序)不允許被破壞的工作單元內(nèi)容送保護(hù)棧。 LL( K)分析方法 LL(K)分析方法是一種自頂向下 的分析技術(shù)。 當(dāng) K=1 時(shí),既是 LL( 1)分析方法。根據(jù)輸入串向前的 1個(gè)符號(hào)來確定推導(dǎo)規(guī)則時(shí),就是 LL( 1)方法。 (1)分析過程 假設(shè)分析過程中當(dāng)前句型的右端部分為: x1x2? xm, (xi?V) 輸入流(待分析串)的右端部分為: y1y2? yn, (yi?Vt) 此時(shí)有以下 3 種情況: (1)當(dāng) x1?Vn,則根據(jù)當(dāng)前輸入符號(hào) y1 選擇相應(yīng)的規(guī)則去替換 x1。 (3)若上述兩個(gè)字符串均為空,則表示全部匹配,輸入串被識(shí)別。然后再把相應(yīng)的規(guī)則逆向壓入棧頂,替換原棧頂?shù)姆墙K結(jié)符。如果分析棧中的元素為 A,輸入元素為 a,則其匹配關(guān)系記為 LL(A,a) LL(1)分析矩陣:一種用來反映這種匹配關(guān)系的矩陣表示,該矩陣 稱為 LL(1)分析矩陣。 構(gòu)造 LL(1)分析表的方法如下: A::=a?, (a?Vt),則 令 LL(A,a)=R(?)/N # a1 a2 a3 … a i … a m 控制器 分析表 Xn1 …… .. x1 第 6 頁 共 22 頁
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1