... $30,$30, $15 bis $16 , $16 , $1 stl $1, 16( $15 ) lds $f1 ,16 ( $15 ) sts $f1,24( $15 ) ldl $5,24( $15 ) bis $5,$5,$2 s4addq $2,0,$3 ldl $4 ,16 ( $15 ) mull $4,$3,$2 ldl $3 ,16 ( $15 ) addq $3 ,1, $4 mull $2,$4,$2 ldl $3 ,16 ( $15 ) ... stq $15 ,8($30) bis $30,$30, $15 bis $16 , $16 , $1 stl $1, 16( $15 ) lds $f1 ,16 ( $15 ) sts $f1,24( $15 ) ldl $5,24( $15 ) bis $5,$5,$2 s4addq $2,0,$3 ldl $4 ,16 ( $15 ) mull $4,$3,$2 ldl $3 ,16 ( $15 ) addq $3 ,1, $4 ... gỡ rối chương trình với chương trình dịch viết sai – Chương trình dịch chương trình Các khái niệm chi phí, bảo mật – Trong môn học này, ta nghiên cứu kỹ thuật để viết chương trình dịch Dịch...
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 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 ... nhiên, văn phạm bị nhập nhằng Ta muốn có văn phạm không nhập nhằng với phép mũ (^) ưu tiên cao nhất, sau đến phép nhân (*) đến phép cộng (+) a, Viết văn phạm thuộc lớp LL (1) cho ngôn ngữ trên, ... c, Văn phạm thuộc lớp SLR hay không? Cho lý d, Văn phạm thuộc lớp LR (1) hay không? Cho lý Hai kỹ thuật phân tích LL (1) LALR (1) hai kỹ thuật sử dụng rộng rãi Mỗi kỹ thuật có điểm mạnh riêng Hãy...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 15 docx
... đổ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[e1] = (s1, s2,…, sn); e1’ J[e2] = (s1’, s2’,…, sn’); e2’ J[OP(e1, e2)] = (s1, s2,…, sn, MOVE(TEMP(t), e1’), s1’, ... pháp điều khiển: OP J[e1] = (s1, s2,…, sn); e1’ J[e2] = (s1’, s2’,…, sn’); e2’ J[OP(e1, e2)] = (s1, s2,…, sn, s1’, s2’,…, sn’); OP(e1’, e2’) • Luật thể ý đồ người lập trình chưa? Cú pháp điều ... tính OP(e1’, e2’) phép tính Cú pháp điều khiển: CALL J[ef] = (s1, s2,…, sn); ef’ J[e1] = (s1’, s2’,…, sn’); e1’ J[CALL(ef, e1)] = (s1, s2,…, sn, s1’, s2’,…, sn’, MOVE(TEMP(t), CALL(ef‘, e1’)); TEMP(t)...
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, l1,l2] IR nhảy đến nhãn l1 e nhảy đến nhãn l2 e sai • Công thức hồi quy: – – – – – C[true, l1, l2] = JUMP(NAME(l1)) C[false, l1, l2] = JUMP(NAME(l2)) C[e1==e2, l1, l2] = CJUMP(EQ(E[e1], E[e2]), ... l1, l2) C[e1 & e2, l1, l2] = SEQ(C[e1, t, l2], LABEL(t), C[e2, l1, l2]) công thức hồi quy cho phép toán quan hệ, logic khác Biểu thức logic câu lệnh điều kiện • C[e, l1,l2] IR nhảy đến nhãn l1 ... 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)...
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
... Cách dịch MOVE e1 = e2 [e1] [e2] • Vấn đề: nút MOVE giá trị, làm để dịch x = (y = 2)? ESEQ MOVE e1 = e2 [e1] [e1] [e2] Phép gán • Như vậy, [e1] phải chạy lần, cần lưu lại giá trị [e1] ESEQ SEQ e1 ... + e1 e2 [e1] [e2] • Kí hiệu [e] biểu diễn IR nút e cú pháp Câu lệnh • Dãy lệnh biểu diễn nút SEQ biểu diễn IR • Nếu [s1] [s2] biểu diễn IR nút s1 s2 • SEQ([s1], [s2]) biểu diễn IR s1; s2 s1; ... trừu tượng có nhiều phép toán OP(e1, e2) OP e1 e2 • Tính giá trị e1 e2, sau áp dụng phép toán với giá trị • e1 e2 phải hai nút có giá trị • Có thể tính giá trị e1 e2 theo thứ tự MEM • Nút MEM đạ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
... gọi hàm E(E1, E2, … En) A ├ E : T1 x T2 x … x Tn Tr A ├ Ei : Ti (i = 1, 2, … n) A ├ E(E1, E2, … En) : Tr (func call) Luật ngữ nghĩa: định nghĩa hàm • C/C++: hàm viết dạng Tr f(T1 a1, … Tn an) ... kiểu dãy lệnh sau có kiểu A ├ S1 : T1 A ├ (S2, S3, … Sn) : Tn (block) A ├ (S1, S2, … Sn) : Tn • Làm S1 lệnh khai báo? Luật ngữ nghĩa: dãy lệnh (block) A ├ T id : T1 (lệnh khai báo) A, id : T ├ ... có kiểu A, a1 : T1, …, an : Tn ├ E : Tr Ví dụ: hàm đệ quy int fact(int x) { if (x == 0) return 1; else return x * fact(x -1) ; } A2 ├ x : int A2 ├ : int A2 ├ x == : bool A2 ├ : int A1 = {fact: int...
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
... thức E, lệnh S1 lệnh S2 ta có luật ngữ nghĩa A ├ if (E) S1 else S2 : T A ├ E : bool A ├ S1 : T A ├ S2 : T Viết luật ngữ nghĩa Tiền đề A ├ E : bool A ├ S1 : T A ├ S2 : T A ├ if (E) S1 else S2 : ... 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 + E2 : int E1 : int : int E2 Cài đặt luật ngữ nghĩa • Cài ... E.typeCheck(A) Expr e1, e2; A├E:T Type typeCheck(SymTab A) { Type t1 = e1.typeCheck(A), t2 = e2.typeCheck(A); if (t1 == Int && t2 == Int) return Int; else throw new TypeCheckError(“+”); } A ├ E1 : int A...
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
... báo kiểu: 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, 2 31] , char = [ -12 8, 12 7] • Các kiểu liệu phức hợp tạo từ kiểu ... char, … • Kiểu phức hợp: int [10 0], 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ĩa kiểu ... C/C++/Java/Pascal Biểu thức kiểu: Cấu trúc • Là biểu thức kiểu phức tạp • Biểu thức kiểu có dạng {id1: T1, id2: T2, …} với id T tên kiểu trường • Ví dụ – C/C++: struct { int a; float b; } 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 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 ... (thông tin kiểu) class Add extends Expr { Expr e1, e2; Type typeCheck() throws SemanticError { Type t1 = e1.typeCheck(), t2 = e2.typeCheck(); if (t1 == Int && t2 == Int) return Int; else throw ... phạm vi biến (scope) class Add extends Expr { Expr e1, e2; Type typeCheck(SymTab s) { Type t1 = e1.typeCheck(s), t2 = e2.typeCheck(s); if (t1 == Int && t2 == Int) return Int; else throw new TypeCheckError(“+”);...
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 trình chương ... expr ::= expr:e1 PLUS expr:e2 {: RESULT = new Add(e1,e2); :} Ngăn xếp phân tích cú pháp lưu giá trị RESULT vế trái Num (1) (1 (E (E + (E + E (E (E) E E + E + E E RESULT = new Num (1) RESULT = new...
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
... ((L),y) (S,y) (L,y) (L,y) (L,y) (L,S) (L) (L) S ngăn xếp 1( 3 1( 3(3 1( 3(3x2 1( 3(3S7 1( 3(3L5 1( 3(3L5)6 1( 3S7 1( 3L5 1( 3L5,8 1( 3L5,8y2 1( 3L5,8S9 1( 3L5 1( 3L5)6 xâu vào ((x),y)$ (x),y)$ x),y)$ ),y)$ ),y)$ ... = (sn, a) = gạt s (s1 x1 s2 x2 … sn-r xn-r … sn -1 xn -1 sn a s) – Thu gọn X , chuyển tới trạng thái s với • = xn-r … xn-2 xn -1 • s = (sn-r, X) = goto (sn-r, X) (s1 x1 s2 x2 … sn-r X s) ... tích LALR (1) LR (1) : Có nhiều trạng thái SLR 10 0 trạng thái LR (1) 10 00 trạng thái Kết hợp trạng thái LR (1) có sản xuất vị trí dấu chấm () giống lại thành trạng thái LALR (1) = SLR...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 6 pot
... +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 Phân ... (2) (1+ 2+(3+4))+5 (E+2+(3+4))+5 (S+2+(3+4))+5 (S+E+(3+4))+5 (S+(3+4))+5 (S+(E+4))+5 (S+(S+4))+5 (S+(S+E))+5 (S+(S))+5 (S+E)+5 (S)+5 E+5 S+E S (1+ 2+(3+4))+5 (1 +2+(3+4))+5 ... (S) Văn phạm đệ quy trái S S+E | E E số | (S) Văn phạm LL (1) S ES’ S’ +S | E số | (S) Đệ quy trái đệ quy phải (1) (1+ 2+(3+4))+5 Đệ quy phải – kết hợp bên phải Đệ quy trái – kết hợp...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 5 doc
... phạm LL (1) 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)S’)S’ ( ( 1 + 2 + ( ( 3 + (1+ 2+(3+4))+5 (1+ 2+(3+4))+5 ... (S)S’ (ES’)S’ (1S’)S’ (1+ S)S’ (1+ ES’)S’ (1+ 2S’)S’ S S’ E ( ( 1 + 2 + số ES’ + (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+ 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 Phân tích...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 4 ppsx
... (S) + S (E + S )+ S (1 + S)+S (1+ E+S)+S (1+ 2+S)+S (1+ 2+E)+S (1+ 2+(S))+S (1+ 2+(E+S))+S (1+ 2+(3+S))+S (1+ 2+(3+E))+S (1+ 2+(3+4))+S (1+ 2+(3+4))+E (1+ 2+(3+4))+5 Suy dẫn phải ... Suy dẫn 1: SS+S 1+ S 1+ S*S 1+ 2*S 1+ 2*3 + * * Suy dẫn 2: SS*SS+S*S 1+ S*S 1+ 2*S 1+ 2*3 + Ý nghĩa Cây suy dẫn khác cho kết tính toán khác Văn phạm nhập nhằng Có nhiều cách hiểu chương trình ... Xâu (1 + + (3 + 4)) + S E + S (S) + S (E + S) + S (1 + S) + S (1 + E + S) + S (1 + + S) + S (1 + + E) + S (1 + + (S)) + S (1 + + (E + S)) + S (1 + + (3 + S)) + S (1 + +...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 3 doc
... pháp RE R1 R2 RE, biểu thức sau RE – – – – – – – – – – a R1|R2 R1R2 R1* R1? R1 (R1) [abc] [a-e] [^…] L(a) = {a} L(R1|R2) = L(R1) L(R2) Nối xâu thuộc L(R1) L(R2) Nối nhiều xâu thuộc L(R1) Xâu ... Xâu rỗng xâu thuộc L(R1) Nối nhiều xâu thuộc L(R1) L([abc]) = L(a|b|c) L([a-e]) = L(a|b| |e) Kí tự kí tự ngoặc Chương trình sinh PTTV Đọc danh sách theo thứ tự ưu tiên RE: R1,…Rn, biểu thức mô ... động tương ứng Ví dụ -? [1- 9][0-9]* { return new Token(Tokens.IntConst, Integer.parseInt(yytext()) } Sinh mã lệnh chương trình PTTV Kiểm tra tính đắn từ vựng chương trình nguồn Sinh dãy từ tố...
Ngày tải lên: 24/07/2014, 08:21
Nhập môn Chương trình dịch - Bài 2 potx
... Nội dung Mô tả bước chương trình dịch Phân tích từ vựng gì? Viết chương trình phân tích từ vựng Mô tả từ tố - biểu thức quy (REs) Viết chương trình sinh chương trình phân tích từ vựng ... quy (RE) Đầu vào chương trình sinh chương trình PTTV đặc tả chương trình PTTV: REs, mức độ ưu tiên hành động tương ứng Bài tới: hoạt động chương trình sinh chương trình PTTV ... REs theo thứ tự ưu tiên – Hành động gắn liền với RE chương trình PTTV nhận dạng từ tố RE Đầu chương trình chương trình PTTV – Đọc chương trình nguồn tách thành từ tố cách nhận dạng REs – Thông...
Ngày tải lên: 24/07/2014, 08:21
NHẬP MÔN CHƯƠNG TRÌNH DỊCH
... $30,$30, $15 bis $16 , $16 , $1 stl $1, 16( $15 ) lds $f1 ,16 ( $15 ) sts $f1,24( $15 ) ldl $5,24( $15 ) bis $5,$5,$2 s4addq $2,0,$3 ldl $4 ,16 ( $15 ) mull $4,$3,$2 ldl $3 ,16 ( $15 ) addq $3 ,1, $4 mull $2,$4,$2 ldl $3 ,16 ( $15 ) ... stq $15 ,8($30) bis $30,$30, $15 bis $16 , $16 , $1 stl $1, 16( $15 ) lds $f1 ,16 ( $15 ) sts $f1,24( $15 ) ldl $5,24( $15 ) bis $5,$5,$2 s4addq $2,0,$3 ldl $4 ,16 ( $15 ) mull $4,$3,$2 ldl $3 ,16 ( $15 ) addq $3 ,1, $4 ... Nhập môn Chương trình dịch Bài 1: Tổng quan Nội dung Sơ lược môn học Các chương trình dịch – Chương trình dịch gì? – Tại phải biết chúng? – Các phận chương trình dịch Giới thiệu...
Ngày tải lên: 06/07/2015, 18:50
GIÁO TRÌNH MÔN CHƯƠNG TRÌNH DỊCH PHẦN 1
... hm chuyn trng thỏi c mụ t bi bng sau: ch_cỏi ch_s < = > khỏc li 11 12 li 1 2 2 4 4 6 6 6 10 10 10 10 10 12 14 14 14 14 13 14 14 Cỏc trng thỏi F l trng thỏi kt thỳc Cỏc trng thỏi cú du * l kt ... LE NE LT 10 * 11 = EQ 12 13 14 * = > GE GT 2 .1. 3 Biờu diờn bi OH Vi vớ d trờn chỳng ta xõy dng ụtụmỏt vi cỏc thụng s nh sau: Q = {0 ,1, 2,3,4,5,6,7,8,9 ,10 ,11 ,12 ,13 ,14 } F = {2,4,6 ,10 ,14 } q0 = hm ... s v 1, ú tn ti ớt nht mt xõu 11 Biu thc chớnh qui: (0 |1) *11 (0 |1) * Biu din biu thc chớnh quy di dng th chuyn: th chuyn n nh 0 |1 12 1 start 0 0 |1 12 1 0 |1 start th chuyn khụng n nh 2 .1. 1.3 ễtụmỏt...
Ngày tải lên: 03/10/2013, 12:20
CHƯƠNG 1: NHẬP MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG potx
... trúc struct Con trỏ Làm tập nhà OOP-CHƯƠNG 1- NHẬP MÔN OOP GV: Võ Hồng Bảo Châu 11 4 /14 /2 010 45 THANK YOU OOP-CHƯƠNG 1- NHẬP MÔN OOP GV: Võ Hồng Bảo Châu 12 ... Thông điệp nhận hành vi đối tượng OOP-CHƯƠNG 1- NHẬP MÔN OOP GV: Võ Hồng Bảo Châu OOP-CHƯƠNG 1- NHẬP MÔN OOP GV: Võ Hồng Bảo Châu 4 /14 /2 010 HÀNH VI (BEHAVIOR) 17 18 Thao tác (operation) Phương thức ... Objective C Java (19 95), Sun GV: Võ Hồng Bảo Châu OOP-CHƯƠNG 1- NHẬP MÔN OOP GV: Võ Hồng Bảo Châu OOP-CHƯƠNG 1- NHẬP MÔN OOP Phương pháp giải toán theo OOP SO SÁNH CÁCH ViẾT CHƯƠNG TRÌNH 31 32 Program...
Ngày tải lên: 27/07/2014, 13:21
slike bài giảng môn chương trình dịch chương 1 tổng quan
... tmp1 = i2f(60) tmp2 = id2 * tmp1 tmp3 = id1 + tmp2 id1 = tmp3 T i u mã trung gian tmp2 = id2 * 60.0 id1 = id1 + tmp2 Sinh mã máy MOVF id2, R2 MULF #60.0, R2 MOVF id1, R1 ADDF R2, R1 MOVF R1, id1 ... K T • • • • Nhi m v c a ch ng trình d ch Phân lo i ch ng trình d ch Các giai o n c a trình d ch Các ch ng trình liên quan n ch trình d ch c: [1] chapter 1, pages 1- 24 [2] chapter 2, pages 25-82 ... CH Ch NG TRÌNH D CH Ch ng trình ngôn ng ngu n ng trình ngôn ng ích L i • nh n d ng ch • sinh mã ích Khoa CNTT - DHBK ng trình ngu n Gi i Thi u CÁC LO I CH NG TRÌNH D CH • Trình biên d ch...
Ngày tải lên: 23/10/2014, 17:33