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

正文內(nèi)容

編譯原理課程設(shè)計(jì)---編譯代碼生成器設(shè)計(jì)-展示頁

2025-01-22 17:27本頁面
  

【正文】  while9 l(l|d)*10內(nèi)部字符串 ( +||ε ) d*(.dd* | ε)( e ( +||ε ) dd*|ε) 20二進(jìn)制數(shù)值表示=21 +22 23 * 24 / 25 (26 )27 {28 }29 ,30 。不斷完善,不斷改進(jìn)。 語義分析程序 224。詞法分析程序 224。 (3) 語法分析的運(yùn)行結(jié)果 分析成功圖 分析失敗圖 中間代碼生成程序(1)總體描述采用遞歸下降(自上而下)的語法制導(dǎo)翻譯法。 y:=1+2。 ch=prog[p++]。)) { sum=sum*10+ch39。(ch=39。)amp。)) { while((ch=39。(ch=39。)amp。 } ;標(biāo)識符是否是關(guān)鍵字 ④if((ch=39。n++) if(strcmp(token,rwtab[n])==0) { syn=n+1。 } ;判別標(biāo)識符 ③for(n=0。))) { token[m++]=ch。(ch=39。)amp。))||((ch=39。(ch=39。)amp。))||((ch=39。(ch=39。)amp。))) { while(((ch=39。(ch=39。)amp。))||((ch=39。(ch=39。)amp。 ;忽略空格 ②if(((ch=39。\n39。 39。掃描子程序scaner1( )掃描輸入的語句 首先設(shè)置3個(gè)變量:①token1用來存放構(gòu)成單詞符號的字符串;②sum1用來存放整型單詞;③syn1用來存放單詞符號的類型碼。本課程的課程設(shè)計(jì)要求學(xué)生編寫一個(gè)完整的編譯程序,包括詞法分析器、語法分析器以及實(shí)現(xiàn)對簡單程序設(shè)計(jì)語言中的邏輯運(yùn)算表達(dá)式、算術(shù)運(yùn)算表達(dá)式、賦值語句、IF語句、While語句以及do…while語句進(jìn)行編譯,并生成中間代碼和直接生匯編指令的代碼生成器。 三、課程設(shè)計(jì)的內(nèi)容課程設(shè)計(jì)是一項(xiàng)綜合性實(shí)踐環(huán)節(jié),是對平時(shí)實(shí)驗(yàn)的一個(gè)補(bǔ)充,課程設(shè)計(jì)內(nèi)容包括課程的主要理論知識,但由于編譯的知識量較復(fù)雜而且綜合性較強(qiáng),因而對一個(gè)完整的編譯程序不適合平時(shí)實(shí)驗(yàn)。 寫出完整的算法框架。二、課程設(shè)計(jì)的要求 明確課程設(shè)計(jì)任務(wù),復(fù)習(xí)編譯理論知識,查閱復(fù)印相關(guān)的編譯資料。關(guān)鍵字:C語言、編譯、掃描器、語法分析一、課程設(shè)計(jì)的目的編譯原理課程兼有很強(qiáng)的理論性和實(shí)踐性,是計(jì)算機(jī)專業(yè)的一門非常重要的專業(yè)基礎(chǔ)課程,它在系統(tǒng)軟件中占有十分重要的地位,是計(jì)算機(jī)專業(yè)學(xué)生的一門主修課。 編譯程序是一極其龐大而又復(fù)雜的系統(tǒng),掌握它比較苦難。有些能用于自動生成掃描器(如LEX),有些可以用于自動產(chǎn)生語法分析器(如YACC),有些甚至可以用來自動產(chǎn)生整個(gè)的編譯程序。要構(gòu)造一個(gè)編譯程序,可以按照這樣的階段來分別構(gòu)造,最后來連調(diào)。 一個(gè)編譯程序的工作過程一般可以劃分為五個(gè)階段:詞法分析、語法分析、語義分析與中間代碼生成、優(yōu)化、目標(biāo)代碼生成。 通常說的翻譯程序是指能夠把某一種語言程序轉(zhuǎn)換成另一種語言程序(目標(biāo)語言程序)。高級語言編譯程序是計(jì)算機(jī)系統(tǒng)軟件最主要的組成部分之,也是用戶最直接關(guān)系的工具之一?!毒幾g原理》課程設(shè)計(jì)報(bào)告 題目 編譯代碼生成器設(shè)計(jì)學(xué) 院 信息科學(xué)與工程學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)班 級 ******** 學(xué) 號 ********** 學(xué)生姓名 ********* 指導(dǎo)教師 ****** 課程成績 完成日期 *********** 課程設(shè)計(jì)成績評定學(xué) 院 信息學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級 ********* 學(xué) 號 ************** 學(xué)生姓名 ******** 指導(dǎo)教師 ********* 課程成績 完成日期 ************ 指導(dǎo)教師對學(xué)生在課程設(shè)計(jì)中的評價(jià)評分項(xiàng)目優(yōu)良中及格不及格課程設(shè)計(jì)中的創(chuàng)造性成果學(xué)生掌握課程內(nèi)容的程度課程設(shè)計(jì)完成情況課程設(shè)計(jì)動手能力文字表達(dá)學(xué)習(xí)態(tài)度規(guī)范要求課程設(shè)計(jì)論文的質(zhì)量指導(dǎo)教師對課程設(shè)計(jì)的評定意見綜合成績 指導(dǎo)教師簽字 ******年 月 題目 編譯代碼生成器設(shè)計(jì)學(xué)生姓名:******* 指導(dǎo)老師:*******摘要使用過現(xiàn)代計(jì)算機(jī)的人都知道,多數(shù)用戶是應(yīng)用高級語言來實(shí)現(xiàn)他們所需要的計(jì)算的?,F(xiàn)在計(jì)算機(jī)系統(tǒng)一般都含有不只一個(gè)的高級語言的編譯程序,對有些高級語言甚至配置了幾個(gè)不同性能的編譯程序,供用戶按不同需要進(jìn)行選擇。 計(jì)算機(jī)上執(zhí)行一個(gè)高級語言程序一般分為兩步:第一,用一個(gè)編譯程序把高級語言翻譯成機(jī)器語言程序;第二,運(yùn)行所得的機(jī)器語言程序求得計(jì)算結(jié)果。如果源語言諸如Fortran,Pascal,C,Ada或java這樣的高級語言,而目標(biāo)程序是諸如匯編語言或者機(jī)器語言這類的低級語言,這樣的一個(gè)翻譯程序就是稱為編譯程序。每個(gè)階段都是從上一個(gè)階段得到結(jié)果,對他進(jìn)行分析,并且根據(jù)一些外部環(huán)境(例如符號表等)得到最終的輸出結(jié)果。 現(xiàn)在人們已經(jīng)建立了多種編制部分編譯程序或整個(gè)編譯程序的有效工具。這些構(gòu)造編譯程序的工具成為編譯程序-編譯程序、編譯程序產(chǎn)生器或翻譯程序書寫系統(tǒng),他們是按照編譯程序和目標(biāo)語言的形式描述而自動產(chǎn)生編譯程序的。但是一旦對其掌握,對以后的程序語言設(shè)計(jì),系統(tǒng)軟件分析,系統(tǒng)軟件設(shè)計(jì),形式語言研究等方面都是非常有好處的。為了讓學(xué)生能夠更好地掌握編譯原理的基本理論和編譯程序構(gòu)造的基本方法和技巧,融會貫通本課程所學(xué)專業(yè)理論知識,提高他們的軟件設(shè)計(jì)能力,特設(shè)定該課程的課程設(shè)計(jì),通過設(shè)計(jì)一個(gè)簡單的PASCAL語言(EL語言)的編譯程序,提高學(xué)生設(shè)計(jì)程序的能力,加深對編譯理論知識的理解與應(yīng)用。 按要求完成課程設(shè)計(jì)內(nèi)容,課程設(shè)計(jì)報(bào)告要求文字和圖表工整、思路清晰、算法正確。 編寫完整的編譯程序。通過課程設(shè)計(jì)可以達(dá)到綜合設(shè)計(jì)編譯程序的目的。四、總體設(shè)計(jì)方案及詳細(xì)設(shè)計(jì)主程序詞法分析程序語法分析程序中間代碼生成程序總體設(shè)計(jì)方案:2. 各種單詞符號對應(yīng)的種別碼單詞符號種別碼 單詞符號種別碼bgin1:17If2:=18Then320wile421do5=22end623lettet(letter|digit)*10=24dight dight*11=25+13;26—14(27*15)28/160詳細(xì)設(shè)計(jì): (1)一共三個(gè)選項(xiàng):①choice 1cifafenxi ②choice 2yufafenxi ③choice 3zhongjiandaima (2)界面演示 圖一 圖二 圖三 置初值調(diào)用掃描子程序輸出單詞二元組輸入串結(jié)束結(jié)束否是(1)流程圖設(shè)計(jì)(2)具體功能的具體設(shè)計(jì)cifafenxi( ) 首先設(shè)置prog[n]來接收輸入的語句,以‘’來結(jié)束; 調(diào)用掃描子程序 scaner1( ),每一次得到一個(gè)類型碼; 用switch判別相應(yīng)輸出; 直到syn1=0為止。 有關(guān)scaner1()中關(guān)鍵點(diǎn)解析: ①while((ch==39。)||(ch==39。)) ch=prog[p++]。z39。amp。a39。Z39。amp。A39。z39。amp。a39。Z39。amp。A39。039。amp。939。 ch=prog[p++]。n6。 break。039。amp。939。039。amp。939。039。 } } ;判別整數(shù) (3) 詞法分析的運(yùn)行結(jié)果 輸入begin x:=1。end 輸出 (1) 具體功能的具體設(shè)計(jì) ()分析程序 給出算術(shù)表達(dá)式文法,進(jìn)行適當(dāng)?shù)奈姆ㄗ儞Q輸入——表達(dá)式;輸出——表達(dá)式語法是否正確。在前兩次試驗(yàn)的基礎(chǔ)上改進(jìn)。 語法分析程序 224。編譯器。漸變的過程。31 32 =33 34 =35 ==36 !=37  (2)程序結(jié)構(gòu)描述 (3) 程序的功能描述從文件中讀入表達(dá)式,輸出其四元式的結(jié)果序列 是否為main?調(diào)用scanner是否為(?調(diào)用scanner是否為)?調(diào)用scanner調(diào)用語句塊分析函數(shù)staBlock出錯(cuò)處理 遞歸下降示意圖 (4)詳細(xì)功能描述void scanner()。 void staBlock(int *nChain)。 //語句串void sta(int *nChain)。 //賦值語句void tiaojian(int *nChain)。 //循環(huán)語句char* E()。 //Term項(xiàng)char* F()。 //自動生成臨時(shí)變量void backpatch(int p,int t)。 //合并p1和p2void emit(char *res,char *num1,char *op,char *num2)。void backpatch(int p,int t)該函數(shù)的功能是把P所鏈接的每個(gè)四元式的第四區(qū)段(result段)都回 填t。void tiaojian(int *nChain)該函數(shù)的功能是對條件語句進(jìn)行分析。(4) 結(jié)果演示 圖一 簡單語句生成四元式
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1