Chương trình dịch dùng để chuyển từ ngôn ngữ lập trình bậc cao sang

Đáp án đúng là: B

Chương trình đích là chương trình viết bằng ngôn ngữ máy.

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Đáp án chính xác nhất của Top lời giải cho câu hỏi trắc nghiệm: “Chương trình dịch dùng để làm gì?” cùng với những kiến thức mở rộng thú vị về Tin học 8 là tài liệu ôn tập dành cho thầy cô giáo và các bạn học sinh tham khảo.

Trắc nghiệm: Chương trình dịch dùng để làm gì?

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

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

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

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

Trả lời:

Đáp án đúng: A. Dịch từ ngôn ngữ lập trình sang ngôn ngữ máy

- Chương trình dịch dùng để dịch từ ngôn ngữ lập trình sang ngôn ngữ máy.

Kiến thức tham khảo thêm về Ngôn ngữ lập trình

1. Ngôn ngữ lập trình

- Ngôn ngữ lập trình (programming language)là ngôn ngữ được lập trình viên sử dụng để viết chương trình cho máy tính. Những câu lệnh của mỗi ngôn ngữ lập trình đều có những quy tắc, cú pháp, các luật do ngôn ngữ đó quy định. Giống nhưtiếng Anhthì có cú pháp, từ vựng củatiếng Anh,tiếng Việtcũng thế.

- Chương trình sau khi viết bằng ngôn ngữ lập trình thì ta được mã nguồn (source code). Máy tính không thể chạy mã nguồn này được mà cần được dịch ra mã máy để chạy. Cácchương trình dịchsẽ làm việc này:

+ Trình hợp dịch (assembler) để dịch các chương trình hợp ngữ

+ Trình thông dịch (interpreter) và trình biên dịch (compiler) để dịch các chương trình cấp cao

* Có rất nhiều ngôn ngữ lập trình khác nhau, chúng được chia thành hai loại:

- Ngôn ngữ lập trình cấp thấp:

+ Đó là hợp ngữ (assembly language).

+ Phụ thuộc vào từng dòng máy cụ thể, không tương thích với các máy tính khác.

+ Tốc độ thực thi chương trình nhanh.

- Ngôn ngữ lập trình cấp cao

+ Đếm độ dài của chuỗi (string) với hàm strlen() trong PHP

+ Kỹ thuật lập trình truyền con trỏ cho hàm trong C++

+ User-Defined Exception trong Python

+ Hàm str_word_count() trong PHP

+ Kỹ thuật lập trình với mảng 2 chiều trong Java

+ Có thể là Visual Basic, C/C++, Ruby, Java, PHP, C#,…

+ Diễn đạt các ý tưởng lập trình một cách trừu tượng.

+ Có tính tương thích cao, chạy được trên các dòng máy tính khác nhau.

2. Các loại ngôn ngữ lập trình

a. Ngôn ngữ máy

- Ngôn ngữ máy(còn được gọi làmáy ngữhaymã máy;tiếng Anhlàmachine languagehaymachine code) là một tập cácchỉ thịđượcCPUcủa máy tính trực tiếp thực thi. Mỗi chỉ thị thực hiện một chức năng xác định, ví dụ như tải dữ liệu, nhảy hay tính toán số nguyên trên một đơn vị dữ liệu của thanh ghi CPU hay bộ nhớ. Tất cả các chương trình được thực thi trực tiếp bởi CPU đều là các chuỗi các chỉ thị này.

- Mã máy nhị phân (khác với mã hợp ngữ) có thể được xem như là phương thức biểu diễn thấp nhất của một chương trình đã biên dịch hay hợp dịch, hay làngôn ngữ lập trìnhnguyên thủy phụ thuộc vào phần cứng (ngôn ngữ lập trình thế hệ đầu tiên). Mặc dù chúng ta hoàn toàn có thể viết chương trình trực tiếp bằng mã nhị phân, việc này rất khó khăn và dễ gây ra những lỗi nghiêm trọng vì ta cần phải quản lý từngbitđơn lẻ và tính toán các địa chỉ và hằng số học một cách thủ công. Do đó, ngoại trừ những thao tác cần tối ưu và gỡ lỗi chuyên biệt, chúng ta rất hiếm khi làm điều này.

- Hiện nay, hầu như tất cả các chương trình máy tính trong thực tế đều được viết bằng các ngôn ngữ bậc cao hay (đôi khi) hợp ngữ, và sau đó được dịch thành mã máy thực thi bằng các công cụ phụ trợ như trình biên dịch, trình hợp dịch hay trình liên kết. Ngoài ra, các chương trình được viết bằng ngôn ngữthông dịchthì được dịch sang mã máy nhờ trình thông dịch tương ứng (có thể xem như là trình thực thi hay trình xử lý). Các trình thông dịch này thường bao gồm các mã máy thực thi trực tiếp (sinh ra từ mã nguồn hợp ngữ hay các ngôn ngữ bậc cao).

