Chương trình dịch là gì? Có mấy loại chương trình dịch?
Mục lục
Đa phần các chương trình dịch đều sẽ chuyển dịch mã nguồn viết trong một ngôn ngữ cấp cao, chuyển thành mã đối tượng hoặc ngôn ngữ máy để được thi hành trực tiếp bởi một máy tính hoặc một máy ảo nào đó. Tuy nhiên, cũng có những trường hợp chương trình dịch có khả năng dịch từ một ngôn ngữ cấp thấp sang một ngôn ngữ cấp cao. Vậy Chương trình dịch là gì? Có mấy loại chương trình dịch?
Chương trình dịch là gì?
Chương trình dịch – hay còn được gọi với tên tiếng Anh là compiler có nhiệm vụ dịch một chuỗi các câu lệnh được viết bằng một ngôn ngữ lập trình riêng biệt (cụ thể là ngôn ngữ nguồn hoặc mã nguồn) thành một chương trình mới nhưng ở dưới dạng ngôn ngữ máy tính (ngôn ngữ đích). Thông thường, ngôn ngữ đích là loại ngôn ngữ ở cấp thấp hơn được sử dụng để máy tính có thể hiểu được các câu lệnh đã viết. Chương trình dịch tạo ra một chương trình mới còn được gọi là mã đối tượng.
Đặc trưng của chương trình dịch
Một chương trình dịch tốt cần có các đặc trưng sau:
– Tính toàn vẹn: kết quả ở ngôn ngữ đích phải hoàn toàn tương đương với đầu vào viết ở ngôn ngữ nguồn
– Tính hiệu quả: chương trình dịch sử dụng không quá nhiều bộ nhớ và công suất tính toán, kết quả ở ngôn ngữ đích là đủ tốt
– Tính trong suốt: chương trình dịch phải rõ ràng về kết quả sau từ bước thực hiện, giúp người dùng có thể hiệu chỉnh và sửa lỗi nếu có sau từng bước thực hiện
– Tính chịu lỗi: chương trình có thể chấp nhận một số lỗi của đầu vào và đưa ra các gợi ý xử lý phù hợp. Chương trình dừng ở ngay lỗi đầu tiên không thể coi là tốt.
Các giai đoạn của chương trình dịch
Để một chương trình dịch hoạt động thì nó cần trải qua 2 giai đoạn là giai đoạn phân tích và giai đoạn tổng hợp.
Giai đoạn phân tích được diễn ra nhằm mục tích phân tích chương trình nguồn để có kế hoạch thực hiện giai đoạn tiếp theo. Trong đó, quá trình phân tích sẽ bắt đầu từ việc phân tích từ vựng, sau đó phân tích cú pháp và cuối cùng là phân tích ngữ nghĩa. Việc phân tích càng chi tiết sẽ giúp cho giai đoạn tạo mã phía sau thực hiện dễ dàng và chính xác hơn.
Giai đoạn tổng hợp sẽ tạo ra chương trình đích gồm 3 bước là:
+ Sinh mã trung gian: có nghĩa là sẽ chuyển chương trình nguồn về chương trình trung gian
+ Tối ưu mã: tối ưu, chỉnh sửa chương trình trung gian
+ Sinh mã: từ chương trình trung gian đã tối ưu tạo ra chương trình đích
Phân loại chương trình dịch
Chương trình dịch có 2 loại chính là:
– Trình biên dịch (compiler): tiếp nhận toàn bộ dữ liệu nguồn rồi dịch ra kết quả trong một lượt. Trình biên dịch thường được hoạt động giống như một dịch giả.
– Trình thông dịch (interpreter): tiếp nhận mã nguồn từng phần, tiến hành dịch từng phần khi nhận được. Interpreter hoạt động giống người phiên dịch trong các cuộc giao tiếp.
Hiện nay, ranh giới giữa compiler và interpreter ngày càng thu hẹp
Trong đó, compiler cũng được chia thành 2 loại là:
+ Tĩnh (statically): mã sinh ra chạy trực tiếp
+ Động (dynamically): mã sinh ra cần phải có thao tác tái định vị rồi mới tiến hành chạy được
Một loại ngôn ngữ lập trình kết hợp cả compiler và interpreter đó chính là java. Mã java có thể được biên dịch thành mã bytecode, sau đó máy ảo chạy mã bytecode ở dạng thông dịch.
Tại sao phải có chương trình dịch?
Chúng ta cần phải có chương trình dịch bởi vì chương trình dịch có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy cụ thể. Nó nhận đầu vào là chương trình viết bằng ngôn ngữ lập trình bậc cao (chương trình nguồn) là dữ liệu vào (Input), thực hiện chuyển đổi sang ngôn ngữ máy (chương trình đích) là kết qua ra (Output).
Chương trình dịch dùng để làm gì?
Chương trình dịch được ứng dụng để giải quyết các bài toán cụ thể và ứng dụng thực tế hơn. Ví dụ như:
+ Dịch một ngôn ngữ lập trình thành mã máy
+ Dịch một ngôn ngữ lập trình bậc cao thành một ngôn ngữ lập trình bậc thấp hơn
+ Chuyển đổi đoạn mã giữa các ngôn ngữ lập trình với nhau
+ Kiểm tra ngữ pháp, chính tả của các đoạn văn
+ Dịch từ hình ảnh thành văn bản
Chương trình dịch vô cùng cần thiết và quan trọng trong lập trình vì nó có khả năng chuyển đổi các chương trình được viết bằng ngôn ngữ bậc cao thành chương trình có thể được thực hiện trên máy cụ thể. Nó nhận đầu vào là các chương trình nguồn được viết bằng ngôn ngữ lập trình bậc cao (dữ liệu vào – Input), sau đó thực hiện chuyển đổi sang chương trình đích là ngôn ngữ máy (kết quả ra – Output).
Chương trình dịch giúp lập trình viên có thể lập trình nên một ngôn ngữ và chuyển đổi nó sang một ngôn ngữ khác giúp máy tính có thể thực hiện được yêu cầu của người lập trình mong muốn.
Trên đây là nội dung bài viết Chương trình dịch là gì? Có mấy loại chương trình dịch? Cảm ơn Quý khách hàng đã quan tâm theo dõi bài viết của chúng tôi.
Quá trình đô thị ở nước ta hiện nay
Cập nhật: 14/11/2022
Học trường tư có chuyển về trường công được không?
Cập nhật: 14/11/2022
Thiên nhiên là gì? Vai trò của thiên nhiên đối với đời sống con người
Cập nhật: 14/11/2022
Vào lớp 10 nên chọn khối nào?
Cập nhật: 14/11/2022
Ví dụ về sở thích cá nhân
Cập nhật: 14/11/2022
Ví dụ về nhận thức lịch sử
Cập nhật: 14/11/2022
Ví dụ về dạy học STEM ở tiểu học
Cập nhật: 14/11/2022
Mở bài Tây Tiến
Cập nhật: 14/11/2022
Vì sao áo dài được coi là biểu tượng cho y phục truyền thống của Việt Nam?
Cập nhật: 14/11/2022
Chiếc áo dài có vai trò thế nào trong trang phục của phụ nữ Việt Nam xưa?
Cập nhật: 14/11/2022
Chiếc áo dài tân thời có gì khác so với chiếc áo dài cổ truyền?
Cập nhật: 14/11/2022
Em hiểu mỗi thành ngữ, tục ngữ dưới đây thế nào? Trai mà chi, gái mà chi
Cập nhật: 14/11/2022
Ý nghĩa của thủy điện Hòa Bình?
Cập nhật: 14/11/2022
Điều kiện thăng hạng chức danh nghề nghiệp giáo viên tiểu học?
Cập nhật: 14/11/2022
Con gái có nên học luật kinh tế?
Cập nhật: 14/11/2022
Học học viện tòa án ra làm gì?
Cập nhật: 14/11/2022
Hợp số là gì? Ví dụ về hợp số
Cập nhật: 14/11/2022
Chục năm hay trục năm là đúng chính tả?
Cập nhật: 14/11/2022
Trân trọng hay chân trọng là đúng?
Cập nhật: 14/11/2022
Xuất ngày hay suốt ngày là đúng chính tả?
Cập nhật: 14/11/2022
Diễn dịch là gì? Cách viết đoạn văn diễn dịch
Cập nhật: 14/11/2022
Sáng lạn, xán lạn hay sáng lạng từ nào đúng chính tả?
Cập nhật: 14/11/2022
Thi rớt lớp 10 có được thi lại không?
Cập nhật: 14/11/2022
Xác suất hay xác xuất là đúng chính tả?
Cập nhật: 14/11/2022
Đề xuất hay đề suất là đúng chính tả?
Cập nhật: 14/11/2022
Nghĩa đen là gì? Nghĩa bóng là gì? Ví dụ nghĩa đen, nghĩa bóng
Cập nhật: 14/11/2022
Nội dung chủ yếu nhất của cơ cấu kinh tế là?
Cập nhật: 14/11/2022
Khu vực có mật độ dân số cao nhất thế giới hiện nay là ở đâu?
Cập nhật: 14/11/2022
Việt Nam có 63 hay 64 tỉnh thành?
Cập nhật: 14/11/2022
Nguyên nhân dẫn đến chiến tranh thế giới thứ 2?
Cập nhật: 14/11/2022
Đặc điểm của bào tử là là gì?
Cập nhật: 14/11/2022
Viết một câu nêu đặc điểm của mùa xuân, mùa hè
Cập nhật: 14/11/2022
Lập dàn ý là gì? Cách lập dàn ý bài văn
Cập nhật: 14/11/2022
Lập dàn ý tả đồng hồ báo thức lớp 4, lớp 5 ngắn gọn
Cập nhật: 14/11/2022
Lập dàn ý tả cây ăn quả lớp 4, lớp 5 ngắn gọn
Cập nhật: 14/11/2022
Bài văn tả con cá vàng ngắn gọn
Cập nhật: 14/11/2022