Thông tin tài liệu:
Chương 2 Tổng quan về trình biên dịch thuộc bài giảng lý thuyết ngôn ngữ lập trình, cùng nắm kiến thức trong chương học này thông qua việc tìm hiểu các nội dung sau: trình biên dịch, các giai đoạn biên dịch, gộp các giai đoạn.
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết ngôn ngữ lập trình: Chương 2 - CĐ CNTT Hữu nghị Việt Hàn Chương 2 TỔNG QUAN VỀ TRÌNH BIÊN DỊCHTrường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính Bài giảng môn Lý thuyết ngôn ngữ lập tr Nội dung Chương 2 2.1. Trình biên dịch 2.1.1. Mô hình phân tích - tổng hợp của một trình biên dịch 2.1.2 Môi trường của trình biên dịch 2.2. Các giai đoạn biên dịch 2.2.1. Quản lý bảng ký hiệu 2.2.2. Xử lý lỗi 2.2.3. Các giai đoạn phân tích 2.2.4. Sinh mã trung gian 2.2.5. Tối ưu mã 2.2.6. Sinh mã 2.3. Gộp các giai đoạnờng Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính 22.1 Trình biên dịch Trình biên dịch đọc một chương trình được viết bằng ngôn ngữ nguồn (source language) rồi dịch sang ngôn ngữ đích (target languague) Quá trình dịch ghi nhận và thông báo các lỗi có trong chương trình nguồn Chương Trình Chương trình biên dịch trình đích nguồnờng Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính 3 2.1 Trình biên dịch (tt) Mô hình phân tích - tổng hợp – Quy trình của chương trình dịch thường bao gồm hai quá trình: phân tích và tổng hợp Quá trình phân tích: phân rã chương trình nguồn thành các phần cấu thành và tạo ra một dạng biểu diễn trung gian Quá trình tổng hợp: từ dạng biểu diễn trung gian xây dựng thành ngôn ngữ đích Chương Phân tích Đặc tả Tổng hợp Chương trình trung trình nguồn gian đíchờng Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính 4 2.1 Trình biên dịch (tt) Mô hình phân tích - tổng hợp (tt) – Trong quá trình phân tích: phân rã chương trình nguồn thành một cấu trúc phân cấp dạng cây cú pháp (syntax tree), mỗi nút là một toán tử và các nhánh con là các toán hạng – Ví dụ: Cây cú pháp cho lệnh gán a := b + c * 5 := a + b * c 5ờng Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính 5 2.1 Trình biên dịch (tt) Môi trường của trình biên dịch – Ngoài trình biên dịch, cần dùng nhiều chương trình khác để tạo chương trình đích có thể thực thi (executable) – Các chương trình đó gồm: Bộ tiền xử lý Trình dịch hợp ngữ Bộ tải và soạn thảo liên kếtờng Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính 6 2.1 Trình biên dịch (tt) Bộ tiền xử lý – Chương trình nguồn có thể được phân thành các module và được lưu trong các tập tin riêng – Việc tập hợp các tập tin này lại thường được giao cho bộ tiền xử lý – Bộ tiền xử lý có thể bung các ký hiệu tắt được gọi là các macro thành các câu lệnh của ngôn ngữ nguồnờng Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính 7 2.1 Trình biên dịch (tt) Trình dịch hợp ngữ – Chương trình đích được tạo ra bởi trình biên dịch có thể cần phải được xử lý thêm trước khi chúng có thể chạy được – Thông thường, trình biên dịch chỉ tạo ra mã lệnh hợp ngữ (assembly code) – Trình dịch hợp ngữ (assembler) dịch thành dạng mã máyờng Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính 8 2.1 Trình biên dịch (tt) Chương trình nguồn khung Bộ tải và soạn thảo liên kết Bộ tiền xử lý – Dạng mã máy được liên kết Chương trình nguồn với một số thủ tục (hàm, lớp, …) trong thư viện hệ thống Trình biên dịch thành các mã thực thi được Chương trình đích hợp ngữ Một quá trình biên dịch điển Trình dịch hợp ngữ hình được cho như hình bên Mã máy khả tái định vị Thư viện, tập Trình tải / Liên ...