久久久久综合给合狠狠狠,人人干人人模,大陆一级黄色毛片免费在线观看,亚洲人人视频,欧美在线观看一区二区,国产成人啪精品午夜在线观看,午夜免费体验

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 計(jì)劃總結(jié) > 工作總結(jié) > 編譯原理課設(shè)總結(jié)

編譯原理課設(shè)總結(jié)

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-29 21:39:32 | 移動(dòng)端:編譯原理課設(shè)總結(jié)

編譯原理課設(shè)總結(jié)

董楠楠1006010101

經(jīng)過(guò)一個(gè)星期的編譯原理課程設(shè)計(jì),在老師的指導(dǎo)以及小組同學(xué)的互相幫助

下順利完成該課程設(shè)計(jì)。通過(guò)該課程設(shè)計(jì),收獲很多。

此次課設(shè),我們小組用的是java語(yǔ)言,在課設(shè)過(guò)程中,用到了以前開(kāi)發(fā)過(guò)程中所沒(méi)有的探索過(guò)的很多新方法,最直接的影響就是讓我對(duì)java語(yǔ)言的認(rèn)識(shí)與理解更近一層。并且掌握了什么是編譯程序,編譯程序工作的基本過(guò)程及其各階段的基本任務(wù),對(duì)課本上的知識(shí)有了更深的理解。

因?yàn)楸緦?shí)驗(yàn)用了java語(yǔ)言編寫(xiě),個(gè)人覺(jué)得相比C語(yǔ)言模塊更加清晰明了。在該詞法分析程序中,我們用了java中的split方法對(duì)輸入串進(jìn)行分割,簡(jiǎn)單易懂。其次,在字符匹配過(guò)程中,引進(jìn)了正則表達(dá)式,讓輸入串與之匹配,極大地縮減程序的繁瑣性。同時(shí),java的面對(duì)對(duì)象的性質(zhì)在程序中得到充分的體現(xiàn),在代碼的編寫(xiě)過(guò)程中,將各種判定封裝為函數(shù),主函數(shù)通過(guò)調(diào)用這些封裝函數(shù)完成功能,摒棄了C語(yǔ)言結(jié)構(gòu)化的繁瑣,使整個(gè)處理函數(shù)清晰可讀。在測(cè)試多個(gè)用例時(shí),發(fā)現(xiàn)程序的很多小錯(cuò)誤,但最后都能夠一一解決,尤其在這個(gè)過(guò)程中,我也充分體會(huì)到了團(tuán)隊(duì)合作的力量。此次課設(shè)更加深了對(duì)java語(yǔ)言的認(rèn)識(shí),并熟悉了java語(yǔ)言中正則表達(dá)式的用法。

通過(guò)該課程設(shè)計(jì),全面系統(tǒng)的理解了編譯原理程序構(gòu)造的一般原理和基本實(shí)現(xiàn)方法。能夠把學(xué)過(guò)的計(jì)算機(jī)編譯原理的知識(shí)強(qiáng)化,并通過(guò)自己設(shè)計(jì)的程序表現(xiàn)出來(lái),加深了對(duì)理論知識(shí)的理解,同時(shí)也激發(fā)了學(xué)習(xí)的積極性。課程設(shè)計(jì)中的第二個(gè)程序?qū)?jiǎn)單表達(dá)式文法構(gòu)造算符優(yōu)先分析器比較復(fù)雜,在調(diào)試時(shí)出現(xiàn)了很多問(wèn)題,經(jīng)過(guò)大量的修改和一遍又一遍地調(diào)試,最后把錯(cuò)誤全都改正沒(méi)有做到根據(jù)文法得到相應(yīng)的算符優(yōu)先表,而是在程序中直接給出,這是程序的一個(gè)小缺陷。

擴(kuò)展閱讀:編譯原理課設(shè)報(bào)告

北華航天工業(yè)學(xué)院

《編譯原理》課程設(shè)計(jì)

課程設(shè)計(jì)題目:編譯程序構(gòu)造作者所在系部:計(jì)算機(jī)科學(xué)與工程系作者所在專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)作者所在班級(jí):作者學(xué)號(hào):作者姓名:指導(dǎo)教師姓名:完成時(shí)間:

201*年6月18日

課程設(shè)計(jì)任務(wù)書(shū)

