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

正文內(nèi)容

編譯原理課程設(shè)計(jì)教學(xué)大綱優(yōu)秀范文5篇(存儲(chǔ)版)

  

【正文】 用于標(biāo)識(shí)符 typedef enum {CONSTANT,VARIABLE,PROCEDURE,ARRAY} obj0。t big than amax }。class PL0 {protected:bool listswitch,sourceEnd。int cx。// 保留字表symbol wsym[norw+1]。}void error(int n)。dx,int lev)。void listcode(int cx0)。 dx,int lev)?!? ”error 0018: while型循環(huán)語(yǔ)句中丟了do“, ”error 0019: 語(yǔ)句后的標(biāo)識(shí)符不正確“, ”error 0020: 應(yīng)為關(guān)系運(yùn)算符“, ”error 0021: 表達(dá)式內(nèi)標(biāo)識(shí)符屬性不能是過(guò)程“, ”error 0022: 表達(dá)式中漏掉了右括號(hào)‘)’“, ”error 0023: 因子后的非法符號(hào)“, ”error 0024: 表達(dá)式開始符不能是此符號(hào)“, ”error 0025: 文件在不該結(jié)束的地方結(jié)束了“, ”error 0026: 結(jié)束符出現(xiàn)在不該結(jié)束的地方“, ”error 0027: “,”error 0028: “,”error 0029: “,”error 0030: “, ”error 0031: 數(shù)越界“, ”error 0032: read語(yǔ)句括號(hào)中標(biāo)識(shí)符不是變量“, ”error 0033: else附近錯(cuò)誤“ , ”error 0034: repeat附近錯(cuò)誤“}。strcpy(word[7],”if“)。strcpy(word[15],”while“)。wsym[7]= IFSYM。wsym[15]= WHILESYM。]= PLUS。/39。ssym[39。]= PERIOD。39。strcpy(mnemonic[JMP],” jmp “)。// 代碼分配指針,代碼生成模塊總在cx所指位置生成新的代碼ll= 0。sprintf(s,”第 %d 行:“,codeNo)。// cls space and tab if(isalpha(ch))// id or reserved word {k=0。else { do{a[kk]= 39。if(strcmp(id, word[k])j= k1。039。if(ch == 39。if(ch == 39。sourceEnd=true。cc= cc+1。symset::iterator it。// initial table index int cx0。int dx。}//gen end// 測(cè)試當(dāng)前單詞符號(hào)是否合法void PL0::test(symset s1,symset s2,int n){ if(sourceEnd)return。if(line[ll1]==10)ll。// 其它符號(hào)的賦值getch()。// extra stuff added to support 39。:39。sym= NUMBER。j= norw。}while(isalpha(ch)||isdigit(ch))。 39。fout=fopen(destination,”w“)。cc= 0。strcpy(mnemonic[CAL],” cal “)。]= GTR。ssym[39。)39。]= TIMES。ssym[39。wsym[13]= UNTILSYM。wsym[5]= ELSESYM。strcpy(word[13],”until“)。strcpy(word[5],”else“)?!? ”error 0006: 過(guò)程說(shuō)明后的符號(hào)不正確(應(yīng)是語(yǔ)句開始符或過(guò)程開始符)“, ”error 0007: 應(yīng)是語(yǔ)句開始符“, ”error 0008: 過(guò)程體內(nèi)語(yǔ)句部分的后跟符不正確“, ”error 0009: 程序皆為丟了句號(hào)‘.’“, ”error 0010: 語(yǔ)句之間漏了‘。void arraydeclaration(intamp。tx,intamp。void enter(obj0 k,int amp。public:PL0(char* source,char*destination)。// 詞法分析器中用于臨時(shí)存放正在分析的詞instruction code[cxmax+1]。// character count int ll。}other。t big than levmaxint a。// 行緩沖區(qū)長(zhǎng)度typedef enum {NUL,IDENT,NUMBER,PLUS,MINUS,TIMES,SLASH,ODDSYM,EQL,NEQ,LSS,LEQ,GTR,GEQ,LPAREN,RPAREN,COMMA,SEMICOLON,PERIOD,BECOMES,BEGINSYM,ENDSYM,IFSYM,THENSYM,WHILESYM,WRITESYM,READSYM,DOSYM,CALLSYM,CONSTSYM,VARSYM,PROCSYM,ELSESYM,REPEATSYM,UNTILSYM} symbol。const int norw = 16。接下去記錄下代碼段分配位置(即下面生成的jpc指令的位置),然后生成 條件轉(zhuǎn)移jpc指令(遇0或遇假轉(zhuǎn)移),轉(zhuǎn)移地址未知暫時(shí)填0。語(yǔ)法分析子程序分析:語(yǔ)法分析子程序采用了自頂向下的遞歸子程序法,語(yǔ)法分析同時(shí)也根據(jù)程序的語(yǔ)義生成相應(yīng)三元代碼,并提供了出錯(cuò)處理的機(jī)制。Getch過(guò)程通過(guò)反復(fù)調(diào)用Getch子過(guò)程從源程序過(guò)獲取字符,并把它們拼成單詞。其編譯過(guò)程采用一趟掃描方式,以語(yǔ)法分析程序?yàn)楹诵?,詞法分析和代碼生成程序都作為一個(gè)獨(dú)立的過(guò)程,當(dāng)語(yǔ)法分析需要讀單詞時(shí)就調(diào)用詞法分析程序,而當(dāng)語(yǔ)法分析正確需要生成相應(yīng)的目標(biāo)代碼時(shí),則調(diào)用代碼生成程序。二、實(shí)驗(yàn)內(nèi)容1)仔細(xì)閱讀PL/0編譯程序文本(編譯原理(第二版)張素琴 呂映芝 蔣維杜 戴桂蘭 主編清華大學(xué)出版社),并上機(jī)調(diào)試通過(guò)。教學(xué)內(nèi)容:目標(biāo)機(jī)器模型,一個(gè)簡(jiǎn)單代碼生成器,寄存器分配,DAG目標(biāo)代碼,窺孔優(yōu)化。教學(xué)難點(diǎn):嵌套過(guò)程語(yǔ)言棧式分配,活動(dòng)記錄、運(yùn)行時(shí)棧的組織。教學(xué)內(nèi)容:符號(hào)表的作用、建立、符號(hào)表欄目的組織、符號(hào)表上的操作。教學(xué)重點(diǎn):歸約,算符優(yōu)先表構(gòu)造,LR分析法。章節(jié)內(nèi)容詞法分析程序的設(shè)計(jì)單詞的描述工具有窮自動(dòng)機(jī)正規(guī)式和有窮自動(dòng)機(jī)的等價(jià)性正規(guī)文法和有窮自動(dòng)機(jī)間的轉(zhuǎn)換 第四章 語(yǔ)法分析—自上而下分析教學(xué)目的及要求:本章介紹編譯程序的第二個(gè)階段語(yǔ)法分析的設(shè)計(jì)方法和實(shí)現(xiàn)原理,包括自上而下分析的無(wú)回朔的遞歸下降分析、LL(1)分析法。教學(xué)重點(diǎn):上下文無(wú)關(guān)文法,語(yǔ)言定義。四、課程內(nèi)容(建議理論課時(shí):62 上機(jī)課時(shí):18)第一章 編譯程序概論教學(xué)目的及要求:本章介紹編譯程序在計(jì)算機(jī)科學(xué)中的地位和作用,介紹編譯技術(shù)的發(fā)展歷史,講解編譯程序、解釋程序的基本概念,概述編譯過(guò)程,介紹編譯程序的邏輯結(jié)構(gòu)和編譯程序的組織形式。[第四篇:編譯原理教學(xué)大綱(范文模版)編譯原理教學(xué)大綱一、課程的性質(zhì)、地位本課程是計(jì)算機(jī)專業(yè)的重要專業(yè)課之一,是一門理論性和實(shí)踐性較強(qiáng)的課程。首先最基本的成果是完成了課程設(shè)計(jì)的任務(wù),實(shí)現(xiàn)了編譯器的詞法分析和語(yǔ)法分析階段的功能,詞法分析主要能過(guò)濾注釋、分析出語(yǔ)法分析階段需要的Token并滿足語(yǔ)法階段的所有要求,能夠判別詞法分析階段是否出錯(cuò)和出錯(cuò)類型和位置。雖然之前寫的詞法分析的代碼已經(jīng)完成了詞法分析的需求,也是根據(jù)DFA的原理編寫的,但是在代碼結(jié)構(gòu)上卻難以體現(xiàn),在對(duì)書上的根據(jù)已知DFA寫代碼的例子進(jìn)行了詳細(xì)的研究之后,發(fā)現(xiàn)自己的代碼并沒(méi)有像書上那樣完全按照所依據(jù)的DFA各狀態(tài)轉(zhuǎn)移的關(guān)系進(jìn)行編寫,所以對(duì)代碼進(jìn)行了重寫,像書上一樣嚴(yán)格按照狀態(tài)之間轉(zhuǎn)移的方式進(jìn)行編寫,將狀態(tài)劃分成11個(gè)狀態(tài),狀態(tài)分別按1~11進(jìn)行標(biāo)注,程序也按照DFA來(lái)編寫,也實(shí)現(xiàn)了詞法分析的功能。開始著手寫代碼224。測(cè)試錯(cuò)誤檢測(cè),程序缺少分號(hào),錯(cuò)誤列表中顯示該行缺少語(yǔ)句結(jié)束標(biāo)志39。語(yǔ)法分析的功能是在詞法分析的基礎(chǔ)上將單詞序列組合成各類語(yǔ)法短語(yǔ),如“程序”,“語(yǔ)句”,“表達(dá)式” 數(shù)據(jù)結(jié)構(gòu)下圖為實(shí)現(xiàn)語(yǔ)法分析的類Grammar,屬性與方法的作用都已說(shuō)明 在此處鍵入]下面終結(jié)符與非終結(jié)符意義B程序開始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。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ù)。工程文件總體上是按照九個(gè)類的格局分為十個(gè)文件,分別是九個(gè)類的聲明文件和實(shí)現(xiàn)文件。若語(yǔ)法正確,則用語(yǔ)法制導(dǎo)翻譯法進(jìn)行語(yǔ)義翻譯;生成并打印出語(yǔ)法樹;若語(yǔ)法錯(cuò)誤,要求指出出錯(cuò)性質(zhì)和出錯(cuò)位置(行號(hào))。編譯器將源程序(source language)編寫的程序作為輸入,翻譯產(chǎn)生目標(biāo)語(yǔ)言(target language)機(jī)器代碼的等價(jià)程序。將詞法分析器設(shè)計(jì)成供語(yǔ)法分析器調(diào)用的子程序。能較好地完成設(shè)計(jì)任務(wù),成績(jī)較突出,表現(xiàn)良好;撰寫了質(zhì)量比較高的實(shí)習(xí)報(bào)告。2.課程設(shè)計(jì)實(shí)行指導(dǎo)教師負(fù)責(zé)制,由指導(dǎo)教師全面負(fù)責(zé)課程設(shè)計(jì)的指導(dǎo)與管理工作。逆波蘭表達(dá)式生成算法雖然源程序可以直接翻譯為目標(biāo)語(yǔ)言代碼,但許多編譯程序采用了獨(dú)立于機(jī)器的、復(fù)雜性介于源語(yǔ)言和機(jī)器翻譯語(yǔ)言之間的中間語(yǔ)言:后綴式(逆波蘭表達(dá)式)等。LR方法的基本思想是:在規(guī)范歸約過(guò)程中,一方面記住已經(jīng)移進(jìn)和歸約出的整個(gè)符號(hào)串,即記住“歷史”;另一方面根據(jù)所用的產(chǎn)生式推測(cè)未來(lái)可能碰到的輸入符號(hào),即對(duì)未來(lái)進(jìn)行“展望”。DFA的最小化可以揭示狀態(tài)之間的內(nèi)在聯(lián)系,便于其存儲(chǔ)實(shí)現(xiàn),便于建立用DFA描述的任務(wù)模型,一些理論問(wèn)題也與最小化思想有關(guān)。把程序設(shè)計(jì)語(yǔ)言的所有詞法規(guī)則都構(gòu)造出相應(yīng)的有限自動(dòng)機(jī),就得到一個(gè)詞法分析器。有限自動(dòng)機(jī)由其映射f是否為單值而分為確定的有限自動(dòng)機(jī)DFA和非確定的有限自動(dòng)機(jī)NFA。課程設(shè)計(jì)題目見“主要內(nèi)容”。二、教學(xué)基本要求1.設(shè)計(jì)和調(diào)試過(guò)程要規(guī)范化需求分析:將題目中要求的功能進(jìn)行敘述分析,并且設(shè)計(jì)解決此問(wèn)題的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),(有些題目已經(jīng)指定了數(shù)據(jù)存儲(chǔ)的,按照指定的設(shè)計(jì)),設(shè)計(jì)或敘述解決此問(wèn)題的算法,描述算法可以使用自然語(yǔ)言、偽代碼、或函數(shù)的方式。5.5 注意事項(xiàng)測(cè)試數(shù)據(jù)的設(shè)計(jì):每組測(cè)試數(shù)據(jù)包括輸入數(shù)據(jù)、預(yù)期的輸出結(jié)果、實(shí)際的輸出結(jié)果和預(yù)期的是否相吻合(如果不吻合,實(shí)際輸出什么?可能錯(cuò)誤的原因?檢查源代碼或設(shè)計(jì)進(jìn)行查錯(cuò),紀(jì)錄結(jié)果)。最后畫出較詳細(xì)的程序流程圖。編寫一個(gè)代碼生成程序編寫一個(gè)代碼生成程序,形成三地址程序并輸出到文件中,打印三地址程序。難度:一般。(關(guān)于正則表達(dá)式的介紹參見另一文檔,)3 邏輯運(yùn)算分析可對(duì)關(guān)系表達(dá)式進(jìn)行分析,并得出結(jié)果。u 方案1:通配符,把“*、?”當(dāng)作通配符:如輸入“a*”,顯示“abc,a1,ab1245”;輸入“a?”,輸出“a1”。工作量:較大。根據(jù)功能的不同可以分為:n 多項(xiàng)式函數(shù)計(jì)算程序:只處理多項(xiàng)式函數(shù),如f(x)=x^3+x^2+5等。工作量:中等。題目大小適中。內(nèi)容利用編譯原理的某種思想或方法,設(shè)計(jì)一個(gè)應(yīng)用程序,實(shí)現(xiàn)的具體內(nèi)容自擬(見下面的選題指導(dǎo))。根據(jù)功能的不同可分為:⑴無(wú)符號(hào)整數(shù)表達(dá)式計(jì)算器:輸入無(wú)符號(hào)整數(shù)表達(dá)式,輸出結(jié)果。n 通用表達(dá)式計(jì)算器:。但要避免出現(xiàn)不同用,如不要設(shè)計(jì)成僅能處理f(x)=2^x的冪函數(shù),因?yàn)檫@樣的函數(shù)利用普通編程就能實(shí)現(xiàn),無(wú)法體現(xiàn)編譯原理。⑶邏輯運(yùn)算分析:輸入邏輯表達(dá)式串,對(duì)表達(dá)式進(jìn)行分析,并得出結(jié)果。u 方案4:含有通配符的正規(guī)式,設(shè)“”表示任意字母,“$”表示任意數(shù)字(其他可再設(shè)多一點(diǎn),如表示符號(hào)等,但會(huì)減少名稱中的符號(hào)種數(shù)):如輸入“a*” 輸出“abc”;輸入“a(|$)*”,輸出“abc,a1,ab1245”。轉(zhuǎn)義符的識(shí)別C語(yǔ)言的字符串常量書寫時(shí)使用了大量的轉(zhuǎn)義符,如“”表示單斜杠,而“n”表示換行(同“u000A”),“x20”表示十六進(jìn)制表示形式(恰好兩位)與 ASCII 字符匹配(這里代表值為32的ASCII字符,即空格)。難度:簡(jiǎn)單。學(xué)習(xí)使用LEX和YACC工具并編寫相應(yīng)程序。2.修改設(shè)計(jì),繼續(xù)完成輸入代碼,并作初步調(diào)試。以下幾方面可以提高分?jǐn)?shù): 7.1 軟件實(shí)用性強(qiáng);7.2 軟件使用了編譯原理中的某些理論; 7.3 軟件具有擴(kuò)展性; 7.4 各類文檔寫的很規(guī)范;7.5 設(shè)計(jì)時(shí)非常投入,設(shè)計(jì)后很有心得; 7.6 其他優(yōu)點(diǎn)。源程序要按照寫程序的規(guī)則來(lái)編寫。同樣,在編繹一個(gè)程序時(shí),也是在單詞級(jí)別上來(lái)分析和翻譯源程序。而DFA引擎在任意時(shí)刻必定處于某個(gè)確定的狀態(tài),它搜索是無(wú)需象NFA一樣必須記錄所有的
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1