Văn phạm phi ngữ cảnh

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 31 - 32)

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

4.2.1. Văn phạm phi ngữ cảnh

 Để định nghĩa cấu trúc của PL ta dùng CFG:

 Chỉ rõ câc đăc điểm cú phâp của một PL;

 Thiết kế văn phạm với ngôn ngữ đê cho;

 Có thể chuyển đổi từ một CFG sang một bộ parser nhờ một số công cụ có sẵn (..!.).

VD: CFG sau định nghĩa câc biểu thức số học đơn giản:

E → E A E | (E) | -E | id A → + | - | * | / |^

Trong đó E, A lă câc kí tự chưa kết thúc (E cịn lă kí tự bắt đầu), câc kí tự cịn lại lă câc kí tự kết thúc

Một số khâi niệm liín quan: dẫn xuất trực tiếp, giân tiếp trâi nhất, phải

nhất.

Văn phạm phi ngữ cảnh (CFG – Context-Free Grammar): luật sinh có dạng A→α với A lă một biến đơn vă α lă chuỗi câc ký hiệu thuộc (Σ Ỉ Δ)*;

Tính nhập nhằng của văn phạm (ambiguity): Một văn phạm sinh ra

nhiều hơn một parse tree cho một cđu được gọi lă văn phạm nhập nhằng (mơ hồ, đa nghĩa). Nói câch khâc một văn phạm nhập nhằng sẽ sinh ra nhiều hơn một dẫn xuất trâi nhất hoặc dẫn xuất phải nhất cho cùng một cđu.

 E  E+E  id+E  id+E*E  id+id*E  id+id*id

 E  E*E  E+E*E  id+E*E  id+id*E  id+id*id

Văn phạm đệ quy trâi: Một văn phạm được gọi lă đệ qui trâi (left recursion) nếu tồn tại một dẫn xuất có dạng 𝐴→Aα (trong đó A lă 1 kí +

hiệu chưa kết thúc, α lă một xđu).

 Câc phương phâp phđn tích từ trín xuống khơng thể xử lí văn phạm đệ qui trâi, do đó cần phải biến đổi văn phạm để loại bỏ câc đệ qui trâi.

 Ðệ qui trâi có hai loại:

 Loại trực tiếp: Có dạng 𝐴  Aα

 Loại giân tiếp: Gđy ra do dẫn xuất của hai hoặc nhiều bước VD: S  Aa | b; A  Sc | d

 Loại bỏ đệ quy trâi trực tiếp:

32 A  A1 | A2 |..... | Am | 1 | 2 |.....| n A  A1 | A2 |..... | Am | 1 | 2 |.....| n trong đó 1 … n không bắt đầu với A

 Thay luật sinh trín bởi câc luật sinh sau: A  1A' | 2A' |..... | nA'

A'  1A' | 2A' |..... | mA' |   Loại bỏ đệ qui trâi giân tiếp:

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 31 - 32)