Ngôn ngữ nào gần với ngôn ngữ tự nhiên nhất: bậc cao, máy hay hợp ngữ?

Trả lời nhanh

Đáp án đúng là A. Ngôn ngữ bậc cao. Ngôn ngữ bậc cao dùng từ khoá, câu lệnh gần với tiếng Anh và ký hiệu toán học nên con người dễ đọc, dễ viết, dễ hiểu. Ngôn ngữ máy chỉ gồm các dãy bit 0 và 1, hợp ngữ dùng tên viết tắt gắn với từng loại máy, nên cả hai đều xa cách nghĩ của con người hơn.

Ba loại ngôn ngữ lập trình

Máy tính chỉ thực hiện trực tiếp được một thứ: những dãy bit 0 và 1. Để con người đỡ vất vả, các nhà khoa học đã xây dựng nhiều “tầng” ngôn ngữ, từ sát phần cứng đến sát cách nói của con người.

Loại ngôn ngữ Cách biểu diễn Mức gần với ngôn ngữ tự nhiên Phụ thuộc loại máy
Ngôn ngữ máy Dãy bit 0 và 1 Xa nhất Có, mỗi dòng máy một bộ lệnh riêng
Hợp ngữ Tên gợi nhớ như MOV, ADD, JMP Ở giữa Có
Ngôn ngữ bậc cao Từ khoá, câu lệnh gần tiếng Anh Gần nhất Không (chạy được trên nhiều máy)

Vì sao ngôn ngữ bậc cao gần ngôn ngữ tự nhiên nhất?

Hãy so sánh cùng một việc “in ra lời chào” ở ba tầng:

  • Ngôn ngữ bậc cao (Python): print('Xin chào'). Đọc lên là hiểu ngay, vì print nghĩa là “in”.
  • Hợp ngữ: phải ra lệnh từng bước nhỏ, như nạp địa chỉ chuỗi vào thanh ghi rồi gọi ngắt của hệ điều hành. Em cần biết máy có những thanh ghi nào.
  • Ngôn ngữ máy: là một chuỗi số nhị phân dài, gần như không ai đọc nổi bằng mắt.

Ngôn ngữ bậc cao cho phép em nghĩ về bài toán (tính tổng, sắp xếp, tìm kiếm) thay vì nghĩ về từng ô nhớ. Chính vì thế nó có tên “bậc cao”: ở tầng cao, sát với tư duy con người.

Loại trừ các phương án còn lại

  • B. Ngôn ngữ máy: sai, vì đây là ngôn ngữ duy nhất máy hiểu trực tiếp nhưng lại xa lạ nhất với con người.
  • C. Hợp ngữ: sai. Hợp ngữ dễ đọc hơn ngôn ngữ máy nhưng vẫn bám sát cấu trúc phần cứng, nên chỉ là “gần hơn” chứ không phải “gần nhất”.
  • D. Cả ba phương án: sai, vì đề hỏi mức độ gần nhất nên chỉ có một đáp án duy nhất.

Chương trình dịch đứng ở đâu?

Vì máy chỉ hiểu ngôn ngữ máy, chương trình viết bằng ngôn ngữ bậc cao phải được dịch sang ngôn ngữ máy trước khi chạy. Việc này do trình biên dịch (compiler) hoặc trình thông dịch (interpreter) đảm nhiệm. Với hợp ngữ, người ta dùng trình hợp dịch (assembler). Chỉ ngôn ngữ máy mới chạy được mà không cần dịch.

Lỗi sai thường gặp

  • Nghĩ rằng “bậc cao” nghĩa là “khó hơn”. Thực tế ngược lại: bậc cao dễ học hơn hợp ngữ.
  • Nhầm hợp ngữ với ngôn ngữ máy. Hợp ngữ vẫn là chữ cái, còn ngôn ngữ máy là bit.
  • Cho rằng chương trình bậc cao chạy được ngay. Nó vẫn cần được dịch.

Mẹo nhớ

Em tưởng tượng một chiếc thang ba bậc: bit 0-1 ở dưới cùng, hợp ngữ ở giữa, ngôn ngữ bậc cao ở trên cùng. Càng lên cao càng gần tiếng người, càng xuống thấp càng gần cái máy.

Luyện tập

  1. Pascal, C++, Python thuộc loại ngôn ngữ nào?
  2. Ngôn ngữ nào phụ thuộc chặt vào từng dòng máy: bậc cao hay hợp ngữ?
  3. Em hãy sắp xếp ba loại ngôn ngữ theo thứ tự từ xa đến gần ngôn ngữ tự nhiên.

Đáp án: (1) Ngôn ngữ bậc cao. (2) Hợp ngữ, vì mỗi bộ vi xử lý có tập lệnh riêng. (3) Ngôn ngữ máy, hợp ngữ, ngôn ngữ bậc cao.

Câu hỏi thường gặp

Ngôn ngữ nào gần với ngôn ngữ tự nhiên nhất?

Ngôn ngữ bậc cao, vì nó dùng từ khoá và cú pháp gần với tiếng Anh và ký hiệu toán học, giúp con người dễ đọc và dễ viết.

Máy tính có hiểu trực tiếp ngôn ngữ bậc cao không?

Không. Máy chỉ hiểu ngôn ngữ máy, nên chương trình bậc cao phải được trình biên dịch hoặc thông dịch chuyển sang ngôn ngữ máy.

Hợp ngữ khác ngôn ngữ máy ở điểm nào?

Hợp ngữ dùng tên lệnh gợi nhớ như MOV, ADD để thay cho các dãy bit, nên dễ đọc hơn, nhưng vẫn phụ thuộc loại máy và cần trình hợp dịch.