Dịch chương trình từ ngôn ngữ lập trình sang ngôn ngữ máy là nhiệm vụ của

Chương trình dịch là chương trình Chuyển đổi chương trình viết bằng hợp ngữ hoặc ngôn ngữ lập trình bậc cao sang ngôn ngữ máy

Trắc nghiệm: Chương trình dịch là chương trình:

A. Chuyển đổi ngôn ngữ máy sang ngôn ngữ lập trình bậc cao

B. Chuyển đổi chương trình viết bằng hợp ngữ hoặc ngôn ngữ lập trình bậc cao sang ngôn ngữ máy

C. Chuyển đổi hợp ngữ sang ngôn ngữ lập trình bậc cao

D. Chuyển đổi ngôn ngữ máy sang hợp ngữ

Đáp án đúng: B. Chuyển đổi chương trình viết bằng hợp ngữ hoặc ngôn ngữ lập trình bậc cao sang ngôn ngữ máy

Kiến thức mở rộng

– Chương trình máy tính được hiểu là một chuỗi những câu lệnh của máy tính, đó là tập hợp những thông tin hướng dẫn để người thực hiện có thể tiến hành thực hiện được những nhiệm vụ của một máy tính.

– Đối với các máy tính, đòi hỏi phải có những chương trình để hoạt động được theo ý muốn của con người, dựa vào chương trình máy tính mà con người có thể thực hiện được các lệnh máy tính, các lệnh này sẽ nằm ở phần trung tâm xử lý.

– Đối với mỗi chương trình máy tính thì sẽ được viết bởi một ngôn ngữ lập trình khác nhau.

Ví dụ:

– Trình duyệt web Mozilla, Safari của hệ điều hành IOS. Những chương trình này sẽ giúp cho người dùng có thể truy cập vào internet.

– Chương trình máy tính quản lý hệ văn phòng

a. Khái niệm

