Phương pháp Canonical LR (LR(1))

Một phần của tài liệu Bài giảng chương trình dịch (Trang 167 - 176)

- x đúng cú pháp của vpG Dừng vòng lặp

1.4.Phương pháp Canonical LR (LR(1))

- Trong PP SLR xung đột chỉ xảy ra ở những

thực thể Aα .

- Khi xảy ra xung đột ta có thể sử dụng PP

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

168

1. Phương pháp phân tích cú pháp dưới lên

1.4. Phương pháp Canonical LR (LR(1))

Cấu tạo: như SLRHoạt động: như SLRThuật toán: như SLR

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

169

1. Phương pháp phân tích cú pháp dưới lên

1.4. Phương pháp Canonical LR (LR(1))

Xây dựng bảng Canonical LR

- Văn phạm gia tố: như SLR - Thực thể: gồm có 2 phần

+ Phần nhân: giống thực thể trong SLR + Ký hiệu nhìn trước: aΣ

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

170

1. Phương pháp phân tích cú pháp dưới lên

1.4. Phương pháp Canonical LR (LR(1))

Xây dựng bảng Canonical LR

- Hàm tính bao đóng closure(Ii): 2 qui tắc

(1)Đưa tất cả các thực thể trong Ii vào closure(Ii)

(2)Cứ thực thể [Aα.Bβ,a]closure(Ii) mà Bγ

thì thêm [B.γ, b] với [B.γ, b]closure(Ii) và bfirst(βa)

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

171

1. Phương pháp phân tích cú pháp dưới lên

1.4. Phương pháp Canonical LR (LR(1))

Xây dựng bảng Canonical LR

- Qui tắc xác định First(α)

First(α)={(aΔ|α⇒+aβ)(a=$|α⇒+ε )} (adsbygoogle = window.adsbygoogle || []).push({});

- Hàm tính goto(Ii,X)

Goto(Ii,X)=Closure({AαX.β, a}) với {Aα.Xβ, a} Ii và XΔ)

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

172

1. Phương pháp phân tích cú pháp dưới lên

1.3. Phương pháp Canonical LR (LR(1))

Xây dựng bảng Canonical LR

- Qui tắc xác định hành động

(1)∃ [Aα.aβ,b] Ii và goto(Ii,a)=Ij với a Σ thì: Action[i,a]= Sj

(2)∃ [Aα.Xβ,b] Ii và goto(Ii,X)=Ij với X

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

173

1. Phương pháp phân tích cú pháp dưới lên

1.3. Phương pháp Canonical LR (LR(1))

Xây dựng bảng Canonical LR

- Qui tắc xác định hành động

(3)∃ [S’S.,$] Ii thì: Action[i,$]= accept

(4)∃ [Aα.,a]Ii thì Action[i,a]= Reduce Aα với A<>S’

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

174

1. Phương pháp phân tích cú pháp dưới lên

1.3. Phương pháp Canonical LR (LR(1))

Xây dựng bảng Canonical LR

- Trộn các tập thực thể

Với các tập thực thể có chung phần nhân,

khác nhau phần ký hiệu nhìn trước ta có thể trộn chúng lại với nhau để được một tập

thực thể mới có:

+ phần nhân: phần giống nhau

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

175 (adsbygoogle = window.adsbygoogle || []).push({});

1. Phương pháp phân tích cú pháp dưới lên

1.4. Phương pháp Canonical LR (LR(1))

Xây dựng bảng Canonical LR Ví dụ: S CC

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

176

Một phần của tài liệu Bài giảng chương trình dịch (Trang 167 - 176)