單詞的詞法分析程序設計_第1頁
單詞的詞法分析程序設計_第2頁
單詞的詞法分析程序設計_第3頁
免費預覽已結束,剩余2頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單詞的詞法分析程序設計1實驗題LI對于給定的源程序(如C語言或Pascal等),要求從組成源程序的字符行中 尋找出單詞,并給出它們的種別和屬性一一輸出二元組序列。以便提供給語法分析 的時候使用。要求能識別所有的關鍵字,標志符等,并且能夠對出先的一些詞法規 則的錯誤進行必要的處理。2實驗內容和要求1. 給出語言的詞法規則描述2. 要求識別標識符、關鍵字、整常數、字符常數、浮點常數等3. 要求能識別單界符:+, -,一,X,:等符號4. 雙界符:/*,:=,等5. 要求完成一些相關的輔助任務。一個任務實濾掉源程序中的注釋、空格、制表 符、換行符;另一個任務是使編譯器能夠將發現的錯誤信息與源程序的出

2、錯位置聯 系起來,以及錯誤的類型等。3待分析的詞法文件文件名稱為:C:l.txt (分析結果見7:程序結果)4實驗分析與設計過程實驗分析與設汁過程1. 實驗說明分析語言的選擇:山于對C語言比較熟悉,我選擇分析的程序為C語言編寫 的程序。2. 詞法分析器的功能以及輸出形式分析1)功能:i. 對于輸入的C源程序,輸出單詞符號,把相應的源程序的字符串轉換成單詞符 號的序列。ii. 保存符號表,為所有的標識符建立一個符號表,以便于在語法和語義分 析的時候使用。iii. 錯誤輸出與提示2)結果輸出形式:i. 對于token用二元組輸出,ii. 符號表可以單獨輸出到文件中iii. 錯誤輸出到界面即可3.

3、單詞符號的表示各種關鍵字(保留字、基本字),各種運算符、各種分界符,都用一個種別碼來標識。例:關鍵字break.保留字asm、運算符” +”、在源程序中1,2,3 表示。即所規定得到的中別碼對應的詞法描述為:1為關鍵字2為標志符3為常數4為運算符或界符5算法描述由于這是一個用高級語言編寫一個詞法分析器,使之能識別輸入串,并把分析 結果(單詞符號,標識符,關鍵字等等)輸出輸入源程序,輸入單詞符號,本詞法分析 器可以辨別關鍵字,標識符,常數,運算符號和某些界符,運用了文件讀入來獲取源程 序代碼,再對該源程序代碼進行詞法分析,這就是詞法分析器的基本功能當詞法分 析器調用預處理子程序處理出一串輸入字符

4、放進掃描緩沖區之后,分析器就從此緩 沖區中逐一識別單詞符號.當緩沖區里的字符串被處理完之后,它乂調用預處理子程 序來處理新吊編寫的時候,使用了文件的輸入和輸出,以便于詞法分析的通用型,同時在 文件輸出時,并保存在輸出文件output文件中。從左到右掃描程序,通過初始化:1為關鍵字; 2為標志符;3為常數 ;4為運算符或界符。掃描過程如下:1.指針掃描所打開的文件首,如果是字母開始處理字符關鍵字或者標識符2. 為單字符運算、限界符,寫入輸出文件并將掃描文件指針回退一個字符;3. 為雙字符運算、限界符,寫輸出文件;4. 讀入的下一個字符為文件結束符;5. 只考慮是否為單字符運算、限界符,若是,寫輸

5、出文件6程序框圖如下7程序結果如下(源程序見磁盤)8實驗感想詞法分析是編譯的第一個階段,它的主要任務是從左至右掃描整個程序的每 個字符,將源程序變換為單詞療;列,以其內部的表示形式提供給語法分析的各階 段。而做這個實驗是使用的是c語言,并沒有使用自動生成的詞法分析器LEX,但 是在做這個實驗的時候參考了相關的書籍之后,使用文件打開,并保存輸出結果的 方式,這樣比較能夠使程序的通用性加強,同時作為剛開始接觸到編譯的前端的 我,發現了自己還有許多的不足之處。為了以后的語法分析能夠結構更加的明晰, 那么就必須認真的研讀老師所給的相關資料,同時要學會分析較完整定義的相關文 法,使之更為直接明了。這個實驗主要花費的時間,并不是在于詞法分析即源文件 中的scan掃描程序階段,而是在設置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論