Công cụ xđy dựng SA

Một phần của tài liệu ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG (Dùng cho tiết giảng) Học phần: CHƯƠNG TRÌNH DỊCH. Bộ môn: Khoa học máy tính (Trang 42 - 43)

- Địa điểm: Giảng đường do P2 phđn công Nội dung chính:

1. Sắp xếp câc ký hiệu không kết thúc theo thứ tự A1, A2, , An 2 Âp dụng thuật toân sau:

4.3. Công cụ xđy dựng SA

Cơng cụ phđn tích cú phâp YACC, BISON (Yet Another Compiler - Compiler): công cụ (trong UNIX) cho phĩp xđy dựng bộ phđn tích cú phâp một câch tự động;

Yacc được tạo bởi S. C. Johnson văo những năm đầu của thập kỉ 70, sử dụng phương phâp LALR.

- Nội dung thảo luận

Khó khăn chính khi dùng một bộ phđn tích cú phâp dự đơn lă việc viết một văn phạm cho ngôn ngữ nguồn. Việc loại bỏ đệ quy trâi vă tạo yếu tố trâi tuy dễ thực hiện nhưng chúng biến đổi văn phạm trở thănh khó đọc vă khó dùng cho câc mục đích biín dịch.

- Yíu cầu SV chuẩn bị

Căi đặt câc một số cơng cụ phđn tích cú phâp vă sinh bộ phđn tích cú phâp tự động cho một số văn phạm đơn giản (một phần của C, hoặc Pascal).

43

- Băi tập bắt buộc

1. Cho văn phạm S→SbS | bSaS |

a) Chứng minh rằng văn phạm năy lă nhập nhằng;

b) Xđy dựng câc dẫn xuất phải nhất vă trâi nhất cho xđu văo “abab”; c) Phđn tích Top-down cho xđu trín

2. Cho văn phạm:

E → TX; X → +E | ; T → (E) | aY; Y → *T |  Phđn tích xđu văo « a*a+a » bằng phương phâp LL(1).

3. Cho văn phạm S → AS | BA; A → aB | ; B → bA | . a) Xđy dựng bảng phđn tích LL(1).

b) Hỏi văn phạm trín có phải văn phạm LL(1) khơng? 4. Cho văn phạm S → (L) | a; L → L,S | S.

a) Xâc định ngôn ngữ sinh bởi văn phạm trín; b) Khử đệ quy trâi;

c) Xđy dựng bộ phđn tích cú phâp LR cho văn phạm;

d) Dùng bộ phđn tích cú phâp đê được xđy dựng để vẽ cđy phđn tích cú phâp cho câc chuỗi nhập sau:

i) (a,a) ii) (a,(a,a)) (a,(a,a),(a,a)))

e) Xđy dựng dẫn xuất trâi nhất, phải nhất cho từng chuỗi ở phần d. 5. Cho văn phạm chứa câc luật sản xuất sau:

bexpr := bexpr or bterm | bterm bterm := bterm and bfactor | bfactor bfactor := not bfactor | (bexpr) | true | false a) Hêy xđy dựng bảng phđn tích LR(1) cho văn phạm G.

b) Xđy dựng cđy phđn tích cú phâp cho chuỗi: not (true or false) c) Chứng minh rằng văn phạm năy sinh ra toăn bộ câc biểu thức Boole;

d) Văn phạm trín có phải văn phạm nhập nhằng khơng? Tại sao? e) Xđy dựng bộ phđn tích cú phâp SLR cho văn phạm.

Một phần của tài liệu ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG (Dùng cho tiết giảng) Học phần: CHƯƠNG TRÌNH DỊCH. Bộ môn: Khoa học máy tính (Trang 42 - 43)