Một ngôn ngữ lập trình xác định một tập hợp các hướng dẫn được biên dịch cùng nhau để thực hiện một tác vụ cụ thể bởi CPU (Bộ xử lý trung tâm). Ngôn ngữ lập trình chủ yếu đề cập đến các ngôn ngữ bậc cao như C, C++, Pascal, Ada, COBOL, v.v.

Mỗi ngôn ngữ lập trình chứa một bộ từ khóa và cú pháp duy nhất, được sử dụng để tạo một bộ hướng dẫn. Hàng nghìn ngôn ngữ lập trình đã được phát triển cho đến nay, nhưng mỗi ngôn ngữ đều có mục đích cụ thể của nó. 

Các ngôn ngữ này khác nhau về mức độ trừu tượng mà chúng cung cấp từ phần cứng. Một số ngôn ngữ lập trình cung cấp ít hoặc không có tính trừu tượng trong khi một số ngôn ngữ cung cấp tính trừu tượng cao hơn. Dựa trên mức độ trừu tượng, chúng có thể được phân thành hai loại:

  • Ngôn ngữ bậc thấp
  • ngôn ngữ bậc cao

Hình ảnh được đưa ra dưới đây mô tả mức độ trừu tượng từ phần cứng. Như bạn có thể quan sát từ hình ảnh bên dưới, ngôn ngữ máy không cung cấp tính trừu tượng, ngôn ngữ Hợp ngữ cung cấp tính trừu tượng ít hơn trong khi ngôn ngữ bậc cao cung cấp mức trừu tượng cao hơn.

Ngôn ngữ lập trình là gì Liệu có khó phân biệt

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

Ngôn ngữ bậc thấp là ngôn ngữ lập trình không cung cấp sự trừu tượng hóa từ phần cứng và nó được thể hiện ở dạng 0 hoặc 1, là các hướng dẫn của máy. Các ngôn ngữ thuộc danh mục này là ngôn ngữ Máy và ngôn ngữ Hợp ngữ.

Ngôn ngữ máy

Ngôn ngữ máy là ngôn ngữ bao gồm một tập hợp các hướng dẫn ở dạng nhị phân 0 hoặc 1. Như bạn biết rằng máy tính chỉ có thể hiểu các hướng dẫn máy, ở dạng nhị phân, tức là 0 và 1, vì vậy hướng dẫn được cung cấp cho máy tính chỉ có thể ở dạng mã nhị phân. 

Tạo một chương trình bằng ngôn ngữ máy là một nhiệm vụ rất khó khăn vì các lập trình viên không dễ dàng viết chương trình bằng các lệnh của máy. Nó dễ bị lỗi vì nó không dễ hiểu và khả năng bảo trì của nó cũng rất cao. 

Ngôn ngữ máy không thể mang theo được vì mỗi máy tính đều có hướng dẫn máy của nó, vì vậy nếu bạn viết chương trình trên máy tính này sẽ không còn hiệu lực trên máy tính khác.

Các kiến ​​trúc bộ xử lý khác nhau sử dụng các code máy khác nhau

Ví dụ: bộ xử lý PowerPC chứa kiến ​​trúc RISC, yêu cầu code khác với bộ xử lý intel x86, có kiến ​​trúc CISC.

Hợp ngữ

Hợp ngữ chứa một số lệnh mà con người có thể đọc được chẳng hạn như mov, add, sub, v.v. Các vấn đề mà bạn gặp phải trong ngôn ngữ máy được giảm thiểu ở một mức độ nào đó bằng cách sử dụng một dạng mở rộng của ngôn ngữ máy được gọi là hợp ngữ. Vì các lệnh hợp ngữ được viết bằng các từ tiếng Anh như mov, add, sub nên dễ viết và dễ hiểu hơn.

Như bạn đã biết máy tính chỉ có thể hiểu các hướng dẫn ở cấp độ máy, vì vậy tôi yêu cầu một trình dịch chuyển đổi code hợp ngữ thành code máy. Trình dịch được sử dụng để dịch code được gọi là trình biên dịch code.

Code hợp ngữ không thể di chuyển được vì dữ liệu được lưu trữ trong các thanh ghi máy tính và máy tính phải biết các bộ thanh ghi khác nhau.

Code hợp ngữ không nhanh hơn code máy vì ngôn ngữ hợp ngữ đứng trên ngôn ngữ máy trong hệ thống phân cấp, do đó, điều đó có nghĩa là hợp ngữ có một số trừu tượng từ phần cứng trong khi ngôn ngữ máy không có trừu tượng.

