編譯原理及實現技術:9-語法分析-自頂向下語法分析概述_第1頁
編譯原理及實現技術:9-語法分析-自頂向下語法分析概述_第2頁
編譯原理及實現技術:9-語法分析-自頂向下語法分析概述_第3頁
編譯原理及實現技術:9-語法分析-自頂向下語法分析概述_第4頁
編譯原理及實現技術:9-語法分析-自頂向下語法分析概述_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第三章:語法分析

自頂向下語法分析概述

三個重要的集合1.自頂向下語法分析概述基本思想:檢查程序是否為文法的句子按定義從開始符出發能否推導出程序例子:ZaBb[1]|aD[2]分析一個串abbdBb[3]|bB[4]Dd[5]|bD[6]1.自頂向下語法分析概述選擇規則的策略窮舉的方法效率非常的差考慮更多的信息,如輸入流根據輸入流選取規則考察輸入流中的幾個符號2.1First集的定義設G=(VT,VN,S,P)是上下文無關文法,(VT

VN)*

First()={aVT|*a...}(if*then{}else)2.2Follow集的定義設G=(VT,VN,S,P)是上下文無關文法,AVN,S是開始符號Follow(A)={aVT|S+...Aa...}(ifS*...Athen{#}else)2.3Predict集的定義Predict(A)=First(),當First()不含 =First()-{}Follow(A),當First()含3.1計算First(X)集若XVT,First(X)={X}若XVN則

{a|Xa…P,aVT}First(X)若XVN,且有產生式X,則First(X)若XVN,有產生式XY1Y2…Yn,且Y1,Y2,…,YiVN

當Y1,Y2,…,Yi-1*,

則First(Y1)-{},First(Y2)-{},…First(Yi-1)-{},First(Yi)都包含在First(X)中。當Yi*(i=1,2,…n),將{}并入First(X)中。3.2計算First()集設符號串=X1X2…Xn,若=,則First()求First(Xi)i=1,2...n若n=1則First(X1)=First()若n≥2且j=1,2...i-1,都有First(Xj)則令First(Xj)-{}First(),且First(Xi)First()若所有X都能*,即都有First(Xi)則

First()4.計算Follow集對開始符S,#Follow(S);有規則B1Ab2bVT,則bFollow(A);對于一般情形,有規則B1A2First(2)-{}Follow(A)若有BA或者是BA,且*,則Follow(B)Follow(A)5.計算Predict集Predict(A)

First(),當First()不含=

(First()-{})Follow(A),當First()含例子【1】ETE'【2】E'+TE'【3】E'【4】TFT'【5】T'*FT'【6】T'【7】F(E)【8】FiFirst集{i,(}{+}{}{i,(}{*}{}{(}{i}Follow集E={#,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論