... tiến chương trình phân tích từ vựng - Thêm vào từ tố cho câu lệnh for, switch … case - Thông báo lỗi từ vựng: vị trí xảy lỗi - Hồi phục lỗi: bỏ qua lỗi dịch tiếp để bắt hết lỗi từ vựng IV Nộp tập ... in từ tố hình - Viết lớp Lexer có thành viên tên file luồng nhập (C++ istream Java InputStream) hàm thành viên next_token() có kiểu trả Token - Hàm next_token() đọc...
Ngày tải lên: 24/07/2014, 08:21
... nút SEQ làm gốc IR SEQ s1 s2 … sn • Một hàm biểu diễn dạng SEQ(s1, s2, … sn) • Có thể dịch thành mã mãy cách dịch s1, s2, …, sn nối mã lại với Dạng IR phẳng • Ý tưởng: viết lại IR lược bớt cấu ... s2’,…, sn’); OP(e1’, e2’) • Luật thể ý đồ người lập trình chưa? Cú pháp điều khiển: OP • Nếu si’ làm thay đổi e1 làm thay đổi ý đồ người lập trình • Cần lưu lại giá trị e1 trước tính si’ J[...
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
... lệnh dựa vào mã nút • Cú pháp điều khiển – Mô tả xác chương trình dịch cần làm – Có thể cài đặt dễ dàng – Có thể chứng minh tính chương trình dịch Sinh mã lệnh if SEQ if (e) s CJUMP [e] NAME(t) ... return? • Ý tưởng: thêm vào biến RV (return value) nhãn cuối hàm • Hàm dịch sang mã sau SEQ(S[s], LABEL(epilogue)) • Lệnh return e dịch sang mã sau S[return e] = SEQ(MOVE(TEMP(RV),...
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
... chuyển sang loại mã máy khác Cây cú pháp (>40 nút) Mã trung gian (13 nút) Pentium (>200 lệnh) Ngôn ngữ trung gian • Một dạng thể chương trình nằm cú pháp điều khiển mã máy • Sử dụng – Lệnh nhảy – Thanh ... Chỉ có nút biểu thức ESEQ có nút lệnh nằm • Có thể duyệt IR để chạy chương trình Sinh IR (mã trung gian) • Kỹ thuật: phương pháp dịch sử dụng cú pháp điều khiển (giống kiểm tra k...
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
... fact(x-1); } A2 ├ x : int A2 ├ : int A2 ├ x == : bool A2 ├ : int A1 = {fact: int int} A2 = {fact: int int, x : int} A2 ├ fact : int int A2 ├ x : int A2 ├ x : int A2 ├ : int A2 ├ x - : int ... A2 ├ fact : int int A2 ├ x : int A2 ├ x : int A2 ├ : int A2 ├ x - : int A2 ├ fact(x-1) : int A2 ├ x*fact(x-1) : int Luật ngữ nghĩa: lệnh return A├E:T A ├ return E : unit • Kiểm tra kiểu l...
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
... cách đánh giá kiểu • Luật ngữ nghĩa viết cho nút sản xuất văn phạm • Đánh giá kiểu (kiểm tra kiểu) trình lần ngược cú pháp dựa vào luật Ví dụ A ├ E1 : int E1 A ├ E2 : int (+) : int E2 + A ├ E1 + ... chứng minh (nhiều luật có kết luận) Luật ngữ nghĩa: lệnh While • Với lệnh kiểu, ta đưa vào kiểu giả - unit (unit = có kiểu đúng) A ├ E : bool A├S:T (while) A ├ while (E) S : unit Luật ngữ ng...
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
... typedef, class Hệ thống kiểu (1) • Mỗi ngôn ngữ lập trình có hệ thống kiểu riêng • Mỗi kiểu giới hạn liệu • VD: int = [-2 31, 231], char = [-1 28, 127] • Các kiểu liệu phức hợp tạo từ kiểu đơn ... char, … • Kiểu phức hợp: int [100 ], struct {int a, char b} • Biểu thức kiểu: T kiểu T[ ] kiểu với T 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...
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
... • Nộp tập lập trình số 1: tuần sau Phân tích ngữ nghĩa • Tìm tất lỗi lại chương trình nguồn – Khai báo biến – Kiểm tra kiểu (kiểu tĩnh) • Thiết lập thông tin cần thiết cho bước dịch sau – Kiểu ... bước dịch = duyệt cú pháp • Các bước dịch khác hoạt động giống việc kiểm tra kiểu – – – – Thay số Sinh mã trung gian Tối ưu mã Sinh mã máy • Các bước dịch duyệt cú pháp → tính đa hình...
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
... } } Chương trình chương trình dịch (2) Compiler.compile() cú pháp Parser.parse() từ tố Lexer.getToken() ký tự InputStream.read() Cây cú pháp Là kết phân tích cú pháp Là dạng thể chương trình ... chương trinh sinh phân tích cú pháp sử dụng phương pháp LALR(1) Thứ tự ưu tiên kết hợp cho phép viết cú pháp ngôn ngữ dễ dàng Văn phạm ngôn ngữ gần với cách viết thông thường Chươ...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 7 pptx
... PDA (2) (s1 x1 s2 x2 … sn-r xn-r … sn-1 xn-1 sn) Hoạt động: với a kí hiệu vào – Gạt a, chuyển tới trạng thái s với s = (sn, a) = gạt s (s1 x1 s2 x2 … sn-r xn-r … sn-1 xn-1 sn a s) – Thu gọn X ... 6, 7, Cài đặt DFA qua PDA (1) PDA: push-down automata – ôtômát đẩy xuống Khởi tạo ngăn xếp: push trạng thái (bắt đầu) Tại thời điểm, ngăn xếp có dạng (s1 x1 s2 x2 … sn-r xn-r … sn-1 xn-1 .....
Ngày tải lên: 24/07/2014, 08:21
slike bài giảng chương trình dịch - hoàng anh việt chương 5 phân tích ngư nghĩa và sinh mã trung gian
... động sinh code phân tích cú pháp (kể bảng phân tích LALR(1)) Nội dung Những vấn đề ngữ nghĩa Kiểm tra kiểu – Hệ thống kiểu ngôn ngữ lập trình Bảng ký hiệu Phân tích ngữ nghĩa Chương trình nguồn Phân ... trình nguồn Phân tích từ vựng Lỗi từ vựng dãy từ tố Phân tích cú pháp Lỗi cú pháp cú pháp Phân tích ngữ nghĩa Chương trình đúng: cú pháp điều khiể...
Ngày tải lên: 24/10/2014, 15:47
CHƯƠNG TRÌNH DỊCH bài 13 tối ưu mã
... biểu thức chung Tính biểu thức Loại mã chết Loại dư thừa cục bộ… Ứng dụng phương pháp tối ưu dẫn đến việc tạo đoạn mã ứng dụng phương pháp tối ưu khác Mã ba địa Quick Sort i=m-1 16 t7 = * ... b[t1] a[t1] [t1] = t2 Å Không cần Mã nhận được: i=4 t1 = t2 = b[t1] a[t1] [t1] = t2 i=4 t1 = t2 = b[5] a[5] = t2 i=4 t2 = b[5] a[5] = t2 21/1/2010 Tối ưu DAG Tối ưu vòng...
Ngày tải lên: 11/11/2015, 22:41
CHƯƠNG TRÌNH DỊCH bài 3 văn PHẠM sản SINH
... hiệu không kết thúc sản xuất để đảm bảo thứ tự ưu tiên) Văn phạm nhập nhằng 21/1/2010 Đệ quy Khử đệ quy trái Một sản xuất đệ qui X =>* ω1X ω2 Có thể dùng để biểu diễn trình lặp hay cấu trúc ... thúc cực trái hay cực phải để thayy thế,, kết q lad suy y dẫn trái suy dẫn phải Văn phạm nhập nhằng Khử nhập nhằng Văn phạm E -> E + E E -> E * E E -> ( E ) E -> ident E -> E + T...
Ngày tải lên: 11/11/2015, 22:58
CHƯƠNG TRÌNH DỊCH bài 11 SINH mã TRUNG GIAN
... diễn mã ba địa lệnh Các tên trung gian sinh cho tính toán trung gian Các biểu thức liên hệ với hai thuộc tính tổng hợp E.place chứa địa chứa giá trị E E.code mã ba địa để đánh giá E Hàm newtemp sinh ... S.code: mã lệnh địa sinh S S.next: nhãn mã lệnh địa thực sau mã lệnh S S.begin: nhãn địa lệnh sinh cho S 21/1/2010 ĐNTCP cho cấu trúc lập trình Dịch biểu thức...
Ngày tải lên: 11/11/2015, 22:59
CHƯƠNG TRÌNH DỊCH bài 12 SINH mã ĐÍCH
... (offset 0) Lớp KHMT K50 Lớp KHMT K50 41 42 Sinh mã đích từ mã ba địa Bộ sinh mã trung gian đưa mã ba địa Tối ưu mã ba địa Từ mã ba địa tối ưu sinh mã đích phù hợp với mô tả máy ảo 43 44 11 ... chương trình gọi tới (caller) – DL z Địa lệnh quay kết thúc chương trình – RA z Địa sở hoạt động chương trình bao – SL z Một chương trình có nhiều hoạt động...
Ngày tải lên: 11/11/2015, 23:00