日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

正则表达式Regular Expression

發布時間:2025/3/21 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式Regular Expression 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《編譯原理》第三章習題

我們的教材是那本經典的“龍書”:《Compiler: Principles, Techniques, and Tools》
灰常灰常喜歡小監老師的課,就是做作業的記憶太痛苦了。。。

3.3.2 試描述下列正則表達式定義的語言


1) a(a|b)*a
以a開頭且以a結尾,中間由零個或多個a或b的實例構成的串
2) ((ε|a)b*)*
零個或多個a或b的實例構成的串
3)(a|b)*a(a|b)(a|b)
三個或多個a或b的實例構成的串,且倒數第三個實例一定為a。
4)a*ba*ba*ba*
零個或多個a的實例,三個b的實例構成的串。
!!5)(aa|bb)*((ab|ba)(aa|bb)*(ab|ba)(aa|bb)*)*
零個或偶數個a的實例,相同個數的b的實例構成的串

3.3.5


3) Comments, consisting of a string surround by /* and */, without an intervening*/, unless it is inside double-quotes (")
[plain]?view plaincopy
  • (\/\*)?(.*^(\/\*))?(“(.*)”|ε)?(.*^(\/\*))?(\*\/)??

  • 3.4.1 給出識別練習3.3.2中各個正則表達式所描述的語言的狀態轉換圖


    1) a(a|b)*a

    2) ((ε|a)b*)*

    3)(a|b)*a(a|b)(a|b)

    4)a*ba*ba*ba*

    !!5)(aa|bb)*((ab|ba)(aa|bb)*(ab|ba)(aa|bb)*)*


    3.6.2 為練習3.3.5中的每一個語言設計一個DFA或NFA


    Comments, consisting of a string surround by /* and */, without an intervening*/, unless it is inside double-quotes (")
    設計NFA如下:

    (感覺這個有些問題,不知道^可不可以用作轉移條件。。。。)

    3.6.5 給出如下練習中的NFA的轉換表


    1)練習3.6.3

    2)練習3.6.4

    3)圖 2-6


    3.7.1 將下列圖中的NFA轉換為DFA


    1)圖3-26
    ?
    2)圖3-29


    3)圖3-30



    3.7.3 用算法3.23和3.20將正則表達式轉換為DFA


    1) (a|b)*?
    由算法3.23得到NFA:

    由算法3.20得到DFA:

    2) (a*|b*)*?
    由算法3.23得到NFA:

    由算法3.20得到DFA:

    3) ((ε|a)b*)*
    由算法3.23得到NFA:

    由算法3.20得到DFA:

    此處可以看到 1) 2) 3)表示的語義是等價的,NFA可以有多種表示形式,但DFA是唯一的
    4)(a|b)*abb(a|b)*
    由算法3.23得到NFA:

    由算法3.20得到DFA:


    轉載請注明出處:http://blog.csdn.net/xiaowei_cqu/article/details/7764967

    總結

    以上是生活随笔為你收集整理的正则表达式Regular Expression的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。