... các chươngtrình hợp lệ.- Tập các chươngtrình hợp lệ. chương trình nguồn (ngôn ngữ bậc cao) chương trình dịch chương trình đích (ngôn ngữ máy)LỗiHình 1.1: Sơ đồ một chươngtrình dịch ... một chươngtrình để dịch các chương trình trên ngôn ngữ này sang mã máy để có thể chạy được. Những chương trình làm nhiệm vụ như vậy gọi là các chươngtrình dịch. Ngoài ra, một chương trình dịch ... sang ngôn ngữ Acsembly.* Định nghĩa chươngtrình dịch: Chương trìnhdịch là một chươngtrình thực hiện việc chuyển đổi một chươngtrình hay đoạn chươngtrình từ ngôn ngữ này (gọi là ngôn...
... tạo đệ qui trái trong 1 văn phạm.3) Dịch trực tiếp cú pháp:- Cho 1 biểu thức toán học:o Ðịnh nghĩa trực tiếp cú pháp cho biểu thức số học. o Lược đồ dịch cho biểu thức số học.- Thuộc tính ... ĐỀ CƯƠNG ÔN TẬP MÔN CTDPHẦN LÝ THUYẾT1) Phân tích từ vựng:- Cho một đoạn mã, hãy xác định các từ vựng có thể ... quan đến phân tích cú pháp theo thứ bậc toán tử.- Thuật toán xây dựng bảng SLR.- Thực hiện quá trình phân tích SLR cho1chuỗi nhập (xây dựng cây phân tích cú pháp).Dạng bài tập:1) Văn phạm...
... nghĩa chươngtrình dịch: chương trình nguồn (ngôn ngữ bậc cao) chương trìnhdịch chương trìnhđích (ngôn ngữ máy)LỗiHình 1.1: Sơ đồ một chươngtrìnhdịch Chương trìnhdịch là một chươngtrình ... một chươngtrình để dịch các chương trình trên ngôn ngữ này sang mã máy để có thể chạy được. Những chương trình làm nhiệm vụ như vậy gọi là các chươngtrình dịch. Ngoài ra, một chương trình dịch ... từ vựng Chương trình nguồnPhân tích cú phápPhân tíchngữ nghĩaSinh mã trung gian Chương 1: Tổng quan về ngôn ngữ lập trình và chươngtrình dịch 1. Ngôn ngữ lập trình và chươngtrình dịch. Con...
... lập trình đều có các luật mô tả các cấu trúc cú pháp. Một chươngtrình viếtđúng phải tuân theo các luật mô tả này. Phân tích cú pháp là để tìm ra cấu trúc dựa trên vănphạm của một chươngtrình ... nghĩa Chương trình nguồnBảng ký hiệutừ tốyêu cầu từ tốCHƯƠNG 3 PHÂN TÍCH CÚ PHÁP VÀ CÁC PHƯƠNG PHÁPPHÂN TÍCH CƠ BẢN.1. MỤC ĐÍCH.Phân tích cú pháp nhận đầu vào là danh sách các từ tố của chương ... từ tố đồng bộ. Các từ tố đồng bộ thường được xác định trước( VD: end, ; )Người thiết kế chươngtrìnhdịch phải tự chọn các từ tố đồng bộ. Ưu điểm: Đơn giản, không sợ bj vòng lặp vô hạn, hiệu...
... là kiểu type_error. CHƯƠNG 5 BIÊN DỊCH DỰA CÚ PHÁP.1. MỤC ĐÍCH, NHIỆM VỤ.- Các hành động dịch phụ thuộc rất nhiều vào cú pháp của chươngtrình nguồn cần dịch. Quá trìnhdịch được điều khiển ... nhau. Để thực hiện phép cộng, trớc tiên chươngtrình dịch đổi cả 2 toán tử về một kiểu (kiểu real) sau đó thực hiện cộng.Bộ kiểm tra kiểu trong chươngtrìnhdịch được dùng để chèn thêm phép toán ... hiện một cách tự động bởi chươngtrình dịch, phép đổi kiểu này còn gọi là ép kiểu. (ép kiểu thường gây mất thông tin) Một phép đổi kiểu được gọi là rõ nếu người lập trình phải viết số thứ để...
... pháp đơn giản nhất như sau: CHƯƠNG 7 BẢNG KÍ HIỆU.1. MỤC ĐÍCH, NHIỆM VỤ.Một chươngtrìnhdịch cần phải thu thập và sử dụng các thông tin về các tên trong chươngtrình nguồn. Các thông tin này ... câu lệnh hoặc đoạn chươngtrình sau thành đoạn mã ba địa chỉ:1) a * - (b+c)2) đoạn chươngtrình Cmain (){ int i; int a[100];i=1;while(i<=10){ a[i]=0;i=i+1;}}.1. Dịch biểu thức : ... trí cảu nó trong bộ nhớ, các thuộc tính khác phụ thuộc vào ngôn gnữ lập trình. Mỗi lần tên cần xem xét, chươngtrìnhdịch sẽ tìm trong bảng kí hiệu xem đã có tên đó chưa. Nếu tên đó là mớithì...
... tuyệt đối.Một chươngtrình mã máy tuyệt đối có các lệnh mã máy được định vị tuyệt đối. Chươngtrìnhdịch xác định hoàn toàn chươngtrình đối tượng này.Mã được một chươngtrìnhdịch thực sự tạo ... chươngtrình gọi và chuyển quyền điều khiển cho chươngtrình con được gọi. Khi quyền điều khiển trả về cho chương trình gọi, SP giảm đi một khoảng bằng kích thước mẩu tin hoạt động của chương trình ... của chươngtrình con nằm trên đỉnh Stack. Khi lời gọi của chươngtrình con xuất hiện, chươngtrình bị gọi được cấp phát, SP được tăng lên một giá trị bằng kích thước mẩu tin hoạt động của chương...
... III. Cải tiến chươngtrì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 ... hoặc err_token nếu có lỗi từ vựng. - Viết một hàm main() để thử chạy hàm next_token() với một chươngtrình thuộc ngôn ngữ SLANG. Ví dụ: Mã nguồn: begin var int number, sum; sum = 0; ... 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ươngtrình - Tài liệu: khoảng 2 trang A4 o Giới thiệu nhóm o Tóm tắt giải pháp o Nêu các khó...
... Nhập mônChươngtrình dịch Học kì II 2006 – 2007Bài 15: Làm phẳng cây IR Cài đặtclass CanonicalExpr {IRStmt[ ... CALL(…)… …SEQEXPCALL(…)… … Cỳ phỏp iu khin: OPã Lut ny ó th hin đúng ý đồ của ngườilập trình chưa?J[e1] = (s1, s2,…, sn); e1’J[OP(e1, e2)] = (s1, s2,…, sn, s1’, ... lm gc ca cõy IRã Mt hm c biu din di dngSEQ(s1, s2, sn)ã Cú th dch thnh mó móy bng cách dịch lần lượt s1, s2, …, snrồi nối mã lại vớinhau.SEQs1s2sn… Cỳ phỏp iu khin: OPã...
... nỳt conã Cú pháp điều khiển– Mô tả chính xác chươngtrìnhdị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 lnh ó mụ tã E[v] = TEMP(v)ã E[e1+ ... f], LABEL(t), [s], LABEL(f))làm phẳngcây IRSEQSEQs3s1s2SEQs2s3s1 Nhập mônChươngtrình dịch Học kì II 2006-2007Bài 14: Sinh mã trung gian (tiếp) Tng ktã Cỳ phỏp iu khin mụ ... MOVE(t, value.translateE()), new MOVE(variable.translateE(), t)),t); }} Trường hợp có nhiều cách dịch v = eMOVE[e]TEMP(te)ESEQTEMP(te)SEQMOVETEMP(te)[v]Dạng biểu thức: E[e] = Dạng...
... NAMEã Nỳt NAME i din cho a ch ca mttờn trờn b nhã VD: a ch ca mt nhón nhyNAME(n) Nhập mônChươngtrình dịch Học kì II 2006-2007Bài 13: Sinh mã trung gian ... biu thc nm di nỳt lnhã Ch cú nỳt biu thc ESEQ cú nỳt lnhnm diã Cú thể duyệt cây IR để chạy chương trình Mụ t cỏc nỳt biu thc ca IRã CONST(i): hng s nguyờn iã TEMP(t): thanh ghi t, mỏy tru ... của hàmCALLefCALL(ef, e0, e1,…)e0e1e2…Địa chỉ của hàmTham số Mô tả các bước dịch (1)Mã nguồn (dãy các kí tự)If (a == 0) min = a;Phân tích từ vựngPhân tích cú phápPhân...
... intA2├ x*fact(x-1) : intA2├ x : int A2├ 0 : intA2├ x == 0 : boolA2├ 1 : int Nhập mônChươngtrình dịch Học kì II 2006 – 2007Bài 12: Luật ngữ nghĩa (tiếp) Lut ng ngha: nh ngha hmã C/C++: ... ngữnghĩa cho nỳt ú t cỏc lut nh hnã Nh vy, b luật ngữ nghĩa cho phép kiểm tra kiểu của một chươngtrình viết đúng cú pháp vàviệc kiểm tra luôn luôn dừng Lut ng ngha: lnh returnã Thờm mt dũng ... nghaã Cỏc lut ng ngha khỏc u vit tng t nh cỏc lut ó hcã Bộ luật ngữ nghĩa cho phép đánh giá một chương trỡnh cú kiu ỳng hay khụngã Cỏch vit: theo kiu quy nạp– Viết các luật tiên đề– Với mỗi...
... Nhập mônChươngtrình dịch Học kì II 2006 - 2007Bài 11: Luật ngữ nghĩa Ví dụA ├ E1: int A ├ E2: intA ... ngha c viết cho từng nút của cây hoặc từng sản xuất ca vn phmã ỏnh giỏ kiu (kim tra kiu) l quá trình lần ngược cây cú pháp dựa vào các luật Lut ng ngha: lnh Whileã Vi cỏc lnh khụng cú kiểu,...
... Lnh khai báo kiểu: typedef, class Ni dungã Kim tra kiuã Ci t cỏc biu thc kiểu Nhập mônChươngtrình dịch Học kì II 2006 – 2007Bài 10: Biểu thức kiểu Vớ d: C++ã Kiu c bn: int, char, ã...
... xuất hiện trong phạm vi (scope) của chương trình: bảng kí hiệu (symbol table) Ci t bng kớ hiu (1)ã Bng kớ hiu 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; i++) {boolean b = }{ i: int, n: int }{ i: int, n: int, b: boolean }? Nhập mônChươngtrình dịch Học kì II 2006-2007Bài 09: Phân tích ngữ nghĩa ... th tn dng tớnh lp li của các bước dịch để viết các đoạn mã duyệt cây cúpháp tổng quát (tính đa hình) Phõn tớch ng nghaã Tỡm tt c cỏc li cũn lại của chươngtrình nguồn– Khai báo biến– Kiểm...