編譯原理-如何實(shí)現(xiàn)詞法分析

如何實(shí)現(xiàn)詞法分析?要引入一個有限狀態(tài)機(jī)的概念。

有限狀態(tài)機(jī)

是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型。

狀態(tài)存儲關(guān)于過去的信息,就是說:它反映從系統(tǒng)開始到現(xiàn)在時刻的輸入變化。轉(zhuǎn)移指示狀態(tài)變更,并且用必須滿足來確使轉(zhuǎn)移發(fā)生的條件來描述它。

通俗的來講,就是有多個狀態(tài),每個狀態(tài)都能接收一定的輸入,然后進(jìn)入到下一個狀態(tài)。

詞法分析的過程

編譯器將源程序以字符串的形式讀入,每次取出一個字符,作為當(dāng)前的狀態(tài)。然后判定下一個字符的類型,根據(jù)已知的規(guī)則,決斷源程序的意圖。

關(guān)鍵字、標(biāo)識符的識別

屏幕快照 2019-05-10 下午6.03.37.png

當(dāng)讀取到一個字符后繼續(xù)往后讀取,直到讀取到空格或者tab等,此時生成了一個單詞,判斷單詞是否在關(guān)鍵字里,如果在,則為關(guān)鍵字,否則為標(biāo)識符。

< > =的識別

image.png
以此類推,我們可以拆解出所有的種別碼。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容