IT4073:NGÔN NGỮ và
PHƢƠNG PHÁP DỊCH
Phạm Đăng Hải
haipd@soict.hut.edu.vn
THÀNH CÔNG
11/18/2012 2
Chƣơng 5: Sinh mã
1. Sinh mã trung gian
2. Sinh mã đích
3. Tối ƣu mã
11/18/2012 3
Bộ sinh mã trung gian chuyển chƣơng trình
nguồn sang chƣơng trình tƣơng đƣơng trong
ngôn ngữ trung gian
Chƣơng trình trung gian là một chƣơng trình
cho một máy trừu tƣợng
Ngôn ngữ trung gian đƣợc ngƣời thiết kế
trình biên dịch quyết định, có thể là:
Cây cú pháp
Ký pháp Ba Lan sau (hậu tố)
Mã 3 địa chỉ
Giới thiệu
1. Sinh mã trung gian
11/18/2012 4
Chƣơng trình dịch định hƣớng cú pháp
Cây cú pháp
Ký pháp Ba lan sau
Mã 3 địa chỉ
Các dạng
Dịch trực tiếp cú pháp thành mã 3 địa chỉ
Sinh mã cho khai báo
Sinh mã cho lệnh gán
Sinh mã cho các biểu thức logic
Sinh mã cho các cấu trúc lập trình
Nội dung
1. Sinh mã trung gian
11/18/2012 5
Mỗi ký hiệu VP liên kết với một tập thuộc tính:
Thuộc tính tổng hợp:
Giá trị của thuộc tính tại một nút trong cây đƣợc xác
định từ giá trị của các nút con của nó.
Thuộc tính kế thừa:
Giá trị của thuộc tính đƣợc định nghĩa dựa vào giá trị
nút cha và/hoặc các nút anh em của nó.
Tồn tại một tập luật ngữ nghĩa dùng để tính
giá trị thuộc tính
Chƣơng trình dịch định hƣớng cú pháp
1. Sinh mã trung gian