Slide Chương trình dịch - C6 Sinh mã trung gian - GV Hoàng Anh Việt
Đang tạo bản xem trước...
Bài 6. SINH MÃ TRUNG GIAN Hoàng Anh Việt Viện CNTT&TT - ĐHBKHN 1 goupee.com fb.com/groups/goupee Mô tả các bước dịch (1) Mã nguồn (dãy các kí tự) Phân tích từ vựng If (a == 0) min = a; Dãy các từ tố (token) If ( Id:a == 0 ) Id:min = Id:a ; if Cây cú pháp == a = 0 min Cây cú pháp điều khiển boolean == int a goupee.com Phân tích cú pháp ; a Phân tích ngữ nghĩa if = int int 0 int min lvalue a ; int fb.com/groups/goupee Mô tả các bước dịch (2) if boolean == = int Sinh mã trung gian ; int int 0 int min a lvalue SEQ(CJUMP(TEMP(a) == 0, L1, L2), LABEL(L1), TEMP(min) = TEMP(a) LABEL(L2)) int a cmp rb, 0 jnz L2 L1: mov ra, rb L2: goupee.com Sinh mã assembly Tối ưu mã cmp ecx, 0 cmovz edx,ecx fb.com/groups/goupee Ngôn ngữ trung gian Là ngôn ngữ cho một loại máy trừu tượng Cho phép sinh mã không phụ thuộc vào máy đích Cho phép tối ưu mã trước khi sinh mã máy thật sự Pentium Cây cú pháp + thông tin điều khiển goupee.com Java bytecode AMD fb.com/groups/goupee Ngôn ngữ trung gian Dễ sinh ra từ cây cú pháp Dễ sinh mã máy Số lượng lệnh nhỏ, gọn Dễ tối ưu mã Dễ chuyển sang loại mã máy khác goupee.com Cây cú pháp (>40 nút) Mã trung gian (13 nút) Pentium (>200 lệnh) fb.com/groups/goupee Ngôn ngữ trung gian Một dạng thể hiện của chương trình nằm giữa cây cú pháp điều khiển và mã máy Sử dụng Lệnh nhảy Thanh ghi Vị trí trên bộ nhớ Tối ưu mã Cây cú pháp Mã trung + gian thông tin điều khiển goupee.com Pentium Java bytecod AMD fb.com/groups/goupee Một ngôn ngữ trung gian IR (Intermediate Representation) là một cây thể hiện các lệnh của một loại máy trừu tượng Nút lệnh không trả lại giá trị, được thực hiện theo thứ tự nhất định Ví dụ: MOVE, SEQ, CJUMP Nút biểu thức trả lại giá trị, các nút con có thể thực hiện theo thứ tự bất kì Ví dụ: ADD, SUB Cho phép tối ưu mã goupee.com fb.com/groups/goupee Mô tả các nút biểu thức của IR CONST(i): hằng số nguyên i TEMP(t): thanh ghi t, máy trừu tượng có vô hạn
… Tải file gốc để đọc toàn bộ tài liệu.
- Tên tài liệu
- Slide Chương trình dịch - C6 Sinh mã trung gian - GV Hoàng Anh Việt
- Trường / Môn
- Đại học Bách khoa Hà Nội · Chương trình dịch
- Tác giả (trong tài liệu)
- Hoàng Anh Việt
- Nội dung
- Tài liệu này trình bày về mã trung gian trong chương trình dịch, là bước trung gian giữa cây cú pháp và mã máy, giúp tách biệt máy đích và tối ưu hóa. Nó định nghĩa các thành phần của mã trung gian như nút lệnh và nút biểu thức.
- Mục lục
- Bài 6.
- SINH MÃ TRUNG GIAN
- Mô tả các bước dịch (1)
- Mô tả các bước dịch (2)
- Ngôn ngữ trung gian
- Ngôn ngữ trung gian
- Ngôn ngữ trung gian
- Một ngôn ngữ trung gian
- Mô tả các nút biểu thức của IR
- CONST
- TEMP
- Toán tử
- MEM
- CALL
- NAME
- ESEQ
- Mô tả các nút lệnh của IR
- Số trang
- 27 trang
- Người đăng
- Người dùng ẩn danh

Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!