tailieunhanh - Bài giảng môn học Trình biên dịch - Chương 4: Phân tích cú pháp

Bài giảng chương 4 trình bày những nội dung cơ bản như: Vai trò của bộ phân tích cú pháp, xây dựng văn phạm cho ngôn ngữ lập trình, phân tích cú pháp từ trên xuống, phân tích cú pháp từ dưới lên,. để biết thêm chi tiết. | CHÖÔNG 4 PHAÂN TÍCH CUÙ PHAÙP . Vai troø cuûa boä phaân tích cuù phaùp - Phöông phaùp toång quaùt: Cocke-Younger-Kasami vaø Earley. - Phaân tích töø treân xuoáng. - Phaân tích töø döôùi leân. . Xaây döïng vaên phaïm cho ngoân ngöõ laäp trình Loaïi boû söï khoâng töôøng minh stmt → if exp then stmt if exp then stmt else stmt | other Thí duï: phaùt bieåu: if E1 then if E2 then S1 else S2 laø phaùt bieåu khoâng töôøng minh - Loaïi boû söï khoâng töôøng minh. Quy öùôc hoaëc söûa vaên phaïm. stmt → matched-stmt lunmatched-stmt matched-stmt→ if exp then matched-stmt else matched-stmt1 | other unmatched-stmt → if exp then stmt | if exp then matched-stmt else unmatched-stmt Loaïi boû ñeä quay traùi Vaên phaïm goïi laø ñeä quy traùi neáu toàn taïi daãn xuaát. A ⇒ Aα, vôùi α ⊂ ( Vt ∪ Vn) Ñeä quy traùi laø bao goàm ñeä quy traùi ñôn giaûn (tröïc tieáp) vaø ñeä quy traùi toång quaùt. Ñeå loaïi boû ñeä quy ñôn giaûn, ta seõ thay theáõ taäp luaät sinh: A → Aα1⏐Aα2⏐ ⏐Aαm⏐β1⏐β2⏐ ⏐βn baèng caëp luaät sinh A→ β1A’⏐β2A’⏐ ⏐βnA.’ A’→α1A’⏐α2A’⏐ ⏐αmA’⏐∈ Thí duï . Loaïi boû ñeä quy traùi cho vaên phaïm: E→ E+T⏐ T T→ T*F⏐F F → (E) ⏐ id Giaûi thuaät . Loaïi boû ñeä qy traùi Nhaäp: Vaên phaïm G khoâng coù voøng laëp hoäi luaät sinh roãng. Xuaát : Vaên phaïm töông ñöông G’ khoâng coù ñeä quy traùi. Phöông phaùp: AÙp duïng giaûi thuaät ôû moâ phoûng cho G. G’ khoâng coøn ñeä quy traùi nhöng coù theå coù luaät sinh roãng. Saép xeáp caucus kyù hieäu khoâng keát thuùc theo moät thöù töï naøo ñoù: A1, A2, . An . Moâ phoûng . Giaûi thuaät loaïi boû ñeä quy traùi töø vaên phaïm for i := 1 to n do for j := 1 to i - 1 do begin - Thay caùc luaät sinh coù daïng Ai → Aj γ baèng caùc luaät sinh Ai→ δ1γ⏐δ2γ⏐ ⏐δkγ - Vôùi Aj luaät sinh coù daïng Ai → δ1⏐δ2⏐ .⏐δk - Loaïi taát caû caû caùc luaät sinh coù ñeä quy traùi tröïc tieáp trong caùc Ai luaät sinh end; Thí duï: Chuùng ta coù aùp duïng giaûi thuaät vaøo vaên phaïm sau ñeå loaïi boû ñeä quy traùi. S→ Aa⏐ b A → Ac⏐

crossorigin="anonymous">
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.