日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

编译原理第三章 词法分析与有穷自动机

發(fā)布時(shí)間:2024/3/12 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译原理第三章 词法分析与有穷自动机 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

詞法分析與有窮自動(dòng)機(jī)

  • 1、詞法分析程序的功能
  • 2、正規(guī)集、正規(guī)式、正規(guī)文法、確定的有窮自動(dòng)機(jī)、不確定的有窮自動(dòng)機(jī)的定義。
  • 3、正規(guī)文法、有窮自動(dòng)機(jī)、正規(guī)式三者之間的互相轉(zhuǎn)換方法。不確定有窮自動(dòng)機(jī)到確定自動(dòng)機(jī)的轉(zhuǎn)換及確定有窮自動(dòng)機(jī)的化簡(jiǎn)。

1、詞法分析程序的功能

詞法分析程序(詞法分析器、掃描器):執(zhí)行詞法分析的程序,以字符串形式的源程序作為輸入,以單詞符號(hào)或單詞符號(hào)表示的源程序作為輸出。
語(yǔ)言的單詞符號(hào)一般可分為五種:關(guān)鍵字、標(biāo)識(shí)符、常數(shù)、運(yùn)算符和界符。
詞法分析的輸出形式:(單詞種別,單詞自身的值)

2、正規(guī)集、正規(guī)式、正規(guī)文法、確定的有窮自動(dòng)機(jī)、不確定的有窮自動(dòng)機(jī)的定義。

語(yǔ)言單詞符號(hào)的兩種定義方式:正規(guī)式+正規(guī)文法。
正規(guī)式:設(shè)有字母表∑={a1,a2,a3,a4…an},在該字母表上的正規(guī)式D和所表示的正規(guī)集L有以下關(guān)系。
正規(guī)式D包含三種運(yùn)算符:連接"."、或“|”、閉包“*”,優(yōu)先級(jí)遞增。連接一般忽略不寫(xiě)。
L(e1 | e2) = L(e1) ∪L(e2).
L(e1e2) = L(e1)L(e2)
L((e1)*) = L( (e1)*)
正規(guī)式等價(jià):正規(guī)式R1和R2描述的正規(guī)集相同。
正規(guī)文法和正規(guī)式的轉(zhuǎn)換
正規(guī)文法 => 正規(guī)式:

  • 把每個(gè)非終結(jié)符按照規(guī)則表示成一個(gè)正規(guī)式方程(|變?yōu)?#43;,->變?yōu)?#61;)
  • 依照求解規(guī)則以及分配律、交換律和結(jié)合律求解,以獲得以文法開(kāi)始符號(hào)S的不含非終結(jié)符的正規(guī)式。
  • 求解規(guī)則:

    • 若x = ax + b,則 x = x*b;
    • 若x = xa + b,則x = bx*

    正規(guī)式 => 正規(guī)文法:
    字母表∑上的正規(guī)式R到文法G={VN,VT,P,S}的轉(zhuǎn)換。

  • 令VN=∑
  • 對(duì)正規(guī)式R選擇終結(jié)符Z生成規(guī)則Z->R,并令Z為文法G的開(kāi)始符號(hào)S
  • 對(duì)形如A->ab的規(guī)則,新增非終結(jié)符B使之轉(zhuǎn)換為A->aB,B->b兩個(gè)規(guī)則
  • 對(duì)形如A -> a*b的規(guī)則,轉(zhuǎn)換為A ->aA | b
  • 不斷使用3.和4.,直到每條規(guī)則左部只含一個(gè)非終結(jié)符,滿足正規(guī)文法的定義
  • 有窮自動(dòng)機(jī),具有離散輸入輸出的一種抽象數(shù)學(xué)模型,有“確定的”和“不確定”之分,兩類都能準(zhǔn)確識(shí)別正規(guī)集。
    確定有窮自動(dòng)機(jī)(DFA):一個(gè)確定有窮自動(dòng)機(jī)M是五元組M={Q,∑,f,S,Z}。
    Q是有窮狀態(tài)集合,一個(gè)元素對(duì)應(yīng)一個(gè)狀態(tài)
    ∑是有窮輸入字母表,每個(gè)元素是一個(gè)輸入字符
    f是從Q X ∑到Q的單值映射:f(qi, a) = qi
    S是唯一的初態(tài)
    Z是終態(tài)集
    一個(gè)DFA可由狀態(tài)轉(zhuǎn)化矩陣表示,DFA M存在狀態(tài)轉(zhuǎn)化圖。
    對(duì)于∑*的任何字符串B,如存在一條從初態(tài)到某一終態(tài)的道路上的所有弧的標(biāo)記和為B,則稱B為該DFA M所接受(識(shí)別)。特別的,如果初態(tài)等于某一終態(tài),則ε可被M識(shí)別(接受)。
    非確定有窮自動(dòng)機(jī)(NFA):一個(gè)非確定有窮自動(dòng)機(jī)M是五元組{Q,∑,f,S,Z}
    其中Q,∑,Z意義等同于DFA,狀態(tài)轉(zhuǎn)換函數(shù)f不是單值函數(shù),是多值函數(shù)。
    f(qi,a)={某些狀態(tài)集合},a可以為ε,S是非空初態(tài)集。

    通過(guò)數(shù)學(xué)歸納法,對(duì)于每個(gè)NFA M存在DFA M,使L(M)=L(M)

    3、正規(guī)文法、有窮自動(dòng)機(jī)、正規(guī)式三者之間的互相轉(zhuǎn)換方法。不確定有窮自動(dòng)機(jī)到確定自動(dòng)機(jī)的轉(zhuǎn)換及確定有窮自動(dòng)機(jī)的化簡(jiǎn)。

    由正規(guī)式R構(gòu)造NFA:P40
    NFA確定化為DFA:P41
    DFA的化簡(jiǎn):P44
    有窮自動(dòng)機(jī)到正規(guī)式的轉(zhuǎn)換:P46
    右線性文法到有窮自動(dòng)機(jī)的轉(zhuǎn)換:P47
    左線性文法到有窮自動(dòng)機(jī)的轉(zhuǎn)換:P48

    總結(jié)

    以上是生活随笔為你收集整理的编译原理第三章 词法分析与有穷自动机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。