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

正文內(nèi)容

編譯原理形式語(yǔ)言題答案(編輯修改稿)

2024-10-22 14:01 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 uan,cs,,他們分別是Lexical類聲明文件、Lexical類實(shí)現(xiàn)文件、Grammer類聲明文件、Grammer類實(shí)現(xiàn)文件。[在此處鍵入]程序流程在程序中,Lexical類的對(duì)象(Token)作為Grammer類中的一個(gè)成員變量,配合Grammer類進(jìn)行語(yǔ)法分析。它們的關(guān)系是這樣的:Grammer類的一個(gè)成員變量temp首先對(duì)源程序刪除注釋,然后進(jìn)行詞法分析獲取所有Token,并將獲取的Token存儲(chǔ)在Token對(duì)象的tokenList(List類型)中。然后Grammer類的語(yǔ)法分析程序就根據(jù)tokenList中的Token進(jìn)行語(yǔ)法分析,生成語(yǔ)法樹(shù),最后打印語(yǔ)法樹(shù)。同時(shí),這也是程序的流程。[在此處鍵入] 詞法分析模塊 Lexical類主要的工作是詞法分析獲取Token序列。詞法分析階段的代碼被封裝成一個(gè)類——Lexical,Token中主要是Lexical類的聲明代碼。Lexical類對(duì)外提供的函數(shù)主要有:static public int RecogId(string str, int i),static public int RecogDig(string str,int i),static public int RecogOperator(string str, int i),static public int RecogBound(string str, int i),以上幾個(gè)函數(shù)構(gòu)成了詞法分析的骨架,在Lexical類中還有其他成員變量和函數(shù),主要作為這三個(gè)函數(shù)處理過(guò)程的中間步驟,為這三個(gè)函數(shù)服務(wù)。Lexical類的代碼結(jié)構(gòu)和主要的成員變量和函數(shù)及其含義如下圖所示:算法的基本任務(wù)是從字符串表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào),其基本思想是[在此處鍵入]根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的種類,拼出相應(yīng)的單詞符號(hào)。主程序示意圖:主程序示意圖如圖31所示。⑴ 關(guān)鍵字表的初值。關(guān)鍵字作為特殊標(biāo)識(shí)符處理,把它們預(yù)先安排在一張表格中(稱為關(guān)鍵字表),當(dāng)掃描程序識(shí)別出標(biāo)識(shí)符時(shí),查關(guān)鍵字表。如能查到匹配的單詞,則該單詞為關(guān)鍵字,否則為一般標(biāo)識(shí)符。(2)程序中需要用到的主要變量為type和number 掃描子程序的算法思想:首先設(shè)置3個(gè)變量: [在此處鍵入]①token用來(lái)存放構(gòu)成單詞符號(hào)的字符串; ②number用來(lái)整型單詞;③type用來(lái)存放單詞符號(hào)的種別碼。Token定義Token定義:Token類型(TokenType): 語(yǔ)法分析模塊語(yǔ)法分析是編譯過(guò)程的一個(gè)邏輯階段。語(yǔ)法分析的功能是在詞法分析的基礎(chǔ)上將單詞序列組合成各類語(yǔ)法短語(yǔ),如“程序”,“語(yǔ)句”,“表達(dá)式” 數(shù)據(jù)結(jié)構(gòu)下圖為實(shí)現(xiàn)語(yǔ)法分析的類Grammar,屬性與方法的作用都已說(shuō)明 在此處鍵入]下面終結(jié)符與非終結(jié)符意義B程序開(kāi)始Z 數(shù)據(jù)類型,如int,char,float等V 標(biāo)識(shí)符S 語(yǔ)句P 語(yǔ)句塊E 加減算術(shù)表達(dá)式D 逗號(hào)表達(dá)式T 乘除算術(shù)表達(dá)式C 關(guān)系表達(dá)式L 邏輯表達(dá)式Q 標(biāo)識(shí)符或圓括號(hào)e 表示空i 表示標(biāo)識(shí)符 a)函數(shù)文法BZV()S[[在此處鍵入]b)語(yǔ)句塊文法PSP|eS{P} c)語(yǔ)句文法表達(dá)式語(yǔ)句文法SV=Egoto語(yǔ)句文法Si:SSgoto iif語(yǔ)句文法Sif(E)S[else S]while語(yǔ)句文法Swhile(E)S聲明語(yǔ)句文法SZVDD,VD|=ED|e d)表達(dá)式文法ET|E+T|ETTF|T*F|T/FCC|CL|C==C|C=LLQ|Lamp。amp。Q|L||i|(E)|!Q對(duì)應(yīng)于每個(gè)文法編寫(xiě)如下遞歸下降子程序主程序(B)[在此處鍵入] [在此處鍵入] 符號(hào)表模塊進(jìn)行符號(hào)表的儲(chǔ)存,添加,更新,查找,保存標(biāo)識(shí)符活躍信息以及輸出。 數(shù)據(jù)結(jié)構(gòu)在此處鍵入] 四元式模塊四元式為中間代碼,編譯程序進(jìn)行完語(yǔ)義分析后,先生成中間代碼作為過(guò)渡,此時(shí)中間代碼與目標(biāo)代碼已經(jīng)比較相似 數(shù)據(jù)結(jié)構(gòu)[ 在此處鍵入]在語(yǔ)法分析中嵌入相應(yīng)的語(yǔ)義動(dòng)作,生成四元式 數(shù)據(jù)結(jié)構(gòu)[[在此處鍵入] GEQ(+)()(*)(/)(+,i1,i2,t)PUSH(i)ASSI(=)(=,t,_,POP)LABER(i)(lb,_,_,i)GOTO(i)(gt,_,_,i)IF(if)(if,a,_,_)EL(el)(el,_,_,_)IE(ie)(ie,_,_,_)WH()(wh,_,_,_)DO()(do,a,_,_)WE(we)(we,_,_,_) 錯(cuò)誤處理模塊 保存運(yùn)行時(shí)發(fā)現(xiàn)的錯(cuò)誤,儲(chǔ)存行號(hào)已經(jīng)詳細(xì)信息并輸出。 數(shù)據(jù)結(jié)構(gòu) [在此處鍵入]public static void AddErrorMessage(int lineno,string content)函數(shù)用作在發(fā)現(xiàn)錯(cuò)誤時(shí)保存錯(cuò)誤信息以及行號(hào)。public static string PrintErrorList()把所有發(fā)現(xiàn)的錯(cuò)誤格式化后統(tǒng)一輸出。錯(cuò)誤信息在語(yǔ)法分析,語(yǔ)義分析,符號(hào)表檢錯(cuò)中添加。 目標(biāo)代碼模塊目標(biāo)代碼生成把優(yōu)化后的中間代碼變換成目標(biāo)代碼,此處的目標(biāo)代碼為匯編代碼,采用單寄存器生成目標(biāo)代碼 數(shù)據(jù)結(jié)構(gòu)[在此處鍵入]對(duì)于一個(gè)基本塊有如下流程圖W:操作符,B:第一操作數(shù),C:第二操作數(shù),R:寄存器網(wǎng)上找一段話抄上 [在此處鍵入]測(cè)試打開(kāi)文件測(cè)試保存文件如果沒(méi)打開(kāi)文件,直接敲代碼,點(diǎn)保存時(shí)會(huì)彈出另存為窗口[在此處鍵入]測(cè)試錯(cuò)誤檢測(cè),程序缺少main函數(shù)的類型,錯(cuò)誤列表中顯示第一行函數(shù)缺少錯(cuò)誤類型。測(cè)試錯(cuò)誤檢測(cè),程序缺少分號(hào),錯(cuò)誤列表中顯示該行缺少語(yǔ)句結(jié)束標(biāo)志39。39。 單擊錯(cuò)誤列表,會(huì)自動(dòng)選定錯(cuò)誤行編譯成功,生成并顯示token串、符號(hào)表、四元式與目標(biāo)代碼 [在此處鍵入]測(cè)試if與while語(yǔ)句,而且while嵌套在if當(dāng)中測(cè)試goto語(yǔ)句,結(jié)果正確。[在此處鍵入]測(cè)試優(yōu)化,輸入課件中的代碼,結(jié)果與課件一樣。陳火旺.《程序設(shè)計(jì)語(yǔ)言編譯原理》(第3版).北京:、美 Alfred Ravi Sethi Jeffrey ,姜守旭譯.《編譯原理》.24 [在此處鍵入]北京:、美 Kenneth .《編譯原理及實(shí)踐》.北京:、金成植著.《編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)》.北京:、體會(huì)和建議。直接拷貝好歹也檢查一下錯(cuò)誤對(duì)于編譯原理的這次課程設(shè)計(jì),自己經(jīng)歷了從剛開(kāi)始的不懂224。明白任務(wù)的要求和內(nèi)容224。理論知識(shí)的了解224。開(kāi)始著手寫(xiě)代碼224。完成基本功能224。根據(jù)DFA及自頂向下等理論修改完善代碼等這些過(guò)程。自己著手寫(xiě)詞法分析的時(shí)候還不清楚詞法分析的任務(wù)內(nèi)容,還不知道詞法分析的結(jié)果是什么,詞法分析出錯(cuò)的情況和類型有哪些,也總是將詞法分析和語(yǔ)法分析混在一起,不明白哪些錯(cuò)誤在詞法分析中報(bào),哪些錯(cuò)誤在語(yǔ)法分析中判斷,后來(lái)經(jīng)過(guò)查書(shū)、網(wǎng)上資料、請(qǐng)教同學(xué)等途徑逐步清
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1