tailieunhanh - Bài giảng Nguyên lý ngôn ngữ lập trình - Chương 2: Một trình biên dịch đơn giản
Chương này giới thiệu một trình biên dịch cho các biểu thức số học đơn giản (trình biên dịch đơn giản) gồm hai kỳ: Kỳ đầu (Front end) và kỳ sau (Back end). Nội của chương tập trung vào kỳ đầu gồm các giai đoạn: Phân tích từ vựng, phân tích cú pháp và sinh mã trung gian với mục đích chuyển một biểu thức số học đơn giản từ dạng trung tố sang hậu tố. Kỳ sau chuyển đổi biểu thức ở dạng hậu tố sang mã máy ảo kiểu stack, sau đó sẽ thực thi đoạn mã đó trên máy ảo kiểu stack để cho ra kết quả tính toán cuối cùng. | CHƯƠNG II MỘT TRÌNH BIÊN DỊCH ÐƠN GIẢN Nội dung chính: Chương này giới thiệu một trình biên dịch cho các biểu thức số học đơn giản (trình biên dịch đơn giản) gồm hai kỳ: Kỳ đầu (Front end) và kỳ sau (Back end). Nội dung chính của chương tập trung vào kỳ đầu gồm các giai đoạn: Phân tích từ vựng, phân tích cú pháp và sinh mã trung gian với mục đích chuyển một biểu thức số học đơn giản từ dạng trung tố sang hậu tố. Kỳ sau chuyển đổi biểu thức ở dạng hậu tố sang mã máy ảo kiểu stack, sau đó sẽ thực thi đoạn mã đó trên máy ảo kiểu stack để cho ra kết quả tính toán cuối cùng. Mục tiêu cần đạt: Sau khi học xong chương này, sinh viên phải nắm được: • Các thành phần cấu tạo nên trình biên dịch đơn giản. • Hoạt động và cách cài đặt các giai đoạn của kỳ trước của một trình biên dịch đơn giản. • Cách sử dụng máy trừu tượng kiểu stack để chuyển đổi các biểu thức hậu tố sang mã máy ảo và cách thực thi các đoạn mã ảo này để có được kết quả cuối cùng. Kiến thức cơ bản Để tiếp nhận các nội dung được trình bày trong chương 2, sinh viên phải: • Biết một ngôn ngữ lập trình nào đó: C, Pascal, để hiểu cách cài đặt trình biên dịch. • Có kiến thức về cấu trúc dữ liệu để hiểu cách tổ chức dữ liệu khi thực hiện cài đặt. Tài liệu tham khảo: [1] Trình Biên Dịch - Phan Thị Tươi (Trường Ðại học kỹ thuật ) - NXB Giáo dục, 1998. [2] Compilers : Principles, Technique and Tools - Alfred , Jeffrey - Addison - Wesley Publishing Company, 1986. I. ÐỊNH NGHĨA CÚ PHÁP 1. Văn phạm phi ngữ cảnh Ðể xác định cú pháp của một ngôn ngữ, người ta dùng văn phạm phi ngữ cảnh CFG (Context Free Grammar) hay còn gọi là văn phạm BNF (Backers Naur Form) Văn phạm phi ngữ cảnh bao gồm bốn thành phần: 1. Một tập hợp các token - các ký hiệu kết thúc (terminal symbols). Ví dụ: Các từ khóa, các chuỗi, dấu ngoặc đơn, . 11 2. Một tập hợp các ký hiệu chưa kết thúc (nonterminal symbols), còn gọi là các biến (variables). Ví dụ: Câu lệnh, biểu thức, . 3. Một tập hợp các luật sinh (productions) trong
đang nạp các trang xem trước