混亂的First,Follow,Firstvt和Lastvt

來源:互聯網
上載者:User
文章目錄
  • 混亂的First,Follow,Firstvt和Lastvt  
混亂的First,Follow,Firstvt和Lastvt  

2011-06-21 00:10:15|  分類: 學習筆記 |  標籤:first  follow  firstvt  lastvt  編譯原理  |字型大小 訂閱

學編譯原理的時候,印象最深的莫過於這四個集合了,而且也十分為之糾結。
首先要知道First和Follow是一對,而Firstvt和Lastvt是一對。
然後要知道這兩對都是幹什麼的。
First和Follow是為了畫預測性分析表的(在LL(1)分析法處)。
而Firstvt和Lastvt是為了畫算符優先關係表的(就是表裡面填優先大於小於等於的那個)。

然後要注意他們可都是終結符的集合。

再就是他們如何構建的問題了
先說First和Follow
First
如A->aB | CD
這裡麵包含了組成First(A)的兩種情況:
           以終結符開頭,    當然要把這個終結符放到A的First裡
           以非終結符開頭, 先把C的First放到A的First裡
                                        再看如果C的First中有空的話就把D的First放到A的First裡,如果D也有空的話往後依次類推
技巧:First一般從下往上找。
           如果要找A的First,我們要找A的定義式,即A在左邊的式子,看著他的右邊來找。

Follow
如S->(L) | aL | LC   
找Follow的三種情況:先在候選式(右邊)中找到該非終結符,如L(注意例中只有一個定義,但找Follow要看到所有右邊出現該非終結符的)
           如果L的右邊是終結符,    那麼這個終結符加入L的Follow
           如果L的右邊是非終結符, 那麼把這個非終結符的First除去空加到L的Follow中
           如果L處在末尾,               那麼,'->'左邊符號的Follow成為L的Follow
另外要注意的是:
           開始符號的Follow中要加上‘#’        
技巧:Follow一般從上往下找。
           如果要找L的Follow,要從式子的右邊找到L,然後來找L的Follow,這與First是不同的。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
再說下Firstvt和Lastvt
Firstvt
找Firstvt的三條規則:如果要找A的Firstvt,A的候選式中出現:
           A->a.......,即以終結符開頭,該終結符入Firstvt
           A->B.......,即以非終結符開頭,該非終結符的Firstvt入A的Firstvt
           A->Ba.....,即先以非終結符開頭,緊跟終結符,則終結符入Firstvt

Lastvt
找Lastvt的三條規則:如果要找A的Lastvt,A的候選式中出現:
           A->.......a,即以終結符結尾,該終結符入Lastvt
           A->.......B,即以非終結符結尾,該非終結符的Lastvt入A的Lastvt
           A->.....aB,即先以非終結符結尾,前面是終結符,則終結符入Firstvt

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.