- 相關(guān)推薦
‘教案’課程教案-第三章-1
教案:課程教案---第三章-1-教案作者:編譯原理章節(jié)名稱第三章高級(jí)語(yǔ)言及其語(yǔ)法描述
3.1對(duì)于詞法分析器的要求3.2詞法分析器的設(shè)計(jì)
3.3.1正規(guī)式與正規(guī)集3.3.2確定有限自動(dòng)機(jī)
課程類型理論課√討論課□習(xí)題課□實(shí)驗(yàn)課□上機(jī)課□技能課□其他□
授課時(shí)間第4周周二3、4節(jié)教學(xué)進(jìn)度
學(xué)生考勤應(yīng)到:實(shí)到:請(qǐng)假:曠課:
教學(xué)方法多媒體+講授
目的要求:
了解詞法分析器的功能和輸出形式,熟練掌握詞法分析器設(shè)計(jì)的原理和方法,能夠以轉(zhuǎn)換圖為工具使用某種語(yǔ)言的編寫并調(diào)試一個(gè)掃描器。
重點(diǎn)難點(diǎn):
重點(diǎn):詞法分析器的設(shè)計(jì);難點(diǎn):狀態(tài)轉(zhuǎn)換圖的實(shí)現(xiàn)
課后作業(yè):
作業(yè)批改記錄:
教學(xué)后記:
教學(xué)過(guò)程:
詞法分析的任務(wù):從左至右逐個(gè)字符地對(duì)源程序進(jìn)行掃描,產(chǎn)生一個(gè)個(gè)單詞符號(hào)。
詞法分析器(Lexical Analyzer)又稱掃描器(Scanner):執(zhí)行詞法分析的程序
3.1對(duì)于詞法分析器的要求
3.1.1詞法分析器的功能和輸出形式
功能:輸入源程序、輸出單詞符號(hào)
單詞符號(hào)的種類或者輸出形式:
基本字:如begin,repeat,
標(biāo)識(shí)符--表示各種名字:如變量名、數(shù)組名和過(guò)程名
常數(shù):各種類型的常數(shù)
運(yùn)算符:+,-,*,/,
界符:逗號(hào)、分號(hào)、括號(hào)和空白
輸出的單詞符號(hào)的表示形式:
(單詞種別,單詞自身的值)
單詞種別通常用整數(shù)編碼表示。若一個(gè)種別只有一個(gè)單詞符號(hào),則種別編碼就代表該單詞符號(hào)。假定基本字、運(yùn)算符和界符都是一符一種。
若一個(gè)種別有多個(gè)單詞符號(hào),則對(duì)于每個(gè)單詞符號(hào),給出種別編碼和自身的值。標(biāo)識(shí)符單列一種;標(biāo)識(shí)符自身的值表示成按機(jī)器字節(jié)劃分的內(nèi)部碼。
常數(shù)按類型分種;常數(shù)的值則表示成標(biāo)準(zhǔn)的二進(jìn)制形式。
3.1.2詞法分析器作為一個(gè)獨(dú)立子程序
詞法分析是作為一個(gè)獨(dú)立的階段,是否應(yīng)當(dāng)將其處理為一遍呢?作為獨(dú)立階段的優(yōu)點(diǎn):結(jié)構(gòu)簡(jiǎn)潔、清晰和條理化,有利于集中考慮詞法分析一些枝節(jié)問(wèn)題。
不作為一遍:將其處理為一個(gè)子程序。
3.2詞法分析器的設(shè)計(jì)
3.2.1輸入、預(yù)處理
輸入串放在輸入緩沖區(qū)中。
預(yù)處理子程序:剔除無(wú)用的空白、跳格、回車和換行等編輯性字符;區(qū)分標(biāo)號(hào)區(qū)、捻接續(xù)行和給出句末符等
掃描緩沖區(qū)
3.2.2單詞符號(hào)的識(shí)別:超前搜索
基本字識(shí)別:需要超前搜索才能確定哪些是基本字
標(biāo)識(shí)符識(shí)別:字母開(kāi)頭的字母數(shù)字串,后跟界符或算符
常數(shù)識(shí)別:識(shí)別出算術(shù)常數(shù)并將其轉(zhuǎn)變?yōu)槎M(jìn)制內(nèi)碼表示。有些也要超前搜索。
算符和界符的識(shí)別:把多個(gè)字符復(fù)合而成的算符和界符拼合成一個(gè)單詞符號(hào)。
3.2.3狀態(tài)轉(zhuǎn)換圖
概念:狀態(tài)轉(zhuǎn)換圖是一張有限方向圖。結(jié)點(diǎn)代表狀態(tài),用圓圈表示;狀態(tài)之間用箭弧連結(jié),箭弧上的標(biāo)記(字符)代表射出結(jié)狀態(tài)下可能出現(xiàn)的輸入字符或字符類;一張轉(zhuǎn)換圖只包含有限個(gè)狀態(tài),其中有一個(gè)為初態(tài),實(shí)際上至少要有一個(gè)終態(tài)。
一個(gè)狀態(tài)轉(zhuǎn)換圖可用于識(shí)別(或接受)一定的字符串。
幾點(diǎn)重要限制--不必使用超前搜索:
所有基本字都是保留字;用戶不能用它們作自己的標(biāo)識(shí)符
基本字作為特殊的標(biāo)識(shí)符來(lái)處理;不用特殊的狀態(tài)圖來(lái)識(shí)別,只要查保留字表。
如果基本字、標(biāo)識(shí)符和常數(shù)(或標(biāo)號(hào))之間沒(méi)有確定的運(yùn)算符或界符作間隔,則必須使用一個(gè)空白符作間隔。
3.2.4狀態(tài)轉(zhuǎn)換圖的實(shí)現(xiàn)
做法:
1)對(duì)不含回路的分叉結(jié),可用一個(gè)CASE語(yǔ)句或一組IF-THEN-ELSE語(yǔ)句實(shí)現(xiàn)
2)對(duì)含回路的狀態(tài)結(jié),可對(duì)應(yīng)一段由WHILE結(jié)構(gòu)和IF語(yǔ)句構(gòu)成的程序.
3)終態(tài)結(jié)表示識(shí)別出某種單詞符號(hào),因此,對(duì)應(yīng)語(yǔ)句為
RETURN(C,VAL)
其中,C為單詞種別,VAL為單詞自身值.
3.2詞法分析器的設(shè)計(jì)
3.2.1輸入、預(yù)處理
輸入串放在輸入緩沖區(qū)中。
預(yù)處理子程序:剔除無(wú)用的空白、跳格、回車和換行等編輯性字符;區(qū)分標(biāo)號(hào)區(qū)、捻接續(xù)行和給出句末符等
掃描緩沖區(qū)
3.2.2單詞符號(hào)的識(shí)別:超前搜索
基本字識(shí)別:需要超前搜索才能確定哪些是基本字
標(biāo)識(shí)符識(shí)別:字母開(kāi)頭的字母數(shù)字串,后跟界符或算符
常數(shù)識(shí)別:識(shí)別出算術(shù)常數(shù)并將其轉(zhuǎn)變?yōu)槎M(jìn)制內(nèi)碼表示。有些也要超前搜索。
算符和界符的識(shí)別:把多個(gè)字符復(fù)合而成的算符和界符拼合成一個(gè)單詞符號(hào)。
3.2.3狀態(tài)轉(zhuǎn)換圖
概念:狀態(tài)轉(zhuǎn)換圖是一張有限方向圖。結(jié)點(diǎn)代表狀態(tài),用圓圈表示;狀態(tài)之間用箭弧連結(jié),箭弧上的標(biāo)記(字符)代表射出結(jié)狀態(tài)下可能出現(xiàn)的輸入字符或字符類;一張轉(zhuǎn)換圖只包含有限個(gè)狀態(tài),其中有一個(gè)為初態(tài),實(shí)際上至少要有一個(gè)終態(tài)。
一個(gè)狀態(tài)轉(zhuǎn)換圖可用于識(shí)別(或接受)一定的字符串。
幾點(diǎn)重要限制--不必使用超前搜索:
所有基本字都是保留字;用戶不能用它們作自己的標(biāo)識(shí)符
基本字作為特殊的標(biāo)識(shí)符來(lái)處理;不用特殊的狀態(tài)圖來(lái)識(shí)別,只要查保留字表。
如果基本字、標(biāo)識(shí)符和常數(shù)(或標(biāo)號(hào))之間沒(méi)有確定的運(yùn)算符或界符作間隔,則必須使用一個(gè)空白符作間隔。
3.2.4狀態(tài)轉(zhuǎn)換圖的實(shí)現(xiàn)
做法:
1)對(duì)不含回路的分叉結(jié),可用一個(gè)CASE語(yǔ)句或一組IF-THEN-ELSE語(yǔ)句實(shí)現(xiàn)
2)對(duì)含回路的狀態(tài)結(jié),可對(duì)應(yīng)一段由WHILE結(jié)構(gòu)和IF語(yǔ)句構(gòu)成的程序.
3)終態(tài)結(jié)表示識(shí)別出某種單詞符號(hào),因此,對(duì)應(yīng)語(yǔ)句為
RETURN(C,VAL)
其中,C為單詞種別,VAL為單詞自身值.
【‘教案’課程教案-第三章-1】相關(guān)文章:
認(rèn)識(shí)1的教案02-17
《識(shí)字1》教案03-07
小班課程教案03-06
安全的課程教案01-27
游戲課程教案02-08
體育課程教案01-06
校園暴力課程教案01-01
科學(xué)課程的教案02-25
音樂(lè)課程教案02-05
美術(shù)課程教案01-20