1. Trang chủ
  2. » Công Nghệ Thông Tin

slike bài giảng môn chương trình dịch chương 1 tổng quan

15 315 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

GII THIU V CHNG TRÌNH DCH TS. NguynHa Phùng Khoa Công ngh Thông tin i hc Bách Khoa – i hc Quc Gia TPHCM 2006 CHNG TRÌNH DCH Chng trình  ngôn ng ngun Chng trình  ngôn ng đích Li •nhn dng chng trình ngun • sinh mã đích Khoa CNTT - DHBK Gii Thiu2 CÁC LOI CHNG TRÌNH DCH • Trình biên dch (compiler) • Trình thông dch (interpreter) Khoa CNTT - DHBK Gii Thiu3 CÁC GIAI ON DCH Mã ngun Phân tích t vng Khoa CNTT - DHBK Gii Thiu4 Phân tích cú pháp X lý ng ngha Sinh mã trung gian Ti u mã trung gian Sinh mã máy Chui tokens Cây phân tích cú pháp Phn đu (front end) Phân tích (analysis) Bng danh hiu Cây phân tích cú pháp Mã trung gian Phn cui (back end) Tng hp (synthesis) Mã trung gian đã ti u Mã máy VÍ D acc = acc + inc * 60 Phân tích t vng 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 ngha Khoa CNTT - DHBK Gii Thiu5 = id 1 + id 1 * id 2 intliteral 60 i2f Khoa CNTT - DHBK Gii Thiu6 Sinh mã trung gian tmp 1 = i2f(60) tmp 2 = id 2 * tmp 1 tmp 3 = id 1 + tmp 2 id 1 = tmp 3 Ti 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 Phn đu cho C# Phn cui cho JVM Khoa CNTT - DHBK Gii Thiu7 Mã trung gian Phn đu cho Java Phn cui cho MIPS •Có th thc hin 1 s thao tác ti u không ph thuc máy đích trên mã trung gian. •D dàng sinh mã cho nhng ngôn ng ngun cng nh máy đích khác nhau. PHÂN TÍCH T VNG • nhóm các ký t trong chng trình ngun thành các tokens (đn v c bn ca vn phm) acc = acc + inc * 60 (gm 20 ký t bao gm c các khong trng) ⇒ Mt danh hiu acc Mt du gán = Mt danh hiu acc Mt du cng + Mt danh hiu inc Mt du nhân * Mt hng nguyên 60 •loi b các khong trng (xung hàng, tab, blank,…) •Báo li (chui quá dài,…) •Xác đnh v trí hàng, ct ca mi token. Khoa CNTT - DHBK Gii Thiu8 PHÂN TÍCH CÚ PHÁP •Xác đnh chui token có phù hp vi vn phm (context-free) ca ngôn ng ngun. •To ra cây phân tích cú pháp. • Báo li vn phm nu chui token không phù hp. •B qua token gây ra li và tip tc phân tích phn còn li. Khoa CNTT - DHBK Gii Thiu9 X LÝ NG NGHA •Kim tra li ng ngha –Bin phi đc khai báo trc khi dùng –Bin phi đc khi đng tr trc khi đc –Li kiu • các toán hng tham gia mt biu thc phi phù hp kiu •s thc không th dùng làm ch s cho 1 tham kho dãy a[1.4] •s lng và kiu ca thông s thc phi phù hp vi s lng và kiu ca thông s hình thc Khoa CNTT - DHBK Gii Thiu10 [...]... 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 . 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ng trình dch 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 Ti 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 vng 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 ngha Khoa CNTT - DHBK Gii Thiu5 = id 1 + id 1 * id 2 intliteral 60 i2f Khoa

Ngày đăng: 23/10/2014, 17:33

TỪ KHÓA LIÊN QUAN