![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Bài giảng môn học Trình biên dịch - Chương 4: Phân tích cú pháp
Số trang: 46
Loại file: pdf
Dung lượng: 210.08 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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,... Mời các bạn cùng tham khảo để biết thêm chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng môn học Trình biên dịch - Chương 4: Phân tích cú phápCHÖÔNG 4PHAÂN TÍCH CUÙ PHAÙP4.1. 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.4.2. Xaây döïng vaên phaïm cho ngoân ngöõ laäp trìnhLoaïi boû söï khoâng töôøng minhstmt → if exp then stmtif exp then stmt else stmt| otherThí duï: phaùt bieåu: if E1 then if E2 then S1 else S2 laø phaùt bieåukhoâ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-stmtlunmatched-stmtmatched-stmt→ if exp then matched-stmt else matched-stmt1| otherunmatched-stmt → if exp then stmt| if exp then matched-stmt else unmatched-stmtLoaïi boû ñeä quay traùiVaê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ùitoå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⏐…..⏐βnbaèng caëp luaät sinhA→ β1A’⏐β2A’⏐…⏐βnA.’A’→α1A’⏐α2A’⏐ …..⏐αmA’⏐∈Thí duï 4.1. Loaïi boû ñeä quy traùi cho vaên phaïm:E→ E+T⏐ TT→ T*F⏐FF → (E) ⏐ idGiaûi thuaät 4.1. Loaïi boû ñeä qy traùiNhaä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 4.1 cho G. G’ khoângcoø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 4.1. Giaûi thuaät loaïi boû ñeä quy traùi töø vaên phaïmfor i := 1 to n dofor j := 1 to i - 1 do begin- Thay caùc luaät sinh coù daïng Ai → Aj γ baèng caùc luaät sinhAi→ δ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ùcAi luaät sinhend;Thí duï: Chuùng ta coù aùp duïng giaûi thuaät 4.1 vaøo vaên phaïm sau ñeå loaïiboû ñeä quy traùi.S→ Aa⏐ bA → Ac⏐ Sd ⏐∈Thöøa soá traùi: Thí duï ta coù hai luaät sinh:stmt → if exp then stmt else stmt⏐if exp then stmtCaû hai luaät sinh ñeàu coù if daãn ñaàu neân ta seõ khoâng bieát choïn luaät sinhnaøo ñeå trieån khai. Vì theá ñeå laøm chaäm laïi quyeát ñònh löïa choïn chuùngta seõ taïo ra thöøa soá traùi.Giaûi thuaät 4.2. Taïo vaên phaïm coù thöøa soá traùiNhaäp: cho vaên phaïm G.Xuaát: vaên phaïm G’ coù thöøa soá traùi töông ñöông.Phöông phaùp: Tìm chuoãi daãn ñaàu chung cuûa caùc veá phaûi luaät sinh, thíduï: A → αβ1⏐αβ2⏐…..⏐αβn⏐γ . γ laø chuoãi khoâng baét ñaàu bôûi α. Tathay caùc luaät treân baèng caùc luaätA→αA’ A’→ β1⏐β2⏐…⏐βnThí du: ï Ta aùp duïng giaûi thuaät treân cho vaên phaïm phaùt bieåu if, nöôùcvaên phaïm töông ñöôngS → i E t SS’⏐aS’→ e S⏐∈E→b4.3. Phaân tích cuù phaùp töø treân xuoángPhaân tích cuù phaùp ñeä quy ñi xuoáng.Phaân tích cuù phaùp ñoaùn nhaän tröùôc.1. Phaân tích cuù phaùp ñeä quy ñi xuoángThí duï: Cho vaên phaïm G : S→ cAd A → ab ⏐ aScSAadba)cAdab)Hình 4.4. Caùc böôùc phaân tích cuù phaùp töø treân xuoáng
Nội dung trích xuất từ tài liệu:
Bài giảng môn học Trình biên dịch - Chương 4: Phân tích cú phápCHÖÔNG 4PHAÂN TÍCH CUÙ PHAÙP4.1. 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.4.2. Xaây döïng vaên phaïm cho ngoân ngöõ laäp trìnhLoaïi boû söï khoâng töôøng minhstmt → if exp then stmtif exp then stmt else stmt| otherThí duï: phaùt bieåu: if E1 then if E2 then S1 else S2 laø phaùt bieåukhoâ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-stmtlunmatched-stmtmatched-stmt→ if exp then matched-stmt else matched-stmt1| otherunmatched-stmt → if exp then stmt| if exp then matched-stmt else unmatched-stmtLoaïi boû ñeä quay traùiVaê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ùitoå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⏐…..⏐βnbaèng caëp luaät sinhA→ β1A’⏐β2A’⏐…⏐βnA.’A’→α1A’⏐α2A’⏐ …..⏐αmA’⏐∈Thí duï 4.1. Loaïi boû ñeä quy traùi cho vaên phaïm:E→ E+T⏐ TT→ T*F⏐FF → (E) ⏐ idGiaûi thuaät 4.1. Loaïi boû ñeä qy traùiNhaä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 4.1 cho G. G’ khoângcoø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 4.1. Giaûi thuaät loaïi boû ñeä quy traùi töø vaên phaïmfor i := 1 to n dofor j := 1 to i - 1 do begin- Thay caùc luaät sinh coù daïng Ai → Aj γ baèng caùc luaät sinhAi→ δ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ùcAi luaät sinhend;Thí duï: Chuùng ta coù aùp duïng giaûi thuaät 4.1 vaøo vaên phaïm sau ñeå loaïiboû ñeä quy traùi.S→ Aa⏐ bA → Ac⏐ Sd ⏐∈Thöøa soá traùi: Thí duï ta coù hai luaät sinh:stmt → if exp then stmt else stmt⏐if exp then stmtCaû hai luaät sinh ñeàu coù if daãn ñaàu neân ta seõ khoâng bieát choïn luaät sinhnaøo ñeå trieån khai. Vì theá ñeå laøm chaäm laïi quyeát ñònh löïa choïn chuùngta seõ taïo ra thöøa soá traùi.Giaûi thuaät 4.2. Taïo vaên phaïm coù thöøa soá traùiNhaäp: cho vaên phaïm G.Xuaát: vaên phaïm G’ coù thöøa soá traùi töông ñöông.Phöông phaùp: Tìm chuoãi daãn ñaàu chung cuûa caùc veá phaûi luaät sinh, thíduï: A → αβ1⏐αβ2⏐…..⏐αβn⏐γ . γ laø chuoãi khoâng baét ñaàu bôûi α. Tathay caùc luaät treân baèng caùc luaätA→αA’ A’→ β1⏐β2⏐…⏐βnThí du: ï Ta aùp duïng giaûi thuaät treân cho vaên phaïm phaùt bieåu if, nöôùcvaên phaïm töông ñöôngS → i E t SS’⏐aS’→ e S⏐∈E→b4.3. Phaân tích cuù phaùp töø treân xuoángPhaân tích cuù phaùp ñeä quy ñi xuoáng.Phaân tích cuù phaùp ñoaùn nhaän tröùôc.1. Phaân tích cuù phaùp ñeä quy ñi xuoángThí duï: Cho vaên phaïm G : S→ cAd A → ab ⏐ aScSAadba)cAdab)Hình 4.4. Caùc böôùc phaân tích cuù phaùp töø treân xuoáng
Tìm kiếm theo từ khóa liên quan:
Trình biên dịch Bài giảng Trình biên dịch Ngôn ngữ lập trình Chương trình dịch Đặc tả ngôn ngữ lập trình Phân tích cú phápTài liệu liên quan:
-
Chuyên đề: Nghiên cứu Ngôn ngữ hình thức, Văn phạm phi ngữ cảnh và Automata đẩy xuống
84 trang 383 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 284 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 281 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 276 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 235 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 233 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 224 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 219 1 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 195 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 178 0 0