Nhập môn Chương trình dịch - Bài 3 doc
... định) – NFA & DFA – Trạng thái = một số nguyên Ví dụ Xâu vào: -2 3 0 1 2 3 - ε 0-9 0-9 ε {2, 3 }-2 3 {2, 3 }-2 {1 }- {0,1} Chuyển đổi NFA - DFA Có thể chuyển NFA thành DFA bằng phương pháp tương tự Lập ... 2 3 - ε 0-9 0-9 ε {0,1} {1} - {2 ,3} 0-9 0-9 0-9 Ôtômát hữu hạn (FA) Biểu diễn ôtômát hữu hạn – Bằng bảng chuyển...
Ngày tải lên: 24/07/2014, 08:21
... Nhập môn Chương trình dịch Học kì II 2006 – 2007 Bài 15: Làm phẳng cây IR Cài đặt class CanonicalExpr { IRStmt[ ] pre_stmts; IRExpr ... gốc của cây IR • Một hàm được biểu diễn dưới dạng SEQ(s 1 , s 2 , … s n ) • Có thể dịch thành mã mãy bằng cách dịch lần lượt s 1 , s 2 , …, s n rồi nối mã lại với nhau. SEQ s 1 s 2 s n … Cú pháp ... CALL(…) … … SEQ EXP CALL(…) … … Cú pháp điều...
Ngày tải lên: 24/07/2014, 08:21
... LL(1) (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 (1+2+ (3+ 4))+5 ( ( 1 1 + 2 2 + ( ( 3 3 + 4 S ES’ (S)S’ (ES’)S’ (1S’)S’ (1+S)S’ (1+ES’)S’ (1+2S’)S’ (1+2+S)S’ (1+2+ES’)S’ (1+2+(S)S’)S’ (1+2+(ES’)S’)S’ (1+2+(3S’)S’)S’ (1+2+ (3+ S...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài tập ppt
... III. Cải tiến chương trình phân tích từ vựng - Thêm vào các từ tố cho các câu lệnh for, switch … case - Thông báo lỗi từ vựng: chỉ ra vị trí xảy ra lỗi - Hồi phục lỗi: bỏ qua lỗi và dịch tiếp ... lỗi: bỏ qua lỗi và dịch tiếp để bắt hết các lỗi từ vựng IV. Nộp bài tập Sinh viên cần nộp các tài liệu sau - Chương trình - Tài liệu: khoảng 2 trang A4 o Giới...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 14 pps
... t, f], LABEL(t), [s], LABEL(f)) làm phẳng cây IR SEQ SEQ s 3 s 1 s 2 SEQ s 2 s 3 s 1 Nhập môn Chương trình dịch Học kì II 200 6-2 007 Bài 14: Sinh mã trung gian (tiếp) Tổng kết • Cú pháp điều khiển ... nút con • Cú pháp điều khiển – Mô tả chính xác chương trình dịch cần làm gì – Có thể cài đặt dễ dàng – Có thể chứng minh tính đúng của chương trình dịch Các lệnh...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 13 pps
... địa chỉ của một tên trên bộ nhớ • VD: địa chỉ của một nhãn nhảy NAME(n) Nhập môn Chương trình dịch Học kì II 200 6-2 007 Bài 13: Sinh mã trung gian ... đại diện cho hằng số • Giá trị của nút là i CONST(i) Phép gán • Cách dịch • Vấn đề: nút MOVE không có giá trị, làm thế nào để dịch x = (y = 2)? e 1 = e 2 MOVE [e 2 ][e 1 ] ESEQ [e 1 ] e 1 = e 2 MOVE [e 2 ][e 1 ] Ví ... dưới...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 12 pps
... x*fact(x-1) : int A 2 ├ x : int A 2 ├ 0 : int A 2 ├ x == 0 : bool A 2 ├ 1 : int Nhập môn Chương trình dịch Học kì II 2006 – 2007 Bài 12: Luật ngữ nghĩa (tiếp) Luật ngữ nghĩa: định nghĩa hàm • C/C++: hàm ... fact(x-1); } A 1 = {fact: int int} A 2 = {fact: int int, x : int} A 2 ├ x : int A 2 ├ 1 : int A 2 ├ x - 1 : int A 2 ├ fact : int int A 2 ├ fact(x-1) : int A 2 ├ x : i...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 11 ppt
... Nhập môn Chương trình dịch Học kì II 2006 - 2007 Bài 11: Luật ngữ nghĩa Ví dụ A ├ E 1 : int A ├ E 2 : int A ├ E 1 + E 2 : ... T Đánh giá kiểu if (b) 2 else 3 : int • Làm thế nào để đánh giá biểu thức trên có kiểu int ? b phải có kiểu bool (b: bool) 2 phải có kiểu int (2: int) 3 phải có kiểu int (3: int) Viết luật ngữ nghĩa A ... Ví dụ: • E : T nút E có kiểu T • 2 : int nút...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 10 pptx
... kiểu: typedef, class Nội dung • Kiểm tra kiểu • Cài đặt các biểu thức kiểu Nhập môn Chương trình dịch Học kì II 2006 – 2007 Bài 10: Biểu thức kiểu Ví dụ: C++ • Kiểu cơ bản: int, char, … • Kiểu phức ... toán tử == trong lớp Type Hệ thống kiểu (2): định nghĩa kiểu • Một số ngôn ngữ cho phép người lập trình tự định nghĩa kiểu • VD: C++ typedef int int_array[ ]; class cView { … };...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 9 pot
... i++) { boolean b = } { i: int, n: int } { i: int, n: int, b: boolean } ? Nhập môn Chương trình dịch Học kì II 200 6-2 007 Bài 09: Phân tích ngữ nghĩa ... hiện trong phạm vi (scope) của chương trình: bảng kí hiệu (symbol table) Cài đặt bảng kí hiệu (1) • Bảng kí hiệu cho phép kiểm tra kiểu của các tên trong chương trình class SymTab { Type lookup(String ... Nộp bài tậ...
Ngày tải lên: 24/07/2014, 08:21