– Chương trình dịch [compiler] còn được gọi là trình biên dịch. Nhiệm vụ của chương trình dịch là 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 cụ thể [hay còn được gọi 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 một ngôn ngữ máy tính [hay còn gọi là ngôn ngữ đích. Thông thường, ngôn ngữ đích là ngôn ngữ ở cấp thấp hơn được dùng để cho máy tính hiểu được các câu lệnh. Chương trình mới được được chương trình dịch tạo ra này còn được gọi là mã đối tượng.

b. Đặ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. Phân loại chương trình dịch

Có hai loại chương trình dịch là biên dịch và thông dịch:

– Trình biên dịch [compiler]: nhận toàn bộ nguồn rồi dịch sang đích một lượt

+ Tĩnh [statically]: mã sinh ra chạy trực tiếp ngay

+ Động [dynamically]: mã sinh ra cần thao tác tái định vị rồi mới có thể chạy được

– Trình thông dịch [interpreter]: nhận mã nguồn từng phần, nhận được phần nào dịch [và thực thi] phần đó

 Nhận xét:

– Compiler hoạt động giống như dịch giả.

– Interpreter hoạt động giống như người phiên dịch [các cuộc giao tiếp].

– Hiện nay: ranh giới giữa compiler và interpreter ngày càng mờ dần.

– Một số ngôn ngữ lập trình kết hợp cả compiler và interpreter, chẳng hạn như java. Mã java được biên dịch thành mã bytecode. Máy ảo chạy mã bytecode ở dạng thông dịch.

– Một số sử dụng compiler và just-in-time compiler.

– Mã C# được biên dịch thành mã IL. Mã IL được biên dịch thành mã máy trong lần chạy đầu.

d. Các giai đoạn của chương trình dịch

– Ngoài ra, chương trình dịch trải qua hai giai đoạn: phân tích và tổng hợp. Giai đoạn phân tích nhầm phân tích chương trình nguồn về từ vựng và cú pháp. Giai đoạn tổng hợp nhằm tạo ra chương trình đích gồm ba bước, đó là:

+ Sinh mã trung gian [chuyển chương trình nguồn về chương trình trung gian];

+ Tối ưu mã [chỉnh sửa, tối ưu chương trình trung gian];

+ Sinh mã [tạo chương trình đích từ chương trinh trung gian đã tối ưu].

Chương trình dịch dùng để dịch từ ngôn ngữ lập trình sang ngôn ngữ máy, chương trình dịch là chương trình đặc biệt có chức năng chuyển đổi chương trình được viết trên 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 tính cụ thể.

A. Dịch từ ngôn ngữ máy sang ngôn ngữ tự nhiên.

B. Dịch từ ngôn ngữ lập trình sang ngôn ngữ máy.

C. Dịch từ ngôn ngữ máy sang ngôn ngữ lập trình.

D. Dịch từ ngôn ngữ lập trình sang ngôn ngữ tự nhiên.

Đáp án đúng B.

Chương trình dịch dùng để dịch từ ngôn ngữ lập trình sang ngôn ngữ máy, chương trình dịch là chương trình đặc biệt có chức năng chuyển đổi chương trình được viết trên 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 tính cụ thể.

Giải thích nguyên nhân lựa chọn đáp án B:

Chương trình dịch hay phần mềm biên dịch là một chương tình máy tính làm công việc 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, thành một chương trình tương đương nhưng ở dưới dạng một ngôn ngữ máy tính mới và thường là ngôn ngữ ở cấp thấp hơn như ngôn ngữ máy.

Những đặc điểm của chương trình dịch bao gồm:

– Tính chịu lỗi. Chương trình có thể chấp nhận một lỗi của đầu vào và đưa ra các gợi úc xử lý phù hợp. Chương trình dừng ngay ở lỗi đầu tiên không thể coi là tốt.

– Tính toàn vẹn là 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 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 hiệu quả là 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.

Các giai đoạn chương trình dịch phải trải qua bao gồm:

– Giai đoạn phân tích nhằm phân tích chương trình nguồn về từ vựng và cú pháp.

– Giai đoạn tổng hợp nhằmg tạo ra chương trình đích gồm ba bước, bao gồm:

+ Sinh mã trung gian là chuyển chương trình nguồn về chương trình trung gian.

+ Tối ưu mã là chỉnh sửa, tối ưu chương trình trung gian.

+ Sinh mã là tạo chương trình đích từ chương trình trung gian đã tối ưu.

– Các trình biên dịch sẽ chuyển dịch mã nguồn viết trong một ngôn ngữ cấp cao thành mã đối tương hay ngôn ngữ máy mà có thể được thi hành trực tiếp bởi một máy tính hay bởi một máy ảo. Việc chuyển dịch từ một ngôn ngữ cấp thấp sang một ngôn ngữ cấp cao hơn cũng có thể xảy ra, quá trình này thường được hiểu như là bộ biên dịch ngược nếu nó có thể tái tạo lại một chương trình trong ngôn ngữ cấp cao.

– Tồn tại các trình biên dịch chuyển đổi từ ngôn ngữ cao này sang ngôn ngữ cao khác hay là chuyển đổi sang một ngôn ngữ mà nó cần để tiếp tục xử lý về sau những trình biên dịch như vậy được biết như là bộ biên dịch phân tầng. Các loại trình biên dịch cho kết quả là mã đối tượng thì một cách cơ bản bao gồm mã máy tăng cường thêm các thông tin về tên vị trí của các ngõ và các gọi ngoài.

– Một tập hợp của các tập tin đối tượng mà không hẳn được cung cấp từ cùng một trình biên dịch thì vẫn có thể được liên kết với nhau để tạo nên các chương trình khả thi cuối cùng cho một người dùng. Để làm được điều đó thì các tập tin đối tượng đó phải được thiết kế chung nhau về dạng thức.

Như vậy, Chương trình dịch dùng để làm gì? Là câu hỏi đã được chúng tôi trả lời chi tiết trong bài viết phía trên. Chúng tôi mong rằng nội dung trong bài viết sẽ giúp ích được quý bạn đọc.

Video liên quan

Chủ Đề