Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
116,7 KB
Nội dung
GII THIU V CHNG TRÌNH DCH TS. NguynHa Phùng Khoa Công ngh Thông tin i hc Bách Khoa – i hc Quc Gia TPHCM 2006 CHNG TRÌNH DCH Chng trình ngôn ng ngun Chng trình ngôn ng đích Li •nhn dng chng trình ngun • sinh mã đích Khoa CNTT - DHBK Gii Thiu2 CÁC LOI CHNG TRÌNH DCH • Trình biên dch (compiler) • Trình thông dch (interpreter) Khoa CNTT - DHBK Gii Thiu3 CÁC GIAI ON DCH Mã ngun Phân tích t vng Khoa CNTT - DHBK Gii Thiu4 Phân tích cú pháp X lý ng ngha Sinh mã trung gian Ti u mã trung gian Sinh mã máy Chui tokens Cây phân tích cú pháp Phn đu (front end) Phân tích (analysis) Bng danh hiu Cây phân tích cú pháp Mã trung gian Phn cui (back end) Tng hp (synthesis) Mã trung gian đã ti u Mã máy VÍ D acc = acc + inc * 60 Phân tích t vng id 1 = id 1 + id 2 * intliteral Phân tích cú pháp = id 1 + id 1 * id 2 intliteral 60 acc real … inc real … … 1 2 X lý ng ngha Khoa CNTT - DHBK Gii Thiu5 = id 1 + id 1 * id 2 intliteral 60 i2f Khoa CNTT - DHBK Gii Thiu6 Sinh mã trung gian tmp 1 = i2f(60) tmp 2 = id 2 * tmp 1 tmp 3 = id 1 + tmp 2 id 1 = tmp 3 Ti u mã trung gian tmp 2 = id 2 * 60.0 id 1 = id 1 + tmp 2 Sinh mã máy MOVF id 2 , R2 MULF #60.0, R2 MOVF id 1 , R1 ADDF R2, R1 MOVF R1, id 1 MÃ TRUNG GIAN Phn đu cho C# Phn cui cho JVM Khoa CNTT - DHBK Gii Thiu7 Mã trung gian Phn đu cho Java Phn cui cho MIPS •Có th thc hin 1 s thao tác ti u không ph thuc máy đích trên mã trung gian. •D dàng sinh mã cho nhng ngôn ng ngun cng nh máy đích khác nhau. PHÂN TÍCH T VNG • nhóm các ký t trong chng trình ngun thành các tokens (đn v c bn ca vn phm) acc = acc + inc * 60 (gm 20 ký t bao gm c các khong trng) ⇒ Mt danh hiu acc Mt du gán = Mt danh hiu acc Mt du cng + Mt danh hiu inc Mt du nhân * Mt hng nguyên 60 •loi b các khong trng (xung hàng, tab, blank,…) •Báo li (chui quá dài,…) •Xác đnh v trí hàng, ct ca mi token. Khoa CNTT - DHBK Gii Thiu8 PHÂN TÍCH CÚ PHÁP •Xác đnh chui token có phù hp vi vn phm (context-free) ca ngôn ng ngun. •To ra cây phân tích cú pháp. • Báo li vn phm nu chui token không phù hp. •B qua token gây ra li và tip tc phân tích phn còn li. Khoa CNTT - DHBK Gii Thiu9 X LÝ NG NGHA •Kim tra li ng ngha –Bin phi đc khai báo trc khi dùng –Bin phi đc khi đng tr trc khi đc –Li kiu • các toán hng tham gia mt biu thc phi phù hp kiu •s thc không th dùng làm ch s cho 1 tham kho dãy a[1.4] •s lng và kiu ca thông s thc phi phù hp vi s lng và kiu ca thông s hình thc Khoa CNTT - DHBK Gii Thiu10 [...]... CNTT - DHBK Gi i Thi u 13 CÁC CH NG TRÌNH LIÊN QUAN • Ti n x lý – X lý macro – File inclusion – “Rational” preprocessor – Language extensions • Assembler • Loader and Link-Editors Khoa CNTT - DHBK Gi i Thi u 14 T NG 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 quá 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... CNTT - DHBK Gi i Thi u 11 T I U MÃ TRUNG GIAN • Phân tích và c i thi n mã trung gian nh m – gi – gi – gi – gi m th i gian th c thi m kích th c ch ng trình ích m b nh c n thi t khi ch y m n ng l ng c n s d ng • M t s k thu t t i u c tr ng – lan truy n các giá tr h ng – tìm các tính toán d th a và lo i b chúng – lo i b mã vô d ng ho c không c th c thi Khoa CNTT - DHBK Gi i Thi u 12 SINH MÃ MÁY • T o ra... ng trình d ch Phân lo i ch ng trình d ch Các giai o n c a quá 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 Khoa CNTT - DHBK Gi i Thi u ng 15 . KT •Nhim v ca chng trình dch • Phân loi chng trình dch • Các giai đon ca quá trình dch •Các chng trình liên quan đn chng trình dch c: [1] chapter 1, pages 1- 24 [2] chapter 2,. gian tmp 1 = i2f(60) tmp 2 = id 2 * tmp 1 tmp 3 = id 1 + tmp 2 id 1 = tmp 3 Ti u mã trung gian tmp 2 = id 2 * 60.0 id 1 = id 1 + tmp 2 Sinh mã máy MOVF id 2 , R2 MULF #60.0, R2 MOVF id 1 , R1 ADDF. tích t vng id 1 = id 1 + id 2 * intliteral Phân tích cú pháp = id 1 + id 1 * id 2 intliteral 60 acc real … inc real … … 1 2 X lý ng ngha Khoa CNTT - DHBK Gii Thiu5 = id 1 + id 1 * id 2 intliteral 60 i2f Khoa