Chương trình dịch – hay còn gọi là chương trình biên dịch trong tiếng Anh là chương trình dùng để chuyển đổi chương trình nguồn được viết bằng ngôn ngữ lập trình bậc cao thành chương trình đích được thể hiện bằng ngôn ngữ máy và chương trình đích này có thể thực thi (executable) trên máy tính .
Tại sao tôi cần một chương trình dịch thuật?
Bạn đang xem: Chương trình dịch dùng để làm gì? Phân loại chương trình dịch
Do ngôn ngữ lập trình cấp cao không thể nạp trực tiếp vào bộ nhớ và thực thi ngay dưới dạng mã máy, nên cần có trình dịch để chuyển đổi chương trình viết bằng ngôn ngữ lập trình cấp cao thành mã máy. Một chương trình dịch chịu trách nhiệm dịch một chuỗi các hướng dẫn được viết bằng một ngôn ngữ lập trình cụ thể (tức là ngôn ngữ nguồn hoặc mã nguồn) sang một chương trình mới nhưng ở dạng ngôn ngữ máy tính (ngôn ngữ đích).
Nói chung, ngôn ngữ đích là ngôn ngữ cấp thấp hơn được sử dụng để máy tính hiểu các hướng dẫn bằng văn bản. Ngôn ngữ duy nhất mà máy có thể hiểu và thực thi trực tiếp. Trình biên dịch tạo ra một chương trình mới còn được gọi là mã đối tượng. Trong khi đó, ngôn ngữ bậc cao rất gần với ngôn ngữ tự nhiên, có tính độc lập cao, ít phụ thuộc vào loại máy, chương trình phải dịch sang ngôn ngữ máy mới chạy được.
Hầu hết các trình biên dịch sẽ dịch mã nguồn được viết bằng ngôn ngữ cấp cao thành mã đối tượng hoặc ngôn ngữ máy để được thực thi trực tiếp bởi máy tính hoặc máy ảo. Tuy nhiên, cũng có trường hợp chương trình dịch có khả năng dịch từ ngôn ngữ cấp thấp sang ngôn ngữ cấp cao. Trình biên dịch như vậy được gọi là trình dịch ngược. Cũng sẽ có các chương trình dịch từ ngôn ngữ cấp cao này sang ngôn ngữ cấp cao khác.
Chương trình nguồn -andgt; Translator -andgt; chương trình mục tiêu
Trong đó:
Chương trình nguồn: chương trình được viết bằng ngôn ngữ lập trình bậc cao
Chương trình đích: Chương trình nguồn được chương trình dịch chuyển thành ngôn ngữ máy.
Trình biên dịch được chia thành hai loại: trình thông dịch và trình biên dịch
Chương trình dịch được áp dụng để giải các bài toán cụ thể và ứng dụng trong thực tế hơn như:
Dịch ngôn ngữ lập trình sang mã máy
Dịch ngôn ngữ lập trình cấp cao sang ngôn ngữ lập trình cấp thấp hơn
Chuyển đổi mã giữa các ngôn ngữ lập trình
Kiểm tra ngữ pháp và chính tả của đoạn văn
Dịch từ hình ảnh sang văn bản
Bộ dịch chương trình cực kỳ cần thiết và quan trọng trong lập trình vì nó có khả năng chuyển đổi chương trình viết bằng ngôn ngữ cấp cao thành chương trình chạy được trên các máy cụ thể. Nó lấy đầu vào là một chương trình nguồn được viết bằng ngôn ngữ lập trình cấp cao (dữ liệu đầu vào) và sau đó chuyển đổi nó thành chương trình đích bằng ngôn ngữ máy (đầu ra). Bộ dịch chương trình giúp người lập trình lập trình bằng một ngôn ngữ này và dịch nó sang ngôn ngữ khác để máy tính có thể đáp ứng nhu cầu của người lập trình mong muốn.
Xem thêm : Mách bạn cách rút xương chân gà với 3 bước đơn giản, chế biến ngay 4 món ngon cuối tuần
Một chương trình dịch thuật toàn diện cần hội tụ đầy đủ các đặc điểm sau:
Tính toàn vẹn: Dữ liệu đầu vào được viết bằng ngôn ngữ nguồn và đầu ra bằng ngôn ngữ đích phải hoàn toàn tương đương.
– Tính hiệu quả: chương trình dịch không cần sử dụng nhiều sức mạnh tính toán và bộ nhớ và luôn đảm bảo kết quả tốt ở ngôn ngữ đích.
– Minh bạch: chương trình dịch phải rõ ràng về kết quả để người dùng có thể sửa lỗi sau mỗi bước.
– Khả năng chịu lỗi tốt: trình biên dịch có thể cho phép một số lỗi trong đầu vào và đưa ra các đề xuất xử lý cho phù hợp. Một chương trình dừng ở lỗi đầu tiên là một chương trình tồi.
Các chương trình dịch được chia thành hai loại chính:
Trình biên dịch: Nhận toàn bộ dữ liệu nguồn, sau đó dịch kết quả trong một lần. Trình biên dịch thường được sử dụng để hoạt động như một trình biên dịch. Người thông dịch (interpreter): nhận mã nguồn từng phần, thực hiện dịch từng phần khi nhận. Phiên dịch viên đóng vai trò là người phiên dịch trong giao tiếp. Ngày nay, ranh giới giữa trình biên dịch và trình thông dịch đang bị thu hẹp lại
Trong đó trình biên dịch cũng được chia làm 2 loại:
Trình biên dịch tĩnh (tĩnh): mã được tạo chạy trực tiếp
Tự động: Mã được tạo phải được định vị lại trước khi có thể chạy
Java là một loại ngôn ngữ lập trình kết hợp cả trình biên dịch và trình thông dịch. Mã Java có thể được biên dịch thành mã byte và sau đó máy ảo thực thi mã byte ở dạng diễn giải.
Để một chương trình dịch hoạt động được phải trải qua hai giai đoạn là giai đoạn phân tích và giai đoạn tổng hợp.
Mục đích của giai đoạn phân tích là phân tích chương trình nguồn để lập kế hoạch triển khai giai đoạn tiếp theo. Trong đó, quá trình phân tích sẽ bắt đầu bằng phân tích từ vựng, sau đó là phân tích cú pháp và cuối cùng là phân tích ngữ nghĩa. Phân tích càng chi tiết thì giai đoạn mã phía sau sẽ càng đơn giản và chính xác.
Giai đoạn tổng hợp sẽ tạo ra chương trình mục tiêu bao gồm 3 bước:
– Tạo mã trung gian: nghĩa là chuyển chương trình nguồn thành chương trình trung gian
– Tối ưu hóa mã: tối ưu hóa, chỉnh sửa chương trình trung gian
– Tạo mã: từ chương trình trung gian được tối ưu hóa để tạo chương trình đích
Xem thêm : Cúng phả độ gia tiên: Ý nghĩa, thời gian và bài khấn
Đối với từng loại chương trinh dịch các bước cụ thể như sau:
Thực hiện lặp đi lặp lại dãy các bước sau:
-> Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn
-> Chuyển đổi câu lệnh đó thành các câu lệnh tương ứng trong ngôn ngữ máy
-> Thực hiện các câu lệnh vừa chuyển đổi
Loại chương trình dịch này đặc biệt thích hợp cho môi trường đối thoại giữa người dùng và hệ thống, như các ngôn ngữ khai thác hệ quản trị cơ sở dữ liệu, đối thoại với hệ điều hành…
Thực hiện qua hai bước sau:
-> Duyệt, kiểm tra, phát hiện lỗi, xác định chương trình nguồn có dịch được không
-> Dịch chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và lưu trữ lại để sử dụng về sau
Loại chương trình dịch này thuận tiện cho các chương trình ổn định và cần thực hiện nhiều lần Kèm với chương trình dịch, người dùng còn được cung cấp các dịch vụ lên quan như biên soạn, lưu trữ… đào tạo môi trường làm việc trên một ngôn ngữ lập trình. Ví dụ: Turbo Pascal 7.0, Free Pascal 1.2, Visual Pascal 2.1,…
vấn đề 1
Ở chế độ biên dịch, một chương trình đã được biên dịch mà không gặp sự cố, hệ thống không báo lỗi. Có thể xác nhận rằng chúng tôi có một chương trình chính xác? Để làm gì?
Câu trả lời gợi ý:
Không thể khẳng định rằng chương trình là chính xác vì chương trình có thể vẫn còn lỗi ngữ nghĩa.
câu 2
Ở chế độ thông dịch, giả sử rằng 2/3 lệnh của chương trình đã được thực thi. Có thể xác nhận rằng chương trình không còn lỗi cú pháp không? Để làm gì? Câu trả lời gợi ý:
Tôi không thể xác nhận. Cú pháp của các câu lệnh chưa thực hiện không được kiểm tra.
Nguồn: https://luatduonggia.edu.vn
Danh mục: Tổng hợp
This post was last modified on 10/02/2024 04:36
Con số may mắn hôm nay 23/11/2024 theo năm sinh: Nhặt TIỀN từ con số…
Tử vi thứ bảy ngày 23/11/2024 của 12 con giáp: Tuổi Thìn chán nản, tuổi…
Vận may của 4 con giáp đang ngày càng xuống dốc. Cuối tuần này (23-24/11),…
Con số cuối cùng trong ngày sinh dự đoán con người sẽ GIÀU CÓ, sống…
Cuối tuần này (23-24/11), 4 con giáp sẽ gặp nhiều may mắn và thành công…
Tử vi hôm nay – Top 3 con giáp thịnh vượng nhất ngày 22/11/2024