詞法分析小結 詞法分析器的作用

2021-07-23 16:40:31 字數 804 閱讀 4921

詞法分析是編譯的第一階段。詞法分析器的主要任務是讀入源程式的輸入字元、將它們組成詞素,生成並輸出乙個詞法單元序列,每個詞法單元對應於乙個詞素。這個詞法單元序列被輸出到語法分析器進行語法分析

詞法分析器通常還要和符號表進行互動。當詞法分析器發現了乙個識別符號的詞素時,它要將這個詞素新增到符號表中,在某些情況下,詞法分析器會從符號表中讀取有關識別符號的種類的資訊,以確定向語法分析器傳送哪個詞法單元。

詞法分析器在編譯器中負責讀取源程式,因此它還會完成一些識別詞素之外的具體其他任務。

(1)過濾掉源程式中的注釋和空白(空格、換行符和製表符以及在輸入中用於分隔詞法單元的其他字元)

(2)將編譯器生成的錯誤訊息和源程式的位置聯絡起來。

有時,詞法分析器可以分成兩個級聯的處理階段:

1)掃瞄階段主要負責完成一些不需要生詞詞法單元的簡單處理,比如刪除注釋和將多個連續的空白字元壓縮成乙個字元

2)詞法分析階段是較為複雜的部分,它處理掃瞄階段的輸出並生成詞法單元

把編譯器的分析部分分為詞法分析和語法分析階段主要有以下幾個原因

a. 最重要的一點是考慮編譯器的設計。將詞法分析和語法分析分離開來,使得任務簡化。

b. 提高編譯器的效率。將兩個階段分離開來,使得我們能夠專注於處理每個階段對應的任務

c. 增強編譯器的可移植性。輸入裝置相關的特殊性可以被限制在詞法分析器中

詞法分析器

這是我自己的第一篇部落格,就分享一下最近才做完的編譯原理實驗,詞法分析器。本次實驗中我用mysql資料庫儲存自動機狀態表,這樣做的目的只是為了在後續的課設中可以繼續使用現在的 這一段 並不是太完善,發出來只是為了太完善。裡面還有很多問題,比如對字元和字串的識別,不知道為什麼資料庫無法將 和 轉換到我...

詞法分析器

include using namespace std const int maxn 1e3 10 int n 輸入文字的行數 char buffer maxn maxn 緩衝區 int len maxn 輸入文字每行的列數 struct out 輸出格式 out string a,int b re...

詞法分析器

簡單的詞法分析器 標題 南山荒野客 20 05 2019 詞法分析器 編譯原理 c 語言 include include includechar prog 80 token 6 char ch int syn,p,m 0,n,row,sum 0 int biaoji 0 char rwtab 18 ...