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 316 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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

•D dàng sinh mã cho nh ng ngôn ng ngu n c ng nh máy đích khác nhau.

Trang 1

GI I THI U V CH NG

TRÌNH D CH

TS Nguy n H a Phùng Khoa Công ngh Thông tin

i h c Bách Khoa – i h c Qu c Gia TPHCM

2006

Trang 2

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

Trang 3

CÁC LO I CH NG TRÌNH D CH

• Trình biên d ch (compiler)

• Trình thông d ch (interpreter)

Trang 4

CÁC GIAI O N D CH

Mã ngu n Phân tích t v ng

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

Trang 5

VÍ D

acc = acc + inc * 60 Phân tích t v ng

id1 = id1 + id2 * intliteral

Phân tích cú pháp

=

id2 intliteral60

acc real …

inc real …

1

2

X lý ng ngh a

=

id2

intliteral60 i2f

Trang 6

Sinh mã trung gian

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

Trang 7

MÃ TRUNG GIAN

Ph n đ u cho C# Ph n cu i cho JVM

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

Trang 8

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.

Trang 9

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.

Trang 10

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

Trang 11

SINH MÃ TRUNG GIAN

• T o ra mã trung gian v i các đ c tính

– d dàng sinh ra mã máy

• Các d ng mã trung gian ph bi n:

– Cây cú pháp tr u t ng (Abstract Syntax Tree - AST)

– th có h ng không l p vòng (Directed Acyclic Graph - DAG)

– Mã h u t (postfix notation)

– Mã 3 đ a ch (three-address code)

Trang 12

T I U MÃ TRUNG GIAN

• Phân tích và c i thi n mã trung gian nh m

– gi m th i gian th c thi

– gi m kích th c ch ng trình đích

– gi m b nh c n thi t khi ch y

• 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

Trang 13

SINH MÃ MÁY

• T o ra mã máy d ng tái đ nh đ a ch

(relocatable machine code) ho c mã assembly

• L a ch n l nh máy cho m i l nh trung

gian

• L a ch n thanh ghi ho c m t v trí nh đ

c p phát cho các bi n

Trang 14

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

Trang 15

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 ng trình d ch

c: [1] chapter 1, pages 1-24

[2] chapter 2, pages 25-82

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm