Chương trình dịch của hợp ngữ là biên dịch

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.

Câu 2. Phát biểu nào dưới đây chắc chắn sai?

A. Lập trình là viết chương trình

B. Lập trình và chương trình là hai khái niệm tương đương, đều là cách mô tả thuật toán bằng ngôn ngữ lập trình

C. Chương trình được tạo thành từ tổ hợp các câu lệnh và các khai báo cần thiết về biến, hằng, hàm, …

D. Chương trình chưa chắc là đã đúng nếu cho kết quả đúng với rất nhiều bộ dữ liệu vào

Câu 3. Phát biểu nào sau đây chắc chắn sai?

A. Để giải bài toán bằng máy tính phải viết chương trình mô tả thuật toán giải bài toán đó

B. Mọi người sử dụng máy tính đều phải biết lập chương trình

C. Máy tính điện tử có thể chạy các chương trình

D. Một bài toán có thể có nhiều thuật toán để giải

Câu 4. Hãy chọn phương án ghép đúng. Ngôn ngữ lập trình là ngôn ngữ

A. Cho phép thể hiện các dữ liệu trong bài toán mà các chương trình sẽ phải xử lí

B. Dưới dạng nhị phân để máy tính có thể thực hiện trực tiếp

C. Diễn đạt thuật toán để có thể giao cho máy tính thực hiện

D. Có tên là "ngôn ngữ thuật toán" hay còn gọi là "ngôn ngữ lập trình bậc cao" gần với ngôn ngữ toán học cho phép mô tả cách giải quyết vấn đề độc lập với máy tính

Câu 5. Hãy chọn phương án ghép đúng. Ngôn ngữ máy là

A. Bất cứ ngôn ngữ lập trình nào mà có thể diễn đạt thuật toán để giao cho máy tính thực hiện

B. Ngôn ngữ để viết các chương trình mà mỗi chương trình là một dãy lệnh máy trong hệ nhị phân

C. Các ngôn ngữ mà chương trình viết trên chúng sau khi dịch ra hệ nhị phân thì máy có thể chạy được

D. Diễn đạt thuật toán để có thể giao cho máy tính thực hiện

Câu 6. Hãy chọn phương án ghép đúng. Hợp ngữ là ngôn ngữ

A. Mà máy tính có thể thực hiện được trực tiếp không cần dịch

B. Có các lệnh được viết bằng kí tự nhưng về cơ bản mỗi lệnh tương đương với một lệnh máy . Để chạy được cần dịch ra ngôn ngữ máy

C. Mà các lệnh không viết trực tiếp bằng mã nhị phân

D. Không viết bằng mã nhị phân, được thiết kế cho một số loại máy có thể chạy trực tiếp dưới dạng kí tự

Câu 7. Hãy chọn phương án ghép sai. Ngôn ngữ lập trình bậc cao là ngôn ngữ

A. Thể hiện thuật toán theo những quy ước nào đó không phụ thuộc vào các máy tính cụ thể

B. Mà máy tính không hiểu trực tiếp được, chương trình viết trên ngôn ngữ bậc cao trước khi chạy phải dịch sang ngôn ngữ máy

C. Có thể diễn đạt được mọi thuật toán

D. Sử dụng từ vựng và cú pháp của ngôn ngữ tự nhiên (tiếng Anh)

Câu 8. Phát biểu nào không đúng trong các phát biểu dưới đây?

A. Chương trình dịch cho phép chuyển chương trình viết bằng một ngôn ngữ lập trình nào đó sang chương trình trên ngôn ngữ máy để máy có thể thực hiện được mà vẫn bảo toàn được ngữ nghĩa của chương trình nguồn;

B. Chương trình dịch giúp người lập trình có thể lập trình trên một ngôn ngữ lập trình gần với ngôn ngữ tự nhiên hơn, do đó giảm nhẹ được nỗ lực lập trình, tăng cường hiệu suất lập trình

C. Chương trình dịch giúp tìm ra tất cả các lỗi của chương trình

D. Một ngôn ngữ lập trình có thể có cả chương trình thông dịch và chương trình biên dịch

Câu 9. Phát biểu nào dưới đây là sai khi nói về biên dịch và thông dịch?

A. Chương trình dịch của ngôn ngữ lập trình bậc cao gọi là biên dịch còn thông dịch là chương trình dịch dùng với hợp ngữ

B. Một ngôn ngữ lập trình có thể có cả chương trình thông dịch và chương trình biên dịch

C. Thông dịch lần lượt dịch và thực hiện từng câu lệnh còn biên dịch phải dịch trước toàn bộ chương trình sang mã nhị phân thì mới có thể thực hiện được

D. Biên dịch và thông dịch đều kiểm tra tính đúng đắn của câu lệnh

Câu 10. Phát biểu nào dưới đây là đúng trong các phát biểu dưới đây?

A. Mỗi ngôn ngữ lập trình bậc cao đều có đúng một chương trình dịch;

B. Chương trình dịch gồm hợp dịch, thông dịch, biên dịch

C. Máy tính chỉ nhận biết được kí tự 0 và kí tự 1 nên chương trình bằng ngôn ngữ máy cũng phải được dịch sang mã nhị phân

D. Một ngôn ngữ lập trình bậc cao có thể có nhiều chương trình dịch khác nhau

CâuĐáp ánCâuĐáp án
Câu 1CCâu 6B
Câu 2BCâu 7D
Câu 3BCâu 8A
Câu 4CCâu 9A
Câu 5BCâu 10D

Hoàng Việt (Tổng hợp)