版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 編譯原理課程設(shè)計詞法分析
- 編譯原理課程設(shè)計--詞法分析
- 編譯原理課程設(shè)計--- 詞法分析程序
- 課程設(shè)計----編譯原理詞法分析器
- 編譯原理課程設(shè)計報告詞法分析器
- 編譯原理課程設(shè)計詞法分析器文檔
- 編譯原理課程設(shè)計報告之詞法分析器
- 編譯原理課程設(shè)計-詞法語法分析器
- 編譯原理詞法分析器語法分析課程設(shè)計
- 編譯原理課程設(shè)計
- 編譯原理課程設(shè)計
- c-minus詞法分析和語法分析設(shè)計編譯器編譯原理課程設(shè)計
- 編譯原理課程設(shè)計--pascal語言詞法、語法分析器設(shè)計
- 編譯原理-詞法分析
- 編譯原理課程設(shè)計--c-編譯器詞法分析與語法分析的實(shí)現(xiàn)
- 編譯原理課程設(shè)計--編譯器
- 有窮自動機(jī)與詞法分析器
- 有限自動機(jī)與詞法分析器
- 編譯原理課程設(shè)計報告
- 編譯原理課程設(shè)計 (2)
評論
0/150
提交評論