Slide Chương trình dịch - C6 Sinh mã trung gian - GV Hoàng Anh Việt
- Pages
- 27
- Format
- Size
- 287 KB
- Trường
- Đại học Bách khoa Hà Nội
- Views
- 0
- Comments
- 0
- Lượt tải
- 0
Slide bài giảng về Bài 6 - Sinh mã trung gian trong môn Chương trình dịch, trình bày các bước dịch, định nghĩa ngôn ngữ trung gian IR và mô tả chi tiết các nút biểu thức và nút lệnh của IR.
Frequently asked questions
Is this document free?
Yes. “Slide Chương trình dịch - C6 Sinh mã trung gian - GV Hoàng Anh Việt” is free — just sign in and click Download to get the original file.
How many pages is this document?
The document has 27 pages, for the course Chương trình dịch. You can preview it online before downloading.
Can I preview before downloading?
Yes. You can preview this document right on this page with the online reader, then decide whether to download.
- Document name
- Slide Chương trình dịch - C6 Sinh mã trung gian - GV Hoàng Anh Việt
- School / Course
- Đại học Bách khoa Hà Nội · Chương trình dịch
- Author (in document)
- Hoàng Anh Việt
- Content
- 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.
- Table of contents
- 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
- Pages
- 27 pages
- Uploaded by
- lienhejb
Generating preview...
Description
Bài 6. SINH MÃ TRUNG GIAN Hoàng Anh Việt Viện CNTT&TT - ĐHBKHN 1 fb.com/groups/ 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 fb.com/groups/ 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 fb.com/groups/ 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 fb.com/groups/ 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 lệnh) fb.com/groups/ 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 Pentium Java bytecod AMD fb.com/groups/ 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ã fb.com/groups/ 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
Slide Chương trình dịch - C6 Sinh mã trung gian - GV Hoàng Anh Việt
Generating preview...
Bài 6. SINH MÃ TRUNG GIAN Hoàng Anh Việt Viện CNTT&TT - ĐHBKHN 1 fb.com/groups/ 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 fb.com/groups/ 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 fb.com/groups/ 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 fb.com/groups/ 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 lệnh) fb.com/groups/ 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 Pentium Java bytecod AMD fb.com/groups/ 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ã fb.com/groups/ 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
Read full document
- Document name
- Slide Chương trình dịch - C6 Sinh mã trung gian - GV Hoàng Anh Việt
- School / Course
- Đại học Bách khoa Hà Nội · Chương trình dịch
- Author (in document)
- Hoàng Anh Việt
- Content
- 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.
- Table of contents
- 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
- Pages
- 27 pages
- Uploaded by
- lienhejb
Comments (0)
No comments yet. Be the first!
Slide Chương trình dịch (UNIT2) - GV Nguyễn Thị Thu Hương
Slide Chương trình dịch (UNIT5) - GV Nguyễn Thị Thu Hương
Slide Chương trình dịch (UNIT6) - GV Nguyễn Thị Thu Hương
Slide Chương trình dịch - C4 Phân tích cú pháp - GV Hoàng Anh Việt
Slide Chương trình dịch - C2 CT Dịch đầu tiên - GV Hoàng Anh Việt
K5 Bộ đề luyện thi Trạng Nguyên Tiếng Việt (NXB DHQG)
K2 Bộ đề luyện thi Trạng Nguyên Tiếng Việt (NXB DHQG)
K3 Bộ đề luyện thi Trạng Nguyên Tiếng Việt (NXB DHQG)
K4 Bộ đề luyện thi Trạng Nguyên Tiếng Việt (NXB DHQG)
K1 Bộ đề luyện thi Trạng Nguyên Tiếng Việt (NXB DHQG)
Comments (0)
No comments yet. Be the first!