b. Hợp ngữ

- Hợp ngữ(Assembly Language) là một ngôn ngữ lập trình cao cấp hơn ngôn ngữ máy một chút, sử dụng một số từ (tiếng Anh), chữ cái, chữ số cũng như những ký tự đặc biệt để viết các chương trình và máy tính có thể hiểu một cách nhanh chóng.

- Tuy nhiên, ngôn ngữ này vẫn chưa thực sự có thiện cảm với con người chúng ta và chỉ phù hợp với một bộ phận nhỏ lập trình viên.

- Ngoài ra, hợp ngữ được xếp riêng thànhmiddle level language– ngôn ngữ bậc trung nhưng cũng có nhiều trường hợp, hợp ngữ bị gộp chung với ngôn ngữ máy trở thành ngôn ngữ bậc thấp (low level language).

c. Ngôn ngữ bậc cao

- Ngược lại với ngôn ngữ lập trình bậc thấp là ngôn ngữ lập trình bậc cao. Hiện nay, phần lớn programming languages được phân loại vào nhóm này.

- So với các ngôn ngữ lập trình khác, tầng thứ của ngôn ngữ C thấp hơn, tuy nhiên, nó vẫn được phân loại là một ngôn ngữ lập trình bậc cao.

- Đặc trưng và ưu điểm của ngôn ngữ lập trình bậc cao:

+ Dễ hiểu đối với con người: Do được viết gần hơn với ngôn ngữ tự nhiên của con người nên đối với chúng ta, tất nhiên ngôn ngữ lập trình bậc cao sẽ dễ hiểu hơn. Thực tế khi nhìn vào một đoạn code viết bằng ngôn ngữ lập trình bậc cao, không phải ai cũng hiểu được, tuy nhiên, khi so sánh với hợp ngữ và ngôn ngữ máy, chắc hẳn ai cũng phải đồng tình rằng ngôn ngữ bậc cao dễ hiểu hơn nhiều.

+ Có thể dựa vào những process sẵn có để thiết lập các xử lý mới

+ Không cần phải chú ý các thao tác bậc thấp như khống chế bộ nhớ

Đề bài

Chương trình dịch là gì? Tại sao cần phải có chương trình dịch?

Lời giải chi tiết

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ể.

- 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).

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 trình trung gian đã tối ưu).

Loigiaihay.com

Chương trình dịch là một khái niệm khá mới lạ nhưng thường xuyên gặp với các lập trình viên mới vào nghề. Đây là phần không thể thiếu trong phát triển phần mềm. Nếu bạn đang cần tìm hiểu khái niệm và chương trình dịch dùng để làm gì thì không thể bỏ lỡ bài viết dưới đây của chúng tôi. 

Chương trình dịch dùng để làm 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. 

Đ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. Những chương trình dịch dạng này được gọi là bộ biên dịch ngược. Đồng thời, cũng sẽ có những chương trình dịch từ ngôn ngữ cấp cao sang một ngôn ngữ cấp cao khác. 

Chương trình dịch dùng để chuyển từ ngôn ngữ lập trình bậc cao sang
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 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. 

Đặc điểm của chương trình dịch

Một chương trình dịch hoàn thiện cần phải đầy đủ các đặc trưng sau:

– Tính toàn vẹn: dữ liệu đầu vào viết ở ngôn ngữ nguồn và kết quả ở ngôn ngữ đích cần phải hoàn toàn tương đương với nhau

– Tính hiệu quả: chương trình dịch không cần sử dụng nhiều công suất tính toán và bộ nhớ mà vẫn đảm bảo kết quả ngôn ngữ đích đủ tốt

– Tính trong suốt: chương trình dịch phải rõ ràng về kết quả để người dùng có thể chỉnh sửa lỗi nếu có sau mỗi bước thực hiện

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

Bạn có thể quan tâm

tập thể là gì

phân tích là gì

Phân loại chương trình dịch

Chương trình dịch dùng để chuyển từ ngôn ngữ lập trình bậc cao sang
Phân loại chương trình dịch

Chương trình dịch được chia thành 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. 

Xem thêm các tài liệu khác về mọi lĩnh vực tại AMA

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

Như vậy là AMA đã cung cấp toàn bộ thông tin về chương trình dịch dùng để làm gì, để các lập trình viên mới vào nghề có thể nắm rõ và hiểu được. Hy vọng rằng những thông tin chúng tôi chia sẻ ở trên sẽ giúp ích cho bạn trong quá trình học tập và làm việc sau này. 

Chương trình dịch dùng để chuyển từ ngôn ngữ lập trình bậc cao sang

AMA là thương hiệu vững chắc về đào tạo tiếng Anh theo phong cách Mỹ với mô hình học tập ưu việt và độc quyền, cùng đội ngũ giáo viên bản xứ 100%