Ngôn ngữ lập trình là gì Liệu có khó phân biệt

Sự khác biệt giữa ngôn ngữ máy và hợp ngữ

Sau đây là những khác biệt giữa ngôn ngữ máy và hợp ngữ:

Ngôn ngữ máyHợp ngữ
Ngôn ngữ mức máy có mức thấp nhất trong hệ thống phân cấp, do đó, nó không có mức trừu tượng hóa từ phần cứng.Ngôn ngữ lắp ráp cao hơn ngôn ngữ máy có nghĩa là nó có mức độ trừu tượng ít hơn từ phần cứng.
Nó không thể dễ dàng hiểu được bởi con người.Nó rất dễ đọc, viết và bảo trì.
Ngôn ngữ máy được viết bằng các chữ số nhị phân, tức là 0 và 1.Hợp ngữ được viết bằng ngôn ngữ tiếng Anh đơn giản nên người dùng dễ hiểu.
Nó không yêu cầu bất kỳ trình dịch nào vì code máy được máy tính thực thi trực tiếp.Trong hợp ngữ, trình hợp dịch được sử dụng để chuyển đổi mã hợp ngữ thành code máy.
Nó là một ngôn ngữ lập trình thế hệ đầu tiên.Nó là một ngôn ngữ lập trình thế hệ thứ hai.

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

Ngôn ngữ bậc cao là ngôn ngữ lập trình cho phép lập trình viên viết các chương trình độc lập với một loại máy tính cụ thể. Các ngôn ngữ bậc cao được coi là cấp cao vì chúng gần với ngôn ngữ của con người hơn là ngôn ngữ máy.

Khi viết một chương trình bằng ngôn ngữ bậc cao, cần phải tập trung toàn bộ vào logic của vấn đề.

Cần có trình biên dịch để dịch ngôn ngữ bậc cao sang ngôn ngữ bậc thấp.

Ưu điểm của ngôn ngữ lập trình bậc cao

  • Ngôn ngữ bậc cao dễ đọc, dễ viết và dễ bảo trì vì nó được viết bằng tiếng Anh giống như các từ.
  • Các ngôn ngữ bậc cao được thiết kế để khắc phục hạn chế của ngôn ngữ bậc thấp, tức là tính di động. Ngôn ngữ bậc cao có thể di chuyển được; tức là những ngôn ngữ này không phụ thuộc vào máy.
Ngôn ngữ lập trình là gì Liệu có khó phân biệt

Sự khác biệt giữa ngôn ngữ lập trình bậc thấp và ngôn ngữ lập trình bậc cao

Sau đây là những khác biệt giữa ngôn ngữ lập trình bậc thấp và ngôn ngữ lập trình bậc cao:

Ngôn ngữ lập trình bậc thấpNgôn ngữ lập trình bậc cao
Nó là ngôn ngữ thân thiện với máy, tức là máy tính hiểu được ngôn ngữ máy, ngôn ngữ này được biểu diễn bằng 0 hoặc 1.Đây là một ngôn ngữ thân thiện với người dùng vì ngôn ngữ này được viết bằng các từ tiếng Anh đơn giản, con người có thể dễ dàng hiểu được.
Ngôn ngữ bậc thấp mất nhiều thời gian hơn để thực thi.Nó thực hiện với tốc độ nhanh hơn.
Nó yêu cầu trình hợp dịch chuyển mã hợp ngữ thành code máy.Nó yêu cầu trình biên dịch chuyển đổi các hướng dẫn ngôn ngữ bậc cao thành code máy.
Code máy không thể chạy trên tất cả các máy, vì vậy nó không phải là ngôn ngữ di động.Code bậc cao có thể chạy tất cả các nền tảng, vì vậy nó là ngôn ngữ di động.
Đó là bộ nhớ hiệu quả.Nó ít hiệu quả hơn về bộ nhớ.
Gỡ lỗi và bảo trì không dễ dàng hơn bằng ngôn ngữ bậc thấp.Gỡ lỗi và bảo trì dễ dàng hơn trong một ngôn ngữ bậc cao.

Kết luận

Qua bài viết trên mình đã giúp bạn hiểu hơn về ngôn ngữ lập trình, và ngôn ngữ lập trình được chia thành mấy loại, cách so sánh, nhận biết, và sự hình thành, phát triển như thế nào.

Các bạn có thể tham khảo các bài viết hay về lập trình tại đây!


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.