4西安電子科技大學(xué)《編譯原理》

上傳人:fgh****35 文檔編號:248188141 上傳時間:2024-10-22 格式:PPT 頁數(shù):22 大小:272.50KB
收藏 版權(quán)申訴 舉報 下載
4西安電子科技大學(xué)《編譯原理》_第1頁
第1頁 / 共22頁
4西安電子科技大學(xué)《編譯原理》_第2頁
第2頁 / 共22頁
4西安電子科技大學(xué)《編譯原理》_第3頁
第3頁 / 共22頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《4西安電子科技大學(xué)《編譯原理》》由會員分享,可在線閱讀,更多相關(guān)《4西安電子科技大學(xué)《編譯原理》(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,上機(jī)作業(yè),一、上機(jī)作業(yè)的目的,通過做上機(jī)題加深對編譯器構(gòu)造原理和方法的理解,鞏固所學(xué)知識。,會用正規(guī)式和產(chǎn)生式設(shè)計簡單語言的語法;,會用遞歸下降子程序編寫編譯器或解釋器;,會寫上機(jī)報告。,二、上機(jī)題目簡單的函數(shù)繪圖語言,2.1 題目簡述,實(shí)現(xiàn)簡單函數(shù)繪圖的語句,循環(huán)繪圖(,FOR-DRAW,),比例設(shè)置(,SCALE,),角度旋轉(zhuǎn)(,ROT,),坐標(biāo)平移(,ORIGIN,),注釋 (-或/),屏幕(窗口)的坐標(biāo)系,左上角為原點(diǎn),x,方向從左向右增長,y,方向從上到下增長(與一般的坐標(biāo)系方向相反),1,函數(shù)繪

2、圖源程序舉例,-函數(shù),f(t)=t,的圖形,origin is(100,300);-,設(shè)置原點(diǎn)的偏移量,rot is 0;-,設(shè)置旋轉(zhuǎn)角度(不旋轉(zhuǎn)),scale is(1,1);-,設(shè)置橫坐標(biāo)和縱坐標(biāo)的比例,for T from 0 to 200 step 1 draw(t,0);,-,橫坐標(biāo)的軌跡(縱坐標(biāo)為0),for T from 0 to 150 step 1 draw(0,-t);,-,縱坐標(biāo)的軌跡(橫坐標(biāo)為0),for T from 0 to 120 step 1 draw(t,-t);,-,函數(shù),f(t)=t,的軌跡,默認(rèn)值:,origin is(0,0),rot is 0;,sc

3、ale is(1,1),2,2.2 語句的語法和語義,語句滿足下述規(guī)定(原則):,各類語句可以按任意次序書寫,且語句以分號結(jié)尾。源程序中的語句以它們出現(xiàn)的先后順序處理。,ORIGIN、ROT,和,SCALE,語句只影響其后的繪圖語句,且遵循最后出現(xiàn)的語句有效的原則。例如,若有下述,ROT,語句序列:,ROT IS 0.7;,ROT IS 1.57;,則隨后的繪圖語句將按1.57而不是0.7弧度旋轉(zhuǎn)。,無論,ORIGIN、ROT,和,SCALE,語句的出現(xiàn)順序如何,圖形的變換順序總是:,比例變換旋轉(zhuǎn)變換平移變換,語言對大小寫不敏感,例如,for、For、FOR,等,均被認(rèn)為是同一個保留字。,語句

4、中表達(dá)式的值均為雙精度類型,旋轉(zhuǎn)角度單位為弧度且為逆時針旋轉(zhuǎn),平移單位為點(diǎn)。,3,2.2.1 循環(huán)繪圖(,FOR-DRAW,),語句,語法:,語義:,舉例:,說明:,注意:,FOR T FROM,起點(diǎn),TO,終點(diǎn),STEP,步長,DRAW,(,橫坐標(biāo),縱坐標(biāo),);,令,T,從,起點(diǎn),到,終點(diǎn),、,每次改變一個,步長,,,繪制出由(,橫坐標(biāo),,,縱坐標(biāo),)所規(guī)定的點(diǎn)的軌跡。,FOR T FROM 0 TO 2*PI STEP PI/50 DRAW(,cos,(T),sin(T);,該語句的作用是令,T,從0到2*,PI、,步長,PI/50,,繪制出各個點(diǎn)的坐標(biāo)(,cos,(T),sin(T),,

5、即一個單位園。,由于繪圖系統(tǒng)的默認(rèn)值是,ORIGIN IS(0,0);,ROT IS 0;,SCALE IS(1,1);,所以實(shí)際繪制出的圖形是在屏幕左上角的一個點(diǎn)。,4,2.2.2 比例設(shè)置(,SCALE,),語句,語法:,語義:,舉例:,說明:,SCALE IS(,橫坐標(biāo)比例因子,縱坐標(biāo)比例因子,);,設(shè)置橫坐標(biāo)和縱坐標(biāo)的比例,并分別按照比例因子進(jìn)行縮放。,SCALE IS(100,100);,將橫坐標(biāo)和縱坐標(biāo)的比例設(shè)置為1:1,且放大100倍。,語法:,語義:,舉例:,說明:,2.2.3 坐標(biāo)平移(,ORIGIN,),語句,ORIGIN IS,(,橫坐標(biāo),縱坐標(biāo));,將坐標(biāo)系的原點(diǎn)平移到

6、橫坐標(biāo)和縱坐標(biāo)規(guī)定的點(diǎn)處。,ORIGIN IS(360,240);,將原點(diǎn)從,(0,0),平移到,(360,240),處。,若:,SCALE IS(100,100/3);,則:,橫坐標(biāo)和縱坐標(biāo)的比例為,3:1,。,5,2.2.4 角度旋轉(zhuǎn)(,ROT,),語句,語法:,語義:,舉例:,說明:,ROT IS,角度;,逆時針旋轉(zhuǎn)角度所規(guī)定的弧度值。具體計算公式:,旋轉(zhuǎn)后,X,=,旋轉(zhuǎn)前,X*COS,(,角度)+旋轉(zhuǎn)前,Y*SIN,(,角度),旋轉(zhuǎn)后,Y,=,旋轉(zhuǎn)前,Y*COS,(,角度)-旋轉(zhuǎn)前,X*SIN,(,角度),公式的推導(dǎo)可參閱輔助教材58頁。,ROT IS PI/2;,逆時針旋轉(zhuǎn),PI/2

7、,,,即,逆時針旋轉(zhuǎn)90度。,2.2.5 注釋語句,注釋的作用:,語法:,語義:,便于理解;,屏蔽暫時不需要的語句。,/,This is a comment line,或 -此行是注釋,/或-之后,直到行尾,均是注釋,6,語句功能的測試,ORIGIN IS(360,240);,/(1),原點(diǎn)移至(360,240),SCALE IS(100,100);,/(2),圖形放大100,SCALE IS(100,100/3);,/(3),縱坐標(biāo)縮小為三分之一,ROT IS PI/2;,/(4),逆時針旋轉(zhuǎn)90度,-繪制園的軌跡,FOR T FROM 0 TO 2*PI STEP PI/50 DRAW(,

8、cos,(T),sin(T);,僅(1)和(2),加入(3),加入(4),7,其他函數(shù)圖形:,8,2.3 記號的語法和語義,記號的種類:,常數(shù),參數(shù),函數(shù)(調(diào)用),常數(shù)、參數(shù)、函數(shù)、保留字、運(yùn)算符、分隔符,常數(shù)字面量,和標(biāo)識符形式的,常量名,均稱為常數(shù)。字面量的形式為普通的數(shù)值,如果沒有小數(shù)部分,可以省略小數(shù)點(diǎn)。例如,2、2.、2.0,都是合法的常數(shù)。標(biāo)識符,PI、E,也是常數(shù),它們分別代表圓周率和自然對數(shù)的底。常數(shù)不能有符號位,如,-1,和,+2,不是常數(shù)而是(一元運(yùn)算的)表達(dá)式。,本作圖語言中唯一的、已經(jīng)被定義好的,變量名,T,被稱為參數(shù),,它也是一個表達(dá)式。由于作圖語言中只有這唯一的變量

9、,因此作圖語言中無需變量或參數(shù)的聲明和定義語句。,為簡單起見,當(dāng)前的函數(shù)僅支持正弦函數(shù),Sin,,,余弦函數(shù),Cos,,,正切函數(shù),Tan,,,算術(shù)平方根函數(shù),Sqrt,以及指數(shù)函數(shù),Exp,和對數(shù)函數(shù),Ln,。,有興趣的同學(xué)可以再加入其他函數(shù)。,9,2.3 記號的語法和語義(續(xù)),保留字,運(yùn)算符,分隔符,語句中具有固定含義的標(biāo)識符,包括:,ORIGIN,SCALE,ROT,IS,TO,STEP,DRAW,FOR,FROM,PLUS,MINUS,MUL,DIV,POWER,即:,+-*/*,SEMICO,L_BRACKET,R_BRACKET,COMMA,即:,;(),10,三、題目與要求,用

10、某種程序設(shè)計語言(如,C/C+、Pascal、Java,等)和遞歸下降子程序方法編寫完整的解釋器,由于環(huán)境限制,本書統(tǒng)一采用,C/C+,程序設(shè)計語言;,利用編譯器編寫工具,LEX/YACC,提供的方式規(guī)定繪圖語言的詞法和語法,用,C/C+,語言編寫解釋器的語義。,兩種方法的語義部分基本相同,主要區(qū)別在于詞法和語法分析器的構(gòu)造是手工完成還是借助于工具完成。,3.1 解釋器的實(shí)現(xiàn)方法,題目:,為函數(shù)繪圖語言編寫一個解釋器,解釋器接受用繪圖語言編寫的源程序,經(jīng)過語法和語義分析之后,將源程序所規(guī)定的圖形顯示在顯示屏(或顯示窗口)上,目的:,通過自己動手編寫解釋器,掌握語言翻譯特別是語言識別的基本方法,

11、11,3.1 解釋器的實(shí)現(xiàn)方法,兩種方法的語義部分基本相同,主要區(qū)別在于詞法和語法分析器的構(gòu)造是手工完成還是借助于工具完成。,12,3.3 任務(wù)劃分與上機(jī)報告,任務(wù)劃分:(三個階段),詞法分析器,語法分析器,語義分析器,機(jī)時比例(大概):,2:2:2,要求:,驗(yàn)收,經(jīng)過測試的程序,提交上機(jī)報告。其中上機(jī)報告可以包括以下內(nèi)容:,任務(wù)與目的,軟件設(shè)計,a.,軟件的總體結(jié)構(gòu)與模塊劃分,b.,關(guān)鍵算法與重要數(shù)據(jù)結(jié)構(gòu),測試?yán)淘O(shè)計與測試結(jié)果分析,總結(jié)、體會、改進(jìn)建議等,工作方法建議:,每個階段均進(jìn)行設(shè)計與測試,并且寫出報告;采用增量式設(shè)計;工作全部完成后將三個階段的工作進(jìn)行總結(jié)即可。,13,四、遞歸子程

12、序方法的參考解決方案,4.1詞法分析器的構(gòu)造,詞法分析器的構(gòu)造步驟:,正規(guī)式,NFADFA,最小,DFA,編寫程序測試,4.1.1 記號的設(shè)計,詞法分析器的三個任務(wù):,1,濾掉源程序中的無用成分;,2輸出記號供語法分析器使用;,3識別非法輸入,并將其標(biāo)記為“出錯記號”。,記號的組成:記號的,類別,和,屬性,。,記號的數(shù)據(jù)結(jié)構(gòu):,struct,Token,/,記號的數(shù)據(jù)結(jié)構(gòu),Token_Type,type;/,類別,char*lexeme;/,屬性,原始輸入的字符串,double value;/,屬性,若記號是常數(shù)則是常數(shù)的值,double(*,FuncPtr,)(double);,/,屬性,若

13、記號是函數(shù)則是函數(shù)的指針,;,14,4.1詞法分析器的構(gòu)造(續(xù)1),函數(shù)繪圖語言中記號的分類與表示,enum,Token_Type,/,記號的類別,ORIGIN,SCALE,ROT,IS,/,保留字(一字一碼),TO,STEP,DRAW,FOR,FROM,/,保留字,T,/,參數(shù),SEMICO,L_BRACKET,R_BRACKET,COMMA,/,分隔符,PLUS,MINUS,MUL,DIV,POWER,/,運(yùn)算符,FUNC,/,函數(shù),CONST_ID,/,常數(shù),NONTOKEN,/,空記號(源程序結(jié)束),ERRTOKEN,/,出錯記號(非法輸入),;,15,4.1.2 模式的正規(guī)式表示,l

14、etter=a-,zA,-Z,digit=0-9,COMMENT =/|-,WHITE_SPACE=(|t|n),+,SEMICO =;,L_BRACKET=(,R_BRACKET=),COMMA =,PLUS =+,MINUS =-,MUL =*,DIV =/,POWER =*,CONST_ID =digit,+,(.digit,*,)?,ID =letter,+,(letter|digit),*,由于是手工構(gòu)造詞法分析器,而正規(guī)式個數(shù)越少越便于程序的編寫,因此設(shè)計上采用相同模式的記號共用一個正規(guī)式的方法。,常數(shù)的字面量部分設(shè)計為,CONST_ID,,,而常量名則合并到,ID,中。,這就帶來

15、一個問題,函數(shù)繪圖語言中的保留字、常量名、參數(shù)名、以及函數(shù)名均被描述為,ID,,,當(dāng)識別出,ID,時,如何再細(xì)分它們?,16,4.1.3 區(qū)分記號的符號表,static Token,TokenTab,=,CONST_ID,PI,3.1415926,NULL,CONST_ID,E,2.71828,NULL,T,T,0.0,NULL,FUNC,SIN,0.0,sin,FUNC,COS,0.0,cos,FUNC,TAN,0.0,tan,FUNC,LN,0.0,log,FUNC,EXP,0.0,exp,FUNC,SQRT,0.0,sqrt,ORIGIN,ORIGIN,0.0,NULL,SCALE,SC

16、ALE,0.0,NULL,ROT,ROT,0.0,NULL,IS,IS,0.0,NULL,FOR,FOR,0.0,NULL,FROM,FROM,0.0,NULL,TO,TO,0.0,NULL,STEP,STEP,0.0,NULL,DRAW,DRAW,0.0,NULL,;,預(yù)先定義且內(nèi)容不變的符號表更多被習(xí)慣地稱為,字典,。,17,例2.2,語句,ROT IS PI/6,的記號流,18,4.1.4 正規(guī)式的,DFA,letter=a-,zA,-Z,digit=0-9,COMMENT =/|-,WHITE_SPACE=(|t|n),+,SEMICO =;,L_BRACKET =(,R_BRACKET =),COMMA =,PLUS =+,MINUS =-,MUL =*,DIV =/,POWER =*,CONST_ID =digit+(.digit*)?,ID =letter+(letter|digit),*,注意:,WHITE_SPACE,(,白空)沒有在,DFA,中。,如何處理白空?,19,4.1.5 詞法分析器的程序框架,struct,Token token=ERRTOKEN,“,”,

展開閱讀全文
溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!