課題名稱指導(dǎo)教師孫紅艷《編譯原理》課程設(shè)計(jì)完成時(shí)間李肖麗201*.6.20B07513職稱副教授學(xué)生姓名總體設(shè)計(jì)要求班級(jí)總體設(shè)計(jì)要求:課程設(shè)計(jì)內(nèi)容共給定1個(gè)題目,每個(gè)學(xué)生按照課程設(shè)計(jì)要求,在規(guī)定的兩周時(shí)間內(nèi)獨(dú)立完成。題目:編譯程序構(gòu)造涉及內(nèi)容:詞法分析、語(yǔ)法分析、語(yǔ)義分析生成中間代碼工作內(nèi)容及時(shí)間進(jìn)度安排第一周:星期一:設(shè)計(jì)動(dòng)員,布置課程設(shè)計(jì)任務(wù),查閱資料,制定方案,進(jìn)行程序方案設(shè)計(jì)。第一周:星期二星期五:編寫(xiě)和調(diào)試程序第二周:星期一星期三:編寫(xiě)和調(diào)試程序第二周:星期四:整理,撰寫(xiě)設(shè)計(jì)報(bào)告。第二周:星期五:驗(yàn)收,提交設(shè)計(jì)報(bào)告,評(píng)定成績(jī)。畢業(yè)設(shè)計(jì)成果1、課程設(shè)計(jì)報(bào)告書(shū)一份2、源程序清單一份3、成果使用說(shuō)明書(shū)一份

摘要

編譯原理是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)一門(mén)重要的專業(yè)課,它具有很強(qiáng)的理論性與實(shí)踐性,目的是系統(tǒng)地向?qū)W生介紹編譯系統(tǒng)的結(jié)構(gòu)、工作原理以及編譯程序各組成部分的設(shè)計(jì)原理和實(shí)現(xiàn)技術(shù),在計(jì)算機(jī)本科教學(xué)中占有十分重要的地位。計(jì)算機(jī)語(yǔ)言之所以能由單一的機(jī)器語(yǔ)言發(fā)展到現(xiàn)今的數(shù)千種高級(jí)語(yǔ)言,就是因?yàn)橛辛司幾g技術(shù)。編譯技術(shù)是計(jì)算機(jī)科學(xué)中發(fā)展得最迅速、最成熟的一個(gè)分支,它集中體現(xiàn)了計(jì)算機(jī)發(fā)展的成果與精華。

本課設(shè)是詞法分析、語(yǔ)法分析、語(yǔ)義分析的綜合,主要是鍛煉學(xué)生的邏輯思維能力,進(jìn)一步理解編譯原理的方法和步驟。

關(guān)鍵詞:詞法分析語(yǔ)法分析語(yǔ)義分析

目錄

第1章課程設(shè)計(jì)目的....................................................1第2章課程設(shè)計(jì)內(nèi)容....................................................1第3章設(shè)計(jì)方案介紹....................................................2

3.1模塊劃分及模塊調(diào)用..............................................2第4章程序源代碼......................................................2第5章程序測(cè)試數(shù)據(jù)和結(jié)果.............................................14第6章課程設(shè)計(jì)總結(jié)...................................................17參考文獻(xiàn)...............................................................18

第1章課程設(shè)計(jì)目的

《編譯原理》課程設(shè)計(jì)是編譯原理課程必不可少的一個(gè)環(huán)節(jié),通過(guò)課程設(shè)計(jì),加深對(duì)編譯原理的教學(xué)內(nèi)容的了解,以及實(shí)現(xiàn)編譯原理各部分知識(shí)的融合。進(jìn)而提高學(xué)生分析問(wèn)題、解決問(wèn)題,從而運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力。

第2章課程設(shè)計(jì)內(nèi)容

1.題目:編譯程序構(gòu)造

2.內(nèi)容:涉及詞法分析、自下而上語(yǔ)法分析程序的實(shí)現(xiàn):SLR(1)分析器的實(shí)現(xiàn)以及生成中間代碼。

3.具體要求

根據(jù)LR分析算法構(gòu)造SLR(1)分析程序,并完成語(yǔ)法分析動(dòng)作(當(dāng)需要一個(gè)單詞時(shí),調(diào)用詞法分析程序獲。,同時(shí)完成語(yǔ)義分析生成四元式輸出。要求程序具有通用性,改變文法時(shí)只需改變程序的數(shù)據(jù)初值,無(wú)需改變程序主體;

要求完成一條說(shuō)明語(yǔ)句、一條算數(shù)表達(dá)式和賦值語(yǔ)句的翻譯,生成中間代碼。構(gòu)造其用于SLR(1)分析的識(shí)別活前綴的DFA以及action表和goto表。然后編程實(shí)現(xiàn)。(關(guān)于詞法分析部分只需識(shí)別出與此文法相關(guān)的單詞即可(+,*,(,),id,=))。

4.程序設(shè)計(jì)提示:

(1)分析棧設(shè)計(jì)時(shí)可以用一個(gè)棧完成,也可以設(shè)計(jì)三個(gè)棧:一個(gè)符號(hào)棧,一個(gè)狀態(tài)棧,一個(gè)語(yǔ)義棧,則歸約時(shí),則需要在符號(hào)棧中退掉n個(gè)符號(hào),在狀態(tài)棧中退掉n個(gè)符號(hào)(n為產(chǎn)生式符號(hào)個(gè)數(shù)),語(yǔ)義棧中退掉n個(gè)符號(hào)對(duì)應(yīng)的語(yǔ)義;

(2)終結(jié)符表和非終結(jié)符表的組織和預(yù)測(cè)分析程序中相同(將符號(hào)對(duì)應(yīng)到一個(gè)數(shù)字,表示在分析表中對(duì)應(yīng)的下標(biāo))。

(3)action表中的錯(cuò)誤處理:簡(jiǎn)化的錯(cuò)誤處理:當(dāng)查找action表出現(xiàn)空白時(shí),則當(dāng)前單詞無(wú)法移進(jìn)和規(guī)約,可簡(jiǎn)單的認(rèn)為當(dāng)前單詞為多余的單詞,則拋棄當(dāng)前單詞,讀下一單詞繼續(xù)分析。

5.程序擴(kuò)展要求

有能力的同學(xué)可將編譯程序擴(kuò)展布爾表達(dá)式的分析和四元式生成,布爾表達(dá)式的翻譯參見(jiàn)教材(胡元義《編譯原理教程》)104105頁(yè)。

1

第3章設(shè)計(jì)方案介紹

3.1模塊劃分及模塊調(diào)用

本系統(tǒng)總體是三個(gè)模塊,一個(gè)是詞法分析模塊;一個(gè)是語(yǔ)法分析模塊;一個(gè)是語(yǔ)義分析模塊。

其中詞法分析作為語(yǔ)法分析的子程序調(diào)用。模塊調(diào)用如圖3-1所示:

詞法分析器analyse()語(yǔ)法分析器scan()

圖3-1模塊調(diào)用圖

第4章程序源代碼

程序源代碼如下:#include#include#include#include#include#include#includeintLetter(charch){if(isalpha(ch))return1;return0;}

intDigit(charch){if(ch>47&&ch

intfuhaobiao2[100];charsiyuanshi[100][100];#defineMAXSIZE1024typedefstruct{

intstate[MAXSIZE];charsign[MAXSIZE];charmean[MAXSIZE][100];inttop;}SeqStack;

SeqStack*Init_SeqStack(){SeqStack*s=newSeqStack;if(!s){cout=MAXSIZE){coutstate[s->top]=a;s->sign[s->top]=b;strcpy(s->mean[s->top],c);

}}

//出棧

voidPop_SeqStack(SeqStack*s){

if(Empty_SeqStack(s))cout

7,-1,-1,-1,8,-1,-1,-1,4,5,6,-1,-1,9,-1,-1,-1,100,-1,-1,-1,-1,-1,-1,102,10,-1,102,102,-1,-1,-1,-1,-1,-1,104,104,-1,104,104,-1,-1,-1,-1,-1,-1,106,106,-1,106,106,-1,-1,-1,-1,7,-1,-1,-1,8,-1,-1,-1,13,5,6,7,-1,-1,-1,8,-1,-1,-1,-1,12,6,7,-1,-1,-1,8,-1,-1,-1,-1,-1,11,-1,-1,103,103,-1,103,103,-1,-1,-1,-1,-1,-1,101,10,-1,101,101,-1,-1,-1,-1,-1,-1,9,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,105,105,-1,105,105,-1,-1,-1,-1};SeqStack*A=Init_SeqStack();

Push_SeqStack(A,0,"#","_");//將初態(tài)和"#"壓入棧中Acoutfilename;

ifstreaminstuf(filename,ios::in);

cout

cout

while(1){i1=0;if(a==""||a=="")//濾去空格{instuf.get(a);while(a==""||a==""){instuf.get(a);}continue;}

elseif(Letter(a)||a=="_"){intflag=0;while(Letter(a)||a=="_"||Digit(a)){token[i1]=a;//將當(dāng)前讀入的字符送入token數(shù)組i1++;instuf.get(a);f1=1;}//查表是否已存在該標(biāo)志符for(l=0;l

strcpy(string,token);for(i1=0;i1

{cout

Push_SeqStack(A,analysis_table[A->state[n1]][n2],VN[s],r);

//入棧規(guī)約狀態(tài)

break;}case1:{

cout

if(NT[n2]==VN[s])break;}cout

}

intn1=A->top,n2;for(n2=0;n2

break;}cout

cout

F.PALCE=P;}

狀態(tài)ACTIONGOTOid=+*();#ETF0S11S22S7S63453S9S84r210r2r25r4r4r4r46S7S611457r6r6r6r68acc9S7S612510S7S61311S9S1412r1S10r1r113r3r3r3r314r5r5r5r5測(cè)試源文件如下圖5-1所示:

圖5-1測(cè)試源文件

程序執(zhí)行結(jié)果如下圖5-2、5-3所示:

15

圖5-2

圖5-3

16

第6章課程設(shè)計(jì)總結(jié)

通過(guò)這次課程設(shè)計(jì),我對(duì)編譯分析的整個(gè)過(guò)程有了更進(jìn)一步的認(rèn)識(shí),加深了對(duì)編譯原理所學(xué)內(nèi)容的理解和掌握,并且實(shí)現(xiàn)了編譯原理各部分知識(shí)的融合,進(jìn)而提高了自己思考問(wèn)題、分析問(wèn)題,從而運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力。另外,我對(duì)編譯程序的各個(gè)階段的實(shí)現(xiàn)過(guò)程也有了更加深刻的理解。

課程設(shè)計(jì)既能鍛煉我們的動(dòng)手能力,又能加深我們對(duì)所學(xué)知識(shí)的理解。理論與實(shí)踐相結(jié)合的學(xué)習(xí)方式讓我們?cè)谙硎芘d趣的同時(shí)又使我們受益匪淺。本次程序設(shè)計(jì)采用C++語(yǔ)言實(shí)現(xiàn),在編寫(xiě)分析程序的過(guò)程中,我們首先應(yīng)該從整體上把握程序的設(shè)計(jì)思想,確定其實(shí)現(xiàn)結(jié)構(gòu),對(duì)每個(gè)函數(shù)的具體功能建立明確的概念,然后再進(jìn)行代碼的編寫(xiě)。通過(guò)自己的努力,我最終成功完成了這次課程設(shè)計(jì)。

最后,我衷心感謝在課程設(shè)計(jì)過(guò)程中給予我細(xì)心指導(dǎo)與幫助的老師和同學(xué)。通過(guò)本次課程設(shè)計(jì),我明白,在遇到問(wèn)題時(shí),首先要自己尋求解決方法,培養(yǎng)自己的獨(dú)立思考能力;如果憑借自我能力無(wú)法解決,可以通過(guò)查閱書(shū)籍或者利用網(wǎng)絡(luò)搜索相關(guān)信息以解決問(wèn)題,培養(yǎng)自己的自學(xué)能力;抑或請(qǐng)教同學(xué)和老師,培養(yǎng)自己的溝通合作能力。正是在解決這些問(wèn)題的過(guò)程中,我學(xué)習(xí)到了課本之外的實(shí)用而寶貴的編程經(jīng)驗(yàn),還提升了自己各方面的能力,取得了一定的進(jìn)步!

17

參考文獻(xiàn)

[1]嚴(yán)蔚敏,吳偉國(guó).數(shù)據(jù)結(jié)構(gòu).北京:清華大學(xué)出版社,201*

[2]陳火旺,劉春林等.程序設(shè)計(jì)語(yǔ)言編譯原理(第3版).北京:國(guó)防工業(yè)出版社,

201*

[3]呂映芝,張素琴,蔣維杜編著.編譯原理.北京:清華大學(xué)出版社,1998[4]胡倫駿,徐蘭芳,劉建農(nóng)編著.編譯原理.北京:電子工業(yè)出版社,201*[5]胡元義.編譯原理教程(第二版).西安:西安電子科技大學(xué)出版社,201*

18

評(píng)語(yǔ)指導(dǎo)教師評(píng)語(yǔ)及課設(shè)成績(jī)課程設(shè)計(jì)成績(jī):_________________指導(dǎo)教師:_________________日期:________年____月____日19

友情提示:本文中關(guān)于《編譯原理課設(shè)總結(jié)》給出的范例僅供您參考拓展思維使用,編譯原理課設(shè)總結(jié):該篇文章建議您自主創(chuàng)作。

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


編譯原理課設(shè)總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.weilaioem.com/gongwen/743450.html