2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  編譯原理課程設(shè)計</b></p><p>  一、使用詞法分析,語法分析將布爾表達(dá)式轉(zhuǎn)換為逆波蘭式</p><p>  二、LL(1)語法分析程序</p><p><b>  設(shè)計要求</b></p><p>  (1)對輸入文法,它能判斷是否為LL(1)文法,若是,則

2、轉(zhuǎn)(2);否則報錯并終止;</p><p> ?。?)輸入已知文法,由程序自動生成它的LL(1)分析表;</p><p>  (3)對于給定的輸入串,應(yīng)能判斷識別該串是否為給定文法的句型。</p><p>  三、設(shè)計題目:詞法自動機(jī)</p><p>  設(shè)計要求:用C語言或其它高級語言對PASCAL子集編制一個一遍掃描的小型編譯程序?qū)υ~法

3、分析,完成識別語言單詞的任務(wù)。對語法分析,若輸入串是文法的句子,則輸出語法分析成功,否則,給出錯誤的行號,錯誤的性質(zhì)。語法描述:文法: <程序>→begin <語句串> end <語句串>→<語句> { ;<語句> }<語句>→<賦值語句> | <條件語句> | <循環(huán)語句><賦值語句>→<變量>

4、 := <表達(dá)式><條件語句>→if <條件> then <語句><循環(huán)語句>→while <條件> do <語句><條件> →<表達(dá)式><關(guān)系符><表達(dá)式><表達(dá)式>→<項(xiàng)> { + <項(xiàng)> | — <項(xiàng)> }<項(xiàng)>→<因子>

5、; { * <因子> | / <因子> }<因子>→<變量> | <無符號整數(shù)> | ( <表達(dá)式> )<無符號整數(shù)>→<數(shù)字> { <數(shù)字> }<變量>→<標(biāo)識符><標(biāo)識符>→<字母> { <字母> | <數(shù)字> }<關(guān)系符>→ <

6、; | <= | > | >= | = | < ><字母>→ a | b | c | ... | x | y | z<數(shù)字</p><p>  四、設(shè)計題目:有限自動機(jī)的運(yùn)行</p><p><b>  設(shè)計目的: </b></p><p>  1、   

7、0;      理解有限自動機(jī)的作用 </p><p>  2、          利用轉(zhuǎn)態(tài)圖和狀態(tài)表表示有限自動機(jī) </p><p>  3、         

8、 以程序?qū)崿F(xiàn)有限自動機(jī)的運(yùn)行過程</p><p>  設(shè)計內(nèi)容:(注:題目詳細(xì)要求) </p><p>  利用狀態(tài)表和有限自動機(jī)的運(yùn)行原理編制程序,使得程序能夠識別一個輸入串是否為一個有效的符號串,具體可以選擇下面之一:無符號定點(diǎn)實(shí)數(shù)、自然數(shù)、整數(shù)、十六進(jìn)制數(shù)或其它自己定義的符號串。</p><p><b>  設(shè)計思想: </b></

9、p><p>  本程序?qū)崿F(xiàn)對無符號定點(diǎn)實(shí)數(shù)的判斷,正確接受,否則不接受。 </p><p>  本程序的關(guān)鍵在狀態(tài)表和緩沖區(qū)的運(yùn)用。首先定義了一個布爾型函數(shù)ReadALine把輸入的字符串送到緩沖區(qū)中;然后定義了布爾型函數(shù)Run 和Getchar實(shí)現(xiàn)對輸入字符串的正確性判斷,更改Run函數(shù)可以改變程序功能:如可將狀態(tài)表改變成識別“偶數(shù)”的有限自動機(jī)的狀態(tài)表。 </p>

10、<p>  附錄:(完整代碼) 有限自動機(jī)</p><p>  #include <stdio.h>#include <string.h>//狀態(tài)表相關(guān)存儲信息:#define STATE_NUMBER 4    //狀態(tài)數(shù)目#define CHAR_NUMBER 2&#

11、160;   //輸入字符的種類: d 和 .#define DIGIT 0    //輸入數(shù)字在狀態(tài)表中位于第0列//State[][]為狀態(tài)表,以整數(shù)組形式存放,0,1,2,3表示狀態(tài),-1表示沒有此狀態(tài)int State[STATE_NUMBER][CHAR_NUMBER]=  

12、;  {{1,-1},{1,2}, {3,-1}, {3,-1}};int Q[STATE_NUMBER] = {0,1,0,1};    //終態(tài)標(biāo)志:0非終態(tài),1終態(tài)。//緩沖區(qū)://輸入緩沖區(qū):由專門函數(shù)操作(ReadALine(),GetChar())#define BUFFER_SIZE 1

13、000    //表達(dá)式緩沖區(qū)大小char Buffer[BUFFER_SIZE];    //表達(dá)式緩沖區(qū),以'\0'表示結(jié)束int ipBuffer = 0;        //表達(dá)式緩</p><

14、;p>  附錄:詞法自動機(jī)。 </p><p>  import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.io.*;import java.util.*;class frame extends JFrame implements Acti

15、onListener{ JButton button1=new JButton("打開現(xiàn)有文件"); JButton button2=new JButton("現(xiàn)場輸入文件"); Choice ch=new Choice(); JButton button=new JButton("執(zhí)行"); TextArea ta

16、=new TextArea(); TextArea tb=new TextArea(); JFileChooser chooser=new JFileChooser(); FileInputStream readfile=null;  int b; byte buffer[]=new byte[25000];</p><p>  }

17、0;     if(j==n1-1)      {       tb.append(s+"\n");      }     

18、;  }     if((d[0]<=57&&d[0]>=48)||d[0]==45)     {      int j=0;      for(int i=1;i

19、<n1;i++)      {       String ss=s.substring(i,i+1);       byte f[]=ss.getBytes();     &#

20、160; if((f[0]<=57&&f[0]>=48)||f[0]==46)       {        j+=1;       }   &

21、#160;  }      if(j==n1-1)      {       tb.append(s+"\n");      } 

22、     }     if(d[0]==39)     {      int j=0;      for(int i=1;i<n1;i++) &

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論