Nhập môn Chương trình dịch - Bài 2 potx
... NFAs – DFAs Bài tập về nhà 1 Nhập môn Chương trình dịch Bài 2: Phân tích từ vựng Ví dụ “0”, 2 , “9” “ 123 ”, “5678” “ 123 ”, -5 678” “ 123 ”, -5 678. 123 ” “min”, “cal_Max1” digit = [ 0-9 ] posint = ... bước chính của chương trình dịch Phân tích từ vựng là gì? Viết một chương trình phân tích từ vựng Mô tả từ tố - biểu thức chính quy (REs) Viết một...
Ngày tải lên: 24/07/2014, 08:21
... 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 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 thiệu nhóm...
Ngày tải lên: 24/07/2014, 08:21
... của người lập trình chưa? J[e 1 ] = (s 1 , s 2 ,…, s n ); e 1 ’ J[OP(e 1 , e 2 )] = (s 1 , s 2 ,…, s n , s 1 ’, s 2 ’,…, s n ’); OP(e 1 ’, e 2 ’) J[e 2 ] = (s 1 ’, s 2 ’,…, s n ’); e 2 ’ Ví dụ: ... Nhập môn Chương trình dịch Học kì II 20 06 – 20 07 Bài 15: Làm phẳng cây IR Cài đặt class CanonicalExpr { IRStmt[ ] pre_stmts; IRExpr ... s 2 ,…, s n ); e 1 ’ J[OP...
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
... C[e 2 , t, f]), LABEL(t), [s], LABEL(s)) = SEQ(C[e 1 , n, f], LABEL(n), C[e 2 , 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 ... 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 đã mô tả • E[v] = TEMP(v) • E[e 1 + e...
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 20 0 6 -2 007 Bài 13: Sinh mã trung gian ... 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ụ n = 0; while ... trong biểu diễn...
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
... int A 2 ├ x : int A 2 ├ 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 20 06 – 20 07 Bài 12: Luật ngữ nghĩa (tiếp) Luật ngữ nghĩa: ... 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 ├ fac...
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 20 06 - 20 07 Bài 11: Luật ngữ nghĩa Ví dụ A ├ E 1 : int A ├ E 2 : int A ├ E 1 + E 2 : int (+) E 1 : int E 2 : int E 1 E 2 + : int Luật ngữ ... A, biểu thức E, lệnh S 1 và lệnh S 2 ta có luật ngữ nghĩa A ├ if (E) S 1 else S 2 : T là đúng nếu A ├ E : bool A ├ S 1 : T A ├ S 2 : T Đánh giá kiểu if (b) 2 else 3 : int • Làm thế...
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 20 06 – 20 07 Bài 10: Biểu thức kiểu Ví dụ: C++ • Kiểu cơ bản: int, char, … • Kiểu phức ... tra kiểu: bằng cách cài đặt 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...
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 20 0 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 ... (scope) cl...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 8 ppt
... khi thu gọn Nhập môn Chương trình dịch Học kì II 20 0 6 -2 007 Bài 8: Phân tích LR (tiếp) Lập trình bộ phân tích cú pháp Trước đây: tự viết bộ phân tích cú pháp Hiện nay: sử dụng các trình sinh ... Oper o; Expr e; } Chương trình chính của một chương trình dịch (2) Compiler.compile() Parser.parse() Lexer.getToken() InputStream.read() cây cú pháp từ tố ký tự Thứ...
Ngày tải lên: 24/07/2014, 08:21