Phương pháp tiên đoán

Một phần của tài liệu ctdich (Trang 234 - 250)

2. Phương pháp phân tích cú pháp trên xuống

2.3. Phương pháp tiên đoán

Cấu tạo:

xi … x2 x1 $ ai … a2 a1 $

Bộ phân tích Bảng tiên đoán M

Kết quả

Stack Buffer

Giáo trình Kiến trúc máy tính và Hệ điều hành

235

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Cấu tạo:

- Stack: xixi-1…x0$ với xt Δ) - Buffer: aiai-1…a0$ với at Σ

- Bảng tiên đoán M:

Chỉ số hàng: A Δ

Chỉ số cột: a Σ

M[A,a]: A hoặc rỗng

Giáo trình Kiến trúc máy tính và Hệ điều hành

236

CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Hoạt động: Tại một thời điểm nếu:

- Ở stack là $ và buffer là $: x đúng CP VPG - Ở đỉnh stack và buffer aΣ: đối sánh a

- Ở đỉnh stack là AΔ thì nếu:

M[A,a]=A : triển khai A ở đỉnh stack

M[A,a]=rỗng: xâu x không đúng CP VPG

Giáo trình Kiến trúc máy tính và Hệ điều hành

237

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Giải thuật:

Sử dụng: 1 stack và 1 buffer Khởi tạo: - stack là S$

- Buffer là x$

Lặp:

If (stack là $) và (buffer là $) then x đúng cp và dừng vòng lặp

Giáo trình Kiến trúc máy tính và Hệ điều hành

238

CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Giải thuật:

Else if (aΣ ở đỉnh stack và buffer) then đối sánh a ở đỉnh stack và buffer Else if (AΔ ở đỉnh stack)

và (a Σ ở đỉnh buffer) then if (M[A,a]=A)then

triển khai A ở đỉnh stack

Else x k0 đúng CP VPG, dừng vòng lặp

Giáo trình Kiến trúc máy tính và Hệ điều hành

239

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Ví dụ: SaA

AbA | c

Xâu x: abbc có đúng CP của VP trên ?

Giáo trình Kiến trúc máy tính và Hệ điều hành

240

CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Ví dụ:

a b c $

S SaA

A AbA Ac

Giáo trình Kiến trúc máy tính và Hệ điều hành

241

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Ví dụ:

STT Stack Buffer Hành động

(0) S$ abbc$ Triển khai SaA

(1) aA$ abbc$ Đối sánh

(2) A$ bbc$ Triển khai AbA

(3) bA$ bbc$ Đối sánh

(4) A$ bc$ Triển khai AbA

Giáo trình Kiến trúc máy tính và Hệ điều hành

242

CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Ví dụ:

STT Stack Buffer Hành động

(5) bA$ bc$ Đối sánh

(6) A$ c$ Triển khai Ac

(7) c$ c$ Đối sánh

(8) $ $ Chấp nhận x đúng cp

Giáo trình Kiến trúc máy tính và Hệ điều hành

243

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Xây dựng bảng tiên đoán M: 2 qui tắc

(1) sx A thì M[A,a]=A với afirst()

(1) sx A thì M[A,a]=A với a

follow(A)

Giáo trình Kiến trúc máy tính và Hệ điều hành

244

CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Xây dựng bảng tiên đoán M:

Ví dụ: xây dựng bảng tiên đoán M cho vp:

E TE’

E’+TE’ | T FT’

T’*FT’ | F(E) | id

(1)

(2) (3) (4)

(5) (6) (7) (8)

Giáo trình Kiến trúc máy tính và Hệ điều hành

245

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Xây dựng bảng tiên đoán M:

- Xét sx: E TE’ có First(TE’)={ (, id } M[E,(]=M[E,id]=ETE’

- Xét sx: E’+TE’ có First(+TE’)={+}

M[E’,+]=E’+TE’

- Xét sx: TFT’ có First(FT’)={(, id}

M[T,(]=M[T,id]=TFT’

Giáo trình Kiến trúc máy tính và Hệ điều hành

246

CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Xây dựng bảng tiên đoán M:

- Xét sx: T’*FT’ có First(*FT’)={*}

M[T’,*]=T’*FT’

- Xét sx: F(E) có First((E))={(}

M[F,(]=F(E)

- Xét sx: Fid có First(id)={id}

M[F,id]=Fid

Giáo trình Kiến trúc máy tính và Hệ điều hành

247

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Xây dựng bảng tiên đoán M:

- Xét sx: E’ có follow(E’)={), $}

M[E’,)]=M[E’,$]=E’

- Xét sx: T’ có follow(T’)={),$,+}

M[T’,)]=M[T’,$]=M[T’,+]=T’

ETE’TFT’ F(E)(TE’)(T)(FT’) E TE’ T+TE’ FT’+TE’

Giáo trình Kiến trúc máy tính và Hệ điều hành

248

CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Xây dựng bảng tiên đoán M:

+ * id ( ) $

E ETE’ ETE’

E’ E’+TE’ E’ ε E’ε

T TFT’ TFT’

T’ T’ ε T’*FT’ T’ ε T’ ε

F Fid F(E)

Giáo trình Kiến trúc máy tính và Hệ điều hành

249

2. Phương pháp phân tích cú pháp trên xuống 2.3. Phương pháp tiên đoán

Xây dựng bảng tiên đoán M:

Bài tập:

xây dựng bảng tiên đoán M cho các vp LL(1) trong phần vài phép biến đổi về LL(1). Tự

cho xâu vào và phân tích theo PP tiên đoán

Giáo trình Kiến trúc máy tính và Hệ điều hành

250

CHƯƠNG 4. CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

Một phần của tài liệu ctdich (Trang 234 - 250)

Tải bản đầy đủ (PPT)

(268 trang)