Chủ Nhật, 20 tháng 8, 2017

Chương trình dịch

Chương trình dịch chính là một phần mềm chuyển dạng từ mã nguồn sang thành chuỗi các chỉ thị máy tính gọi là biên dịch (hay ngắn gọn hơn là dịch)


Có 2 loại chương trình dịch tùy theo quá trình dịch:
Thông dịch  (interpeter) là một phần mềm có khả năng đọc, chuyển dịch mã nguồn của một ngôn ngữ lập trình ra ngôn ngữ máy
(Ví dụ: trình thông dịch của Java)
Biên dịch (compiler) là phần mềm có khả năng chuyển dịch mã nguồn của một ngôn ngữ ban đầu sang dạng mã mới thuộc về ngôn ngữ cấp thấp hơn.
Ghi chú : Trình thông dịch sẽ dịch từng câu lệnh một và chương trình đích sẽ không được lưu lại (java). Còn trình biên dịch sẽ dịch toàn bộ chương trình, cho ra chương trình đích (.exe) lưu lại trong máy tính rồi mới thực hiện chương trình.
Quá trình thực hiện của Chương trình dịch
 Giai đoạn tiền xử lý:
- Phân tích từ vựng (Lexical Analysis), phân tích cú pháp (Syntax Analysis), phân tích ngữ nghĩa
- Tiền xử lí ( preprocessing): nhận mã nguồn và xoá bỏ các chú thích
Giai đoạn dịch:
- Sinh mã: chuyển mã nguồn sang dạng mã Assemly, sau đó dịch  sang mã máy, tối ưu mã máy
Giai đoạn liên kết (link)
Mã máy của một chương trình dịch từ nhiều nguồn khác nhau và các thư viện được liên kết lại với nhau để tạo thành chương trình đích duy nhất. Kết thúc quá trình tất cả các đối tượng được lên kết lại với nhau thành một chương trình có thể thực thi được (executable).

Hình1-1. Sơ đồ quá trình biên dịch C
 Ghi chú:
- Mỗi phần mềm lập trình (công cụ lập trình) thường đã tích hợp sẵn chương trình dịch, Lệnh build chương trình chính là chức năng chạy chương trình dịch file nguồn và các thư viện thành file thực thi chương trình.
- Một trong những nhiệm vụ quan trọng của chương trình dịch là phát hiện lỗi cú pháp của chương trình nguồn.

- Trình thông dịch giúp dịch trực tiếp lệnh ngôn ngữ bậc cao ra chỉ thị ngôn ngữ máy để thực thi ngay do vậy chạy rất nhanh. Tuy nhiên chính điều này lại là nhược điểm, đó là luôn cần tệp mã nguồn khi chạy chương trình. Do đó khi chuyển phần mềm đến tay người sử dụng có thể bị lộ mã nguồn chương trình. Vì  vậy trình thông dịch hay được sử dụng trong các hệ thống mã nguồn mở.

Related Posts

There is no other posts in this category.