Một Lượt Đơn Giản

Một phần của tài liệu Trình biên dịch nguuyên lý kỹ thuật và công cụ (Trang 32 - 33)

. 98 TỔNG QUAN VỀ BIÊN DỊCH

Một Lượt Đơn Giản

Chương này sẽ giới thiệu về các vấn để sẽ được thảo luận qua các chương từ Chương 3 đến Chương 8 của quyển sách này. Chúng tơi sẽ trình bày một số kỹ thuật biên dịch cơ bản, được minh họa bằng cách phát triển một chương trình C dịch một biếu thức trung tỷ (infix expression) thành một biểu thức hậu 0ý (postfix expression). Ở đây, chúng ta tập trung vào &ÿ đầu (front end) của trình biên dịch, nghĩa là các giai đoạn phân tích từ vựng, phân tích cú pháp, và sinh mã trung gian. Chương 9 và 10 sẽ bàn đến vấn để phát sinh và tối ưu mã.

3.1 TỔNG QUAN

Một ngơn ngữ lập trình cĩ thể được định nghĩa bằng cách mơ tả xem một chương trình của nĩ trơng như thế nào (cứ pháp của ngơn ngữ), và các chương trình muốn nĩi gì (ngữ nghĩa của ngơn ngữ). Để đặc tả cú pháp của một ngơn ngữ, chúng ta trình bày một ký pháp đã được sử dụng rộng rãi, đĩ là uữn phạm phí ngữ cảnh (context-free grammiar) hay ký pháp BNF (Backus-Naur Form). Với các ký pháp hiện cĩ, ngữ nghĩa của ngơn ngữ khĩ mo tả hơn nhiều so với cú pháp. Do vậy để đặc tả ngữ nghĩa của một ngơn ngữ, chúng ta sẽ sử dụng các mơ tả khơng hình thức và đưa ra các thí dụ gợi ý.

Bên cạnh việc đặc tả cú pháp của một ngơn ngữ, văn phạm phi ngữ cảnh cịn cĩ thể hướng dẫn quá trình dịch các chương trình. Một kỹ thuật biên dịch hướng văn phạm cĩ tên là pđiên dịch dựa cú pháp (syntax-directed translation), rất cĩ ích cho việc tổ chức kỳ đầu của trình biên dịch và sẽ được dùng rộng rãi trong chương này.

Khi thảo luận về kỹ thuật phiên dịch dựa cú pháp, chúng ta sẽ xây dựng một trình biên dịch dùng để chuyển một biểu thức dạng trung vị sang dạng hậu vị, là ký pháp với các tốn tử nằm sau các tốn hạng của chúng, Chẳng hạn, dạng hậu vị của biểu thức 8-5+2 là 95-2+. Ký pháp hậu vị cĩ thể được chuyển trực tiếp thành chương trình máy tính, thực hiện tất cả các tính tốn bằng cách sử dụng chĩng xếp (stack). Chúng ta sẽ bắt đầu qua việc xây dựng một chương trình đơn giản cĩ thể dịch các biểu thức

Một phần của tài liệu Trình biên dịch nguuyên lý kỹ thuật và công cụ (Trang 32 - 33)