版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《編譯原理課程設(shè)計》</p><p> 題目:《PL/0編譯程序改進及完善》</p><p><b> 設(shè)計題目:</b></p><p> PL/0編譯程序改進及完善。</p><p><b> 設(shè)計目的:</b></p><p> 閱讀研究
2、,改進設(shè)計和調(diào)試一個簡單的編譯程序。加深對編譯理論和過程的了解。</p><p><b> 設(shè)計要求:</b></p><p> 1.有選擇的對PL/0編譯源程序補充,完善.</p><p> 2.設(shè)計編譯典型的運行實例,以便反應(yīng)出自己作出改進后的編
3、具有的功能。</p><p><b> 設(shè)計思想:</b></p><p> PL/0語言可以看成PASCAL語言的子集,它的編譯程序是一個編譯解釋執(zhí)行系統(tǒng)。PL/0的目標(biāo)程序為假想棧式計算機的匯編語言,與具體計算機無關(guān)。 </p><p> PL/0的編譯程序和目標(biāo)程序的解釋執(zhí)行程序都是用PASCAL語言書寫的,因此PL/0語言可在配備
4、PASCAL語言的任何機器上實現(xiàn) 。其編譯過程采用一趟掃描方式,以語法分析程序為核心,詞法分析和代碼生成程序都作為一個獨立的過程,當(dāng)語法分析需要讀單詞時就調(diào)用詞法分析程序,而當(dāng)語法分析正確需要生成相應(yīng)的目標(biāo)代碼時,則調(diào)用代碼生成程序。 </p><p> 用表格管理程序建立變量、常量和過程表示符的說明與引用之間的信息聯(lián)系。 </p><p> 當(dāng)源程序編譯正確時,PL/0編譯程序自動調(diào)
5、用解釋執(zhí)行程序,對目標(biāo)代碼進行解釋執(zhí)行,并按用戶程序的要求輸入數(shù)據(jù)和輸出運行結(jié)果。 </p><p><b> 主要變量說明:</b></p><p><b> /*變量說明*/</b></p><p> FILE* fas;/*輸出名字表*/</p><p> FILE* fa
6、;/*輸出虛擬機代碼*/</p><p> FILE* fa1;/*輸出源文件及其各行對應(yīng)的首地址*/</p><p> FILE* fa2;/*輸出結(jié)果*/</p><p> bool listswitch;/*顯示虛擬機代碼與否*/</p><p> bool tableswitch;
7、/*顯示名字表與否*/</p><p> char ch;/*獲取字符的緩沖區(qū),getch使用*/</p><p> enum symbol sym;/*當(dāng)前的符號*/</p><p> char id[al+1];/*當(dāng)前ident,多出的一個字節(jié)用于存放0*/</p><p> int num;
8、/*當(dāng)前number*/</p><p> int cc,ll;/*getch使用的計數(shù)器,cc表示當(dāng)前字符(ch)的位置*/</p><p> int cx;/*虛擬機代碼指針,取值范圍[0,cxmax-1]*/</p><p> char line[81];/*讀取行緩沖區(qū)*/</p><
9、p> char a[al+1];/*臨時符號,多出的一個字節(jié)用于存放0*/</p><p> struct instruction code[cxmax];/*存放虛擬機代碼的數(shù)組*/</p><p> char word[norw][al];/*保留字*/</p><p> enum symbol wsym[norw];/*保
10、留字對應(yīng)的符號值*/</p><p> enum symbol ssym[256];/*單字符的符號值*/</p><p> char mnemonic[fctnum][5];/*虛擬機代碼指令名稱*/</p><p> bool declbegsys[symnum];/*表示聲明開始的符號集合*/</p><p> b
11、ool statbegsys[symnum];/*表示語句開始的符號集合*/</p><p> bool facbegsys[symnum];/*表示因子開始的符號集合*/</p><p><b> /* 目標(biāo)指令*/</b></p><p> 1、LIT:將常量值取到運行棧頂.</p><p> 2、
12、LOD:將變量放到運行棧頂.</p><p> 3、STO:將棧頂?shù)膬?nèi)容送入某變量單元中.</p><p> 4、CAL:調(diào)用過程的指令.</p><p> 5、INT:為被調(diào)用的過程(或主程序)在運行棧中開辟數(shù)據(jù)區(qū).</p><p> 6、JMP:無條件轉(zhuǎn)移指令.</p><p> 7、JPC:條件轉(zhuǎn)移指令
13、,當(dāng)棧頂?shù)牟紶栔禐檎鏁r, 順序執(zhí)行,否則轉(zhuǎn)向域的地址.</p><p> 8、OPR:系運算符和算術(shù)運算指令.將棧頂和次棧頂?shù)膬?nèi)容進行運算,結(jié)果存放棧頂.</p><p><b> /*函數(shù)說明*/</b></p><p> void error(int n,int line)</p><p> 說明:出錯處理函
14、數(shù),打印出錯信息,錯誤總數(shù)加1。</p><p> int getch()</p><p> 說明:讀取字符函數(shù),返回字符。</p><p> int getsym()</p><p> 說明:讀取下一單詞符號</p><p> int position(char* idt,int tx);</p>
15、;<p> 說明:字符在符號表中位置查詢函數(shù)</p><p> 返回值:返回標(biāo)識符在符號表中的索引</p><p> int gen(enum fct x,int y,int z);</p><p> 說明:生成P代碼指令</p><p> int test(bool* s1,bool* s2,int n);</
16、p><p> 說明:測試當(dāng)前符號是否合法,若不合法,打印出錯信息并進行跳讀</p><p> void enter(enum object k, int* ptx,int lev,int* pdx);</p><p> 說明:在符號表中登錄分程序說明部分出現(xiàn)的名字</p><p> int constdeclaration(int* pt
17、x,int lev,int* pdx);</p><p> 說明:處理常量說明,并將常量名及相應(yīng)信息填入符號表</p><p> int vardeclaration(int* ptx,int lev,int* pdx);</p><p> 說明:處理變量說明,并將變量名及相應(yīng)信息填入符號表</p><p> int statemen
18、t(bool* fsys,int* ptx,int lev);</p><p> 說明:分析處理各種語句</p><p> int condition(bool* fsys,int* ptx,int lev);</p><p> 說明:分析處理條件式</p><p> 返回值:由參數(shù)x返回求值結(jié)果的類型</p><
19、p> void listcode(int cx0);</p><p><b> 說明:打印P代碼</b></p><p> int block(int lev,int tx,bool* fsys);</p><p> 說明:PL0編譯器對外的接口,由main()調(diào)用</p><p> void inter
20、pret();</p><p> 說明:解釋執(zhí)行P代碼</p><p> int base(int l,int* s,int b);</p><p> 說明:基地址處理函數(shù)</p><p> 返回值:返回變量的基地址值</p><p> int expression(bool* fsys,int* ptx,i
21、nt lev)</p><p> 說明:表達式處理,由參數(shù)返回結(jié)果類型</p><p> int term(bool* fsys,int* ptx,int lev);</p><p> 說明:項處理,由參數(shù)返回結(jié)果類型</p><p> int factor(bool* fsys,int* ptx,int lev);</p>
22、;<p> 說明:因子處理,由參數(shù)返回結(jié)果類型</p><p> int inset(int e,bool* s);</p><p> int addset(bool* sr,bool* s1,bool*s2,int n);</p><p> int subset(bool* sr,bool* s1,bool*s2,int n);</p&
23、gt;<p> int mulset(bool* sr,bool* s1,bool*s2,int n);</p><p> 說明:使用數(shù)組實現(xiàn)集合的集合運算</p><p><b> 算法描述:</b></p><p> 在原算法基礎(chǔ)上我進行了一下修改</p><p> 1.增加單詞:保留字 EL
24、SE</p><p> 2.運算符 +=,-=,++,――</p><p> 3.增加條件語句的ELSE子句</p><p> 為此添加了ELSESYM,為了實現(xiàn)如上要求的擴充,必須再正確地添加JIAJIA,JIANJIAN,JIADENG,JIANDENG等幾個個SYMBOL,具體必須包括以下三個方面的修改或添加: </p><p>
25、 在枚舉變量SYMBOL的定義內(nèi)添加JIAJIA,JIANJIAN,JIADENG,JIANDENG和ELSESYM;然后在在源程序文件中加上保留字ELSE,為了識別例如A:=++A之類的功能,還需在因子開始符號中加入JIAJIA,JIANJIAN。</p><p> 這樣,我們就正確地加入了五個將用來作為擴充語言功能的SYM。</p><p> 為了實現(xiàn)功能首先需要在詞法分析中加入
26、識別單詞功能</p><p> 增加JIAJIA(++)、JIADENG(+=)、JIANJIAN(——)、JIANDENG(—=)的詞法分析,代碼修改如下: </p><p> if(ch=='+')</p><p><b> {</b></p><p><b> getchdo;&l
27、t;/b></p><p> if(ch=='=')</p><p><b> {</b></p><p> sym=jiadeng;</p><p><b> getchdo;</b></p><p><b> }</b>
28、;</p><p><b> else</b></p><p><b> {</b></p><p> if(ch=='+')</p><p><b> {</b></p><p> sym=jiajia;</p>
29、<p><b> getchdo;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> sym=plus;</b&g
30、t;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>
31、</p><p> if(ch=='-')</p><p><b> {</b></p><p><b> getchdo;</b></p><p> if(ch=='=')</p><p><b> {</b>
32、</p><p> sym=jiandeng;</p><p><b> getchdo;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>&l
33、t;/p><p> if(ch=='-')</p><p><b> {</b></p><p> sym=jianjian;</p><p><b> getchdo;</b></p><p><b> }</b></p&g
34、t;<p><b> else</b></p><p><b> {</b></p><p> sym=minus;</p><p><b> }</b></p><p><b> }</b></p>&
35、lt;p> }這樣,我們就完成了對詞法分析器的修改。然后JIAJIA.,JIANJIAN操作的語法圖有如下兩個: </p><p><b> 語 句 </b></p><p><b> 因 子 </b></p><p> 根據(jù)以上語法圖,我們只要對語句處理程序和因子處理程序進行修改添加,即可實現(xiàn)增加INC和
36、DEC操作,首先對語句處理程序進行如下修改: </p><p> 語句中形如++A,——A修改:</p><p> if(sym==jiajia||sym==jianjian)//++a,--a</p><p><b> {</b></p><p> if(sym==jiajia)</p><
37、p><b> {</b></p><p><b> getsymdo;</b></p><p> if(sym==ident)</p><p><b> {</b></p><p> i=position(id,*ptx);</p><p&g
38、t;<b> if(i==0)</b></p><p><b> {</b></p><p> error(11);</p><p><b> }</b></p><p><b> else</b></p><p><
39、;b> {</b></p><p> if(table[i].kind!=variable)</p><p><b> {</b></p><p> error(12);</p><p><b> i=0;</b></p><p><b>
40、; }</b></p><p><b> else</b></p><p><b> {</b></p><p> gendo(lod,lev-table[i].level,table[i].adr);//生成指令,將變量放到棧頂</p><p> gendo(lit,0,1)
41、;//生成指令,把常量取到運行棧頂</p><p> gendo(opr,0,2);//生成指令,棧頂加次棧頂</p><p> gendo(sto,lev-table[i].level,table[i].adr);//生成指令,結(jié)果寫回變量地址單元</p><p><b> getsymdo;</b></p><
42、;p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> else //--a</p><p><b>
43、 {</b></p><p><b> getsymdo;</b></p><p> if(sym==ident)</p><p><b> {</b></p><p> i=position(id,*ptx);</p><p><b> i
44、f(i==0)</b></p><p><b> {</b></p><p> error(11);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</
45、b></p><p> if(table[i].kind!=variable)</p><p><b> {</b></p><p> error(12);</p><p><b> i=0;</b></p><p><b> }</b>
46、</p><p><b> else</b></p><p><b> {</b></p><p> gendo(lod,lev-table[i].level,table[i].adr);//生成指令,取變量放大棧頂</p><p> gendo(lit,0,1);//生成指令,取常數(shù)到棧頂
47、</p><p> gendo(opr,0,3);//生成指令,棧頂減次棧頂</p><p> gendo(sto,lev-table[i].level,table[i].adr);//生成指令,結(jié)果寫回變量地址單元</p><p><b> getsymdo;</b></p><p><b> }&l
48、t;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 隨后修改如A++,A——</p><p> if(sym==jiajia||sym==jian
49、jian)//a++,a--</p><p><b> {</b></p><p> addop=sym;</p><p> gendo(lod,lev-table[i].level,table[i].adr); //把變量的值壓入棧</p><p> gendo(lit,0,1);</p>
50、;<p> if(addop==jiajia)</p><p><b> {</b></p><p> gendo(opr,0,2); </p><p> gendo(sto,lev-table[i].level,table[i].adr); </p><p><b> }</b&
51、gt;</p><p><b> else</b></p><p><b> {</b></p><p> gendo(opr,0,3);</p><p> gendo(sto,lev-table[i].level,table[i].adr); </p><p>&l
52、t;b> }</b></p><p><b> getsymdo;</b></p><p><b> }</b></p><p> 這樣,對JIAJIA和JIANJIAN操作就擴充完成。 擴充+=和-=操作 這兩個操作都是一種對變量進行賦值的形式,其合法的語句形式的語法圖如下所示: 根據(jù)圖
53、3,在已經(jīng)處理部分的基礎(chǔ)上,添加對+=運算和-=運算的擴充,相關(guān)代碼添加如下: </p><p> if(sym==jiadeng||sym==jiandeng)</p><p><b> {</b></p><p> addop=sym;</p><p><b> getsymdo;</b>
54、;</p><p> gendo(lod,lev-table[i].level,table[i].adr); /*把變量的值壓入棧*/</p><p> factordo(nxtlev,ptx,lev);</p><p> if(addop==jiadeng)</p><p><b> {</b>&l
55、t;/p><p> gendo(opr,0,2);/*生成加法指令*/</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> gendo(opr,0,3);
56、/*生成減法指令*/</p><p><b> }</b></p><p> }這樣就完成了對+=運算和-=運算的添加。 </p><p> 增加條件語句else</p><p><b> 該語句的語法圖如</b></p><p> 只要在STATEMENT修改如
57、下代碼:</p><p> if(sym==elsesym){</p><p><b> cx2=cx;</b></p><p> gendo(jmp,0,0);</p><p> code[cx1].a=cx;</p><p> getsymdo;</p>
58、;<p> statementdo(nxtlev,ptx,lev);/*處理else后的語句*/</p><p> code[cx2].a=cx;</p><p><b> }</b></p><p><b> else</b></p><p><b> {<
59、/b></p><p> code[cx1].a=cx;</p><p><b> }</b></p><p> 這樣ELSE語句擴充完畢</p><p> 為了顯示錯誤更清晰我增加了顯示錯誤原因的語句</p><p> 具體代碼在ERROR中實現(xiàn)</p><p
60、><b> switch(n)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> printf("常數(shù)說明中的“=”寫成了“:=”。\n");</p><p><b>
61、 break; </b></p><p><b> case 2:</b></p><p> printf("常數(shù)說明中的“=”后應(yīng)是數(shù)字。\n");</p><p><b> break;</b></p><p><b> case 3:</
62、b></p><p> printf("常數(shù)說明中的標(biāo)識符后應(yīng)是“=”。\n");</p><p><b> break;</b></p><p><b> case 4:</b></p><p> printf("const,var,procedure后
63、應(yīng)為標(biāo)識符。\n");</p><p><b> break;</b></p><p><b> case 5:</b></p><p> printf("漏掉了“,”或“;”。\n");</p><p><b> break;</b>&l
64、t;/p><p><b> case 6:</b></p><p> printf("過程說明后的符號不正確(應(yīng)是語句開始符,或過程定義符)。\n");</p><p><b> break;</b></p><p><b> case 7:</b>&l
65、t;/p><p> printf("應(yīng)是語句開始符。\n");</p><p><b> break;</b></p><p><b> case 8:</b></p><p> printf("程序體內(nèi)語句部分的后跟符號不正確。\n");</p&g
66、t;<p><b> break;</b></p><p><b> case 9:</b></p><p> printf("程序結(jié)尾丟了句號“.”。\n");</p><p><b> break;</b></p><p><
67、b> case 10:</b></p><p> printf("語句之間漏了“;”。\n");</p><p><b> break;</b></p><p><b> case 11:</b></p><p> printf("標(biāo)志符未說
68、明。\n");</p><p><b> break;</b></p><p><b> case 12:</b></p><p> printf("在“:=”或“+=”或“-=”左部標(biāo)志符屬性應(yīng)是變量。\n");</p><p><b> break
69、;</b></p><p><b> case 13:</b></p><p> printf("缺少“:=”或“+=”或“-=”。\n");</p><p><b> break;</b></p><p><b> case 14:</b&g
70、t;</p><p> printf("call后應(yīng)為標(biāo)志符。\n");</p><p><b> break;</b></p><p><b> case 15:</b></p><p> printf("call后標(biāo)志符屬性應(yīng)為過程。\n");&l
71、t;/p><p><b> break;</b></p><p><b> case 16:</b></p><p> printf("條件語句中丟了“then”。\n");</p><p><b> break;</b></p><
72、p><b> case 17:</b></p><p> printf("丟了“end”或“;”。\n");</p><p><b> break;</b></p><p><b> case 18:</b></p><p> printf(
73、"while型循環(huán)語句中丟了“do”。\n");</p><p><b> break;</b></p><p><b> case 19:</b></p><p> printf("語句后的符號不正確。\n");</p><p><b>
74、break;</b></p><p><b> case 20:</b></p><p> printf("應(yīng)為關(guān)系運算符。\n");</p><p><b> break;</b></p><p><b> case 21:</b>&l
75、t;/p><p> printf("表達式內(nèi)標(biāo)志符屬性不能是過程。\n");</p><p><b> break;</b></p><p><b> case 22:</b></p><p> printf("表達式內(nèi)中漏掉右括號“)”。\n");<
76、;/p><p><b> break;</b></p><p><b> case 23:</b></p><p> printf("因子后的非法符號。\n");</p><p><b> break;</b></p><p>&
77、lt;b> case 24:</b></p><p> printf("表達式的開始符不能是此符號。\n");</p><p><b> break;</b></p><p><b> case 30:</b></p><p> printf(&quo
78、t;number的最大位數(shù)為。\n");</p><p><b> break;</b></p><p><b> case 31:</b></p><p> printf("數(shù)越界。\n");</p><p><b> break;</b>
79、;</p><p><b> case 32:</b></p><p> printf("最大的嵌套層數(shù)不能大于層。\n");</p><p><b> break;</b></p><p><b> case 33:</b></p>
80、<p> printf("格式錯誤,應(yīng)是右括號。\n");</p><p><b> break;</b></p><p><b> case 34:</b></p><p> printf("格式錯誤,應(yīng)是左括號。\n");</p><p>
81、;<b> break;</b></p><p><b> case 35:</b></p><p> printf("read()中的變量名沒有聲明過。\n");</p><p><b> break;</b></p><p><b>
82、 case 36:</b></p><p> printf("“;”寫成了“,”。\n");</p><p><b> break;</b></p><p><b> }</b></p><p><b> 這樣代碼修改完畢</b><
83、/p><p> 我還改進了一個形如var a;b;或者const a;b;語句錯誤</p><p> 添加錯誤編號36(“;”寫成了“,”)。</p><p> if(sym==semicolon)</p><p><b> {</b></p><p><b> getsymdo&
84、lt;/b></p><p> if(sym==ident)</p><p><b> { </b></p><p> error(36);</p><p><b> }</b></p><p> 改變了聲明符號時無法重復(fù)或無法改變聲明順序。</p>
85、;<p> 具體方法是講源代碼中 </p><p> memcpy(nxtlev,statbegsys,sizeof(bool)*symnum);</p><p> nxtlev[ident]=true;</p><p> nxtlev[period]=true;</p><p> testdo(nxtl
86、ev,declbegsys,7);</p><p> 增加VARSYM與CONSTSYM后跟符號集</p><p><b> 修改后變?yōu)?lt;/b></p><p> memcpy(nxtlev,statbegsys,sizeof(bool)*symnum);</p><p> nxtlev[ident]=true;
87、</p><p> nxtlev[period]=true;</p><p> nxtlev[constsym]=true;</p><p> nxtlev[varsym]=true;</p><p> testdo(nxtlev,declbegsys,7);</p><p> 最后為了實行人性化操作我增加了
88、編譯程序循環(huán)執(zhí)行的方法</p><p> 具體方法是在主函數(shù)中加入</p><p><b> while(1)</b></p><p> { //保證用戶連續(xù)運行程序</p><p> ..............</
89、p><p> ..............</p><p> ..............</p><p> getchar(); //退出程序的字符標(biāo)號</p><p> printf("\n退出程序請按q鍵,繼續(xù)運行請按其它鍵!\t");</p><p> scanf("%c&q
90、uot;,&ch);</p><p> if(ch=='q')</p><p> break;//退出程序</p><p><b> else</b></p><p> system("cls");//清屏*/</p><p><b>
91、 }</b></p><p><b> 調(diào)試情況:</b></p><p> 形如var a;b;或者const a;b;語句錯誤</p><p> 文件名為test1.txt</p><p><b> var a;</b></p><p> cons
92、t d=2;</p><p><b> var b;</b></p><p> const c=1;</p><p><b> begin</b></p><p><b> a:=d;</b></p><p><b> b:=c;&l
93、t;/b></p><p><b> write(a);</b></p><p><b> write(b)</b></p><p><b> end.</b></p><p><b> 改動前程序執(zhí)行情況</b></p>&l
94、t;p><b> 改動后程序執(zhí)行情況</b></p><p> 我還改進了一個形如var a;b;或者const a;b;語句錯誤</p><p> 添加錯誤編號36(“;”寫成了“,”)。</p><p> 文件名為test2.txt</p><p><b> var a;b;</b&g
95、t;</p><p> const c=1;b:=2;</p><p><b> begin</b></p><p><b> a:=c;</b></p><p><b> write(a)</b></p><p><b> end.
96、</b></p><p><b> 程序執(zhí)行情況:</b></p><p> 調(diào)試if then else</p><p> 文件名為else.txt</p><p><b> var a,b;</b></p><p><b> begin&l
97、t;/b></p><p><b> read(a);</b></p><p><b> if a<0</b></p><p><b> then</b></p><p><b> b:=-1</b></p><p&
98、gt;<b> else</b></p><p><b> b:=1;</b></p><p><b> write(a);</b></p><p><b> write(b)</b></p><p><b> end.</b&g
99、t;</p><p><b> 運行結(jié)果:</b></p><p><b> 調(diào)試++,――</b></p><p> 文件名為++.txt</p><p> var a,b,c,d;</p><p><b> begin</b></p&
100、gt;<p><b> a:=1;</b></p><p><b> b:=2;</b></p><p><b> c:=9; </b></p><p><b> c++;</b></p><p><b> c--;<
101、;/b></p><p><b> --c;</b></p><p><b> ++c;</b></p><p><b> a+=--c;</b></p><p><b> a-=c--;</b></p><p>
102、d:=(++b)+c;</p><p><b> write(b);</b></p><p><b> write(c);</b></p><p><b> write(d);</b></p><p><b> write(a)</b></p
103、><p><b> end.</b></p><p><b> 運行結(jié)果:</b></p><p><b> 設(shè)計技巧:</b></p><p> 萬事無捷徑,只有一步一步腳踏實地。只有相對的技巧,就是對原程序的錯誤編號,標(biāo)記。對改動的錯誤利用編譯程序的斷點功能檢查錯誤。書
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 編譯原理課程設(shè)計報告--pl0編譯器的擴充
- 編譯原理pl0課程設(shè)計報告
- 編譯原理課程設(shè)計報告-編譯程序構(gòu)造
- 第二章pl0編譯程序-
- 編譯原理課程設(shè)計-- pl0語言的擴充
- 編譯原理課程設(shè)計---pl0編輯器擴充
- 編譯原理實驗報告pl0
- 編譯原理課程設(shè)計--對pl0進行擴充和修改
- 編譯原理課程設(shè)計--對pl0進行擴充和修改
- 編譯原理課程設(shè)計--對PL0進行擴充和修改.doc
- 編譯原理課程設(shè)計-pl_0編譯器及其擴充
- pl0擴展編譯器_設(shè)計文檔
- 編譯原理課程設(shè)計報告_編譯器
- 編譯程序構(gòu)造原理和實現(xiàn)
- 編譯原理課程設(shè)計報告
- 編譯原理課程設(shè)計報告
- 編譯原理課程設(shè)計報告--編譯器實現(xiàn)
- 編譯原理遞歸下降子程序課程設(shè)計報告
- 編譯原理課程設(shè)計--- 詞法分析程序
- 編譯原理課程設(shè)計--編譯器
評論
0/150
提交評論