tailieunhanh - Bài giảng Nhập môn chương trình dịch: Chương 6 - Hoàng Anh Việt

Bài giảng "Nhập môn chương trình dịch - Chương 6: Sinh mã trung gian" giới thiệu tới sinh viên các kiến thức: Ngôn ngữ trung gian, một số ngôn ngữ trung gian, mô tả các nút biểu thức của IR, toán tử, mô tả các nút lệnh của IR, cây sinh IR,. Đây là một tài liệu hữu ích dành cho các bạn sinh viên công nghệ thông tin dùn làm tài liệu học tập và nghiên cứu. | Bài 6. SINH MÃ TRUNG GIAN Hoàng Anh Việt Viện CNTT&TT - ĐHBKHN 1 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 Phân tích cú pháp ; a Phân tích ngữ nghĩa if = int int 0 int min lvalue a ; int 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: Sinh mã assembly Tối ưu mã cmp ecx, 0 cmovz edx,ecx 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 Java bytecode AMD 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 Cây cú pháp (>40 nút) Mã trung gian (13 nút) Pentium (>200 .

TỪ KHÓA LIÊN QUAN
crossorigin="anonymous">
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.