網站首頁 文學常識 簡歷 公文文書 文學名著 實用文 人生哲理 作文 熱點話題作文
當前位置:文萃咖 > 知識文庫 > 實用文檔

‘教案’課程教案範本參考

欄目: 實用文檔 / 發佈於: / 人氣:1.03W

‘教案’課程教案範本參考

‘教案’課程教案範本參考

課程教案---第三章-1

章節名稱第三章高級語言及其語法描述

3.1對於詞法分析器的要求3.2詞法分析器的設計

3.3.1正規式與正規集3.3.2確定有限自動機

課程類型理論課√討論課□習題課□實驗課□上機課□技能課□其他□

授課時間第4週週二3、4節教學進度

學生考勤應到:實到:請假:曠課:

教學方法多媒體+講授

目的要求:

瞭解詞法分析器的功能和輸出形式,熟練掌握詞法分析器設計的原理和方法,能夠以轉換圖為工具使用某種語言的編寫並調試一個掃描器,‘。

重點難點:

重點:詞法分析器的設計;難點:狀態轉換圖的實現

課後作業:

作業批改記錄:

教學後記:

教學過程:

詞法分析的任務:從左至右逐個字符地對源程序進行掃描,產生一個個單詞符號。

詞法分析器(Lexical Analyzer)又稱掃描器(Scanner):執行詞法分析的程序

3.1對於詞法分析器的要求

3.1.1詞法分析器的功能和輸出形式

功能:輸入源程序、輸出單詞符號

單詞符號的種類或者輸出形式:

基本字:如begin,repeat,

標識符--表示各種名字:如變量名、數組名和過程名

常數:各種類型的常數

運算符:+,-,*,/,

界符:逗號、分號、括號和空白

輸出的單詞符號的表示形式:

(單詞種別,單詞自身的值)

單詞種別通常用整數編碼表示。若一個種別只有一個單詞符號,則種別編碼就代表該單詞符號。假定基本字、運算符和界符都是一符一種。

若一個種別有多個單詞符號,則對於每個單詞符號,給出種別編碼和自身的值。標識符單列一種;標識符自身的值表示成按機器字節劃分的內部碼。

常數按類型分種;常數的值則表示成標準的二進制形式。

3.1.2詞法分析器作為一個獨立子程序

詞法分析是作為一個獨立的階段,是否應當將其處理為一遍呢?作為獨立階段的優點:結構簡潔、清晰和條理化,有利於集中考慮詞法分析一些枝節問題,不作為一遍:將其處理為一個子程序。

3.2詞法分析器的設計

3.2.1輸入、預處理

輸入串放在輸入緩衝區中。

預處理子程序:剔除無用的空白、跳格、回車和換行等編輯性字符;區分標號區、捻接續行和給出句末符等

掃描緩衝區

3.2.2單詞符號的識別:超前搜索

基本字識別:需要超前搜索才能確定哪些是基本字

標識符識別:字母開頭的字母數字串,後跟界符或算符

常數識別:識別出算術常數並將其轉變為二進制內碼錶示。有些也要超前搜索。

算符和界符的識別:把多個字符複合而成的算符和界符拼合成一個單詞符號。

3.2.3狀態轉換圖

概念:狀態轉換圖是一張有限方向圖。結點代表狀態,用圓圈表示;狀態之間用箭弧連結,箭弧上的標記(字符)代表射出結狀態下可能出現的輸入字符或字符類;一張轉換圖只包含有限個狀態,其中有一個為初態,實際上至少要有一個終態。

一個狀態轉換圖可用於識別(或接受)一定的字符串。

幾點重要限制--不必使用超前搜索:

所有基本字都是保留字;用户不能用它們作自己的標識符基本字作為特殊的標識符來處理;不用特殊的狀態圖來識別,只要查保留字表。

如果基本字、標識符和常數(或標號)之間沒有確定的運算符或界符作間隔,則必須使用一個空白符作間隔。

3.2.4狀態轉換圖的實現

做法:

1)對不含迴路的分叉結,可用一個CASE語句或一組IF-THEN-ELSE語句實現

2)對含迴路的狀態結,可對應一段由WHILE結構和IF語句構成的程序.

3)終態結表示識別出某種單詞符號,因此,對應語句為

RETURN(C,VAL)

其中,C為單詞種別,VAL為單詞自身值.

3.2詞法分析器的設計

3.2.1輸入、預處理

輸入串放在輸入緩衝區中。

預處理子程序:剔除無用的空白、跳格、回車和換行等編輯性字符;區分標號區、捻接續行和給出句末符等

掃描緩衝區

3.2.2單詞符號的識別:超前搜索

基本字識別:需要超前搜索才能確定哪些是基本字

標識符識別:字母開頭的字母數字串,後跟界符或算符

常數識別:識別出算術常數並將其轉變為二進制內碼錶示。有些也要超前搜索。

算符和界符的識別:把多個字符複合而成的算符和界符拼合成一個單詞符號。

3.2.3狀態轉換圖

概念:狀態轉換圖是一張有限方向圖。結點代表狀態,用圓圈表示;狀態之間用箭弧連結,箭弧上的標記(字符)代表射出結狀態下可能出現的輸入字符或字符類;一張轉換圖只包含有限個狀態,其中有一個為初態,實際上至少要有一個終態。

一個狀態轉換圖可用於識別(或接受)一定的字符串。

幾點重要限制--不必使用超前搜索:

所有基本字都是保留字;用户不能用它們作自己的標識符

基本字作為特殊的標識符來處理;不用特殊的狀態圖來識別,只要查保留字表。

如果基本字、標識符和常數(或標號)之間沒有確定的運算符或界符作間隔,則必須使用一個空白符作間隔。

3.2.4狀態轉換圖的實現

做法:

1)對不含迴路的分叉結,可用一個CASE語句或一組IF-THEN-ELSE語句實現

2)對含迴路的狀態結,可對應一段由WHILE結構和IF語句構成的程序.

3)終態結表示識別出某種單詞符號,因此,對應語句為

RETURN(C,VAL)

其中,C為單詞種別,VAL為單詞自身值.