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

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

- Báo lỗ ix không đúng cú pháp của G Dừng vòng lặp

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

1.1. Phương pháp ưu tiên toán tử

Văn phạm ưu tiên toán tử

Văn phạm phi ngữ cảnh thỏa mãn các ĐK:

- Không có 2 sản xuất có cùng vế phải - Không có vế phải là ε

- Không có 2 ký hiệu chưa kết thúc đứng liền

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

103

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

1.1. Phương pháp ưu tiên toán tử

Mối quan hệ ưu tiên giữa các ký hiệu

Với a, b Σ có:

- a < b : a kém ưu tiên hơn b - a= b: a ưu tiên bằng b

- a > b: a ưu tiên hơn b

- a và b : không có quan hệ ưu tiên

⋅ ⋅ ⋅

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

104

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

1.1. Phương pháp ưu tiên toán tử

Qui tắc xác định mối quan hệ (1) Sx mà vế phải có dạng αabβ hay αaCbβ (2) Sx mà vế phải có dạng αaBβ mà B+ bγ hay B+Cbγ (3) Sx mà vế phải có dạng αAbβ mà A+ γa hay A+ γaC a=b. a<b. a>b.

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

105

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

1.1. Phương pháp ưu tiên toán tử

Qui tắc xác định mối quan hệ

(4) S+γa hay S+γaC hay S+ aγ hay S+Caγ Với a, bΣ; A,B,CΔ; α, β, γ ∈Δ)*Lưu ý:- Cán:< > - a < b b < c a >$. . . . . a < c. (Không có T/c bắc cầu)

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

106

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

1.1. Phương pháp ưu tiên toán tử

Thuật toán (adsbygoogle = window.adsbygoogle || []).push({});

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

- Buffer: x$

Lặp: If (Stack là $S) và (Buffer là $) Then - x đúng cú pháp của vp G

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

107

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

1.1. Phương pháp ưu tiên toán tử

Thuật toán

Else {giả sử k/h kết thúc gần đỉnh stack nhất là a và buffer là b}

If (a>b) Then

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