做業二——文法和語言

1.文法G(Z):Z->aZb|ab定義的是什麼樣的語言?blog

  文法G有兩條產生式規則:語法

  (1)Z->aZbim

  (2)Z->abimg

  經過對第一個產生式使用n-1次,而後使用第二個產生式一次,獲得Z->aZb->aaZbb->aaaZbbb->aaaZbbb->......an-1bn-1->anbn語言

2.寫出教材22頁例2.2中標識符的文法四元組形式。集合

  設I爲標識符,L爲字母,D爲數字co

  VN爲非空非終結符號,VT爲非空終結符號,P爲產生式集合,S爲開始符號數字

  P = {   I -> Lps

       I -> ILab

       I -> ID

       ......

       L -> a

       D -> 0

       D -> 1

     ......

     D -> 9  }

  S = I

  G:S ->L | IL | ID

      L -> a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z

      D -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

3.寫出下列表達式的最左推導、最右推導和語法樹。

G(E):

E=> E + T | T

T=>T * F | F

F=>(E)| i

  • i*i+i

  • i+i*i

  • i+(i+i)

 注意觀察最左和最右推導過程的不一樣,以及語法樹的異同。

   i*i+i

  最左推導:

  E => E+T => T+T => T*F+T => F*F+T => i*F+T => i*i+T => i*i+F => i*i+i

  最右推導:

  E => E+T => E+F => E+i => T+i =>T*F+i => T*i+i => F*i+i => i*i+i

  語法樹:

      

   i+i*i

  最左推導:

  E => E+T => T+T => F+T => i+T => i+T*F => i+F*F =>i+i*i

  最右推導:

  E => E+T =>E+T*F => E+T*i => E+F*i => E+i*i => T+i*i => F+i*i => i+i*i

  語法樹:

      

 

   i+(i+i)

  最左推導:

  E => E+T => T+T => F+T => i+T => i+F => i+(E) => i+(E+T) => i+(T+T) => i+(F+T) => i+(i+T) => i+(i+F) => i+(i+i)

  最右推導:

   E => E+T => E+F => E+(E) => E+(E+T)  => E+(E+F) => E+(E+i) => E+(T+i) => E+(F+i) => E+(i+i) => T+(i+i) => F+(i+i) => i+(i+i)

  語法樹:

       

相關文章
相關標籤/搜索