Nếu hai khác biệt giữa ngôn ngữ máy Machine language và ngôn ngữ bậc cao high level Language

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

Ngôn ngữ lập trình cho phép con người tạo ra các hướng dẫn để máy tính thực hiện các tác vụ. Có ba loại ngôn ngữ lập trình như Ngôn ngữ lập

Nếu hai khác biệt giữa ngôn ngữ máy Machine language và ngôn ngữ bậc cao high level Language

Tìm hiểu về ngôn ngữ máy

Trước tiên, chúng ta sẽ đi tìm hiểu về ngôn ngữ lập trình nói chung để có thể hiểu hơn về “ngôn ngữ khó hiểu” – ngôn ngữ máy nhé!

Bài viết sẽ tập trung đề cập đến ngôn ngữ cấp thấp. Nếu bạn muốn tìm hiểu về ngôn ngữ bậc cao, tìm hiểu thêm tại Top 5 ngôn ngữ lập trình phổ biến nhất.

Ngôn ngữ lập trình là gì?

Ngôn ngữ lập trình (programming language) là một dạng ngôn ngữ được phát triển và chuẩn hóa theo một hệ thống quy tắc riêng, giúp cho lập trình viên có thể mô tả được các chương trình làm việc gì đó mà cả con người và máy tính đều hiểu được.

Ngôn ngữ lập trình được sử dụng để viết nên các chương trình phần mềm, ứng dụng và cả website. Mỗi ngôn ngữ sẽ có những đặc điểm riêng từ: cú pháp, từ vựng, ý nghĩa và cả mục đích cụ thể.

Vậy, có mấy loại ngôn ngữ lập trình?

Chúng ta sẽ có bao gồm 3 loại ngôn ngữ lập trình chính:

Nếu hai khác biệt giữa ngôn ngữ máy Machine language và ngôn ngữ bậc cao high level Language

Chúng ta cũng có thể chia thành 2 loại:

Ngoài ra, bạn còn có thể chia theo những cách khác như: chia theo bảng chữ cái, chia theo thứ tự thời gian. Nếu bạn vẫn muốn tham khảo thêm về việc phân chia ngôn ngữ lập trình, bài viết của Wikipedia này sẽ đáp ứng được nhu cầu tìm hiểu thêm của bạn.

Machine Language – ngôn ngữ máy là gì?

Machine Language tạm dịch ngôn ngữ máy, là ngôn ngữ duy nhất để viết chương trình và máy tính có thể hiểu ngay lập tức sau đó thực hiện yêu cầu trong chương trình. Ngôn ngữ máy là một dạng ngôn ngữ số được viết bằng mã nhị phân 0 – 1 hoặc mã hex. Ưu điểm vượt trội của ngôn ngữ máy chính là khả năng làm việc tuyệt vời và khai thác phần cứng của máy tính.

Khi sử dụng ngôn ngữ máy, máy tính sẽ hiểu trực tiếp lệnh của bạn mà không cần thông qua các trình biên dịch.

Nhưng khoan! Dừng lại chừng 12 giây! Tin Tino Group đi, bạn nên tiếp tục đọc bài viết đừng vội vàng đi học ngôn ngữ máy để lập trình ra phần mềm của bạn nhé!

Assembly Language – Hợp ngữ là gì?

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ành middle 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).

Nếu hai khác biệt giữa ngôn ngữ máy Machine language và ngôn ngữ bậc cao high level Language

Nếu từng xem phim Thủy thủ mặt trăng, bạn sẽ thấy nhân vật Tuxedo Mặt nạ viết chương trình hoặc làm việc với máy tính với những dòng xanh lá cây thế này.

Sự khác biệt chính - Máy Ngôn ngữ so với ngôn ngữ hội

Ngôn ngữ lập trình cho phép con người tạo hướng dẫn cho máy tính thực hiện các tác vụ. Có ba loại ngôn ngữ lập trình như ngôn ngữ lập trình cấp cao, ngôn ngữ hội và ngôn ngữ máy. Ngôn ngữ lập trình cấp cao dễ hiểu hơn cho con người. Ngôn ngữ được máy tính nhận biết được gọi là ngôn ngữ máy. Ngôn ngữ hội là ngôn ngữ giữa ngôn ngữ cấp cao và ngôn ngữ máy. Các sự khác biệt chính giữa ngôn ngữ máy và ngôn ngữ lắp ráp là, Ngôn ngữ máy thực thi trực tiếp bởi máy tính và ngôn ngữ lắp ráp yêu cầu trình biên dịch chuyển đổi thành mã máy hoặc mã đối tượng để thực thi bởi CPU.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Ngôn ngữ máy là gì
3. Ngôn ngữ hội là gì
4. Điểm tương đồng giữa ngôn ngữ máy và ngôn ngữ hội
5. So sánh cạnh nhau - Ngôn ngữ máy so với ngôn ngữ hội ở dạng bảng
6. Tóm tắt

Mục lục

  • 1 Các đặc điểm
  • 2 Giá phải trả cho việc trừu tượng hóa
  • 3 Ý nghĩa tương đối
  • 4 Chế độ thực thi
    • 4.1 Kiến trúc máy tính ngôn ngữ cấp cao
  • 5 Liên kết ngoài
  • 6 Tham khảo

Các đặc điểmSửa đổi

"Ngôn ngữ cấp cao" đề cập đến cấp độ trừu tượng cao hơn từ ngôn ngữ máy. Thay vì xử lý các thanh ghi, địa chỉ bộ nhớ và ngăn xếp cuộc gọi, ngôn ngữ cấp cao xử lý các biến, mảng, đối tượng, biểu thức số học hoặc boolean phức tạp, chương trình con và hàm, vòng lặp, luồng, khóa và các khái niệm khoa học máy tính trừu tượng khác, với trọng tâm về khả năng sử dụng so với hiệu quả chương trình tối ưu. Không giống như các ngôn ngữ hợp ngữ cấp thấp, các ngôn ngữ cấp cao có rất ít, nếu có, các phần tử ngôn ngữ có thể dịch trực tiếp sang các mã opcodes gốc của máy. Các tính năng khác, chẳng hạn như quy trình xử lý chuỗi, các tính năng ngôn ngữ hướng đối tượng và đầu vào / đầu ra tệp, cũng có thể có mặt. Một điều cần lưu ý về các ngôn ngữ lập trình bậc cao là các ngôn ngữ này cho phép lập trình viên được tách rời và tách rời khỏi máy. Nghĩa là, không giống như các ngôn ngữ cấp thấp như hợp ngữ hoặc ngôn ngữ máy, lập trình cấp cao có thể khuếch đại các lệnh của lập trình viên và kích hoạt rất nhiều chuyển động dữ liệu trong nền mà họ không biết. Trách nhiệm và quyền lực thực hiện các lệnh đã được giao cho máy từ lập trình viên.

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

Nội dung dưới đây sẽ giúp bạn trả lời được câu hỏi có mấy loại ngôn ngữ lập trình một cách đơn giản và dễ hiểu nhất có thể. Đặt biệt là các bạn học sinh sinh viên đang bắt đầu học về lý thuyết ngôn ngữ lập trình.

Ngôn ngữ máy

  • Ngôn ngữ máy – mã máy (machine language):là ngôn ngữ nền tảng của bộ vi xử lý. Các chương trình được viết trong tất cả các loại ngôn ngữ khác cuối cùng đều được chuyển thành ngôn ngữ máy trước khi chương trình đó được thi hành.
  • Các chỉ thị trong ngôn ngữ máy được biểu diễn dưới dạng mã nhị phân. Đâylà ngôn ngữ duy nhất mà bộ vi xử lí có thể nhận biết và thực hiện một cách trực tiếp.

Hợp ngữ

  • Hợp ngữ (assembly language) là một ngôn ngữ lập trình bậc thấp, nó dùng các từ viết tắt trong tiếng Anh để viết chương trình. Ví dụ: Input= nhập; add = phép cộng; sub = phép trừ,.v.v..
  • Hợp ngữ đã từng được dùng rộng rãi trong tất cả các khía cạnh lập trình, nhưng ngày nay nó có xu hướng chỉ được dùng trong một số lĩnh vực hẹp, chủ yếu để giao tiếp trực tiếp với phần cứng hoặc xử lý các vấn đề liên quan đến tốc độ cao. Điển hình như các trình điều khiển thiết bị, các hệ thống nhúng cấp thấp và các ứng dụng thời gian thực. [Sưu tầm – Wikipedia]
  • Các nhược điểm:Chương trình còn cồng kềnh, phức tạp, khó nhớ , còn phụ thuộc vào loại thiết bị (vi xử lý). Để thiết bị điện tửhiểu và thực thi được chương trình, cần phải có công cụhợp dịch để dịch từ hợp ngữ ra ngôn ngữ máy.

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

  • Ngôn ngữ lập trình bậc cao (High-level programming language) là ngôn ngữ lập trình có hình thức gần với ngôn ngữ tự nhiên, có tính độc lập cao, ít phụ thuộc vào loại thiết bị (loại vi xử lý)cũng như các trình dịch.
  • Một số ngôn ngữ lập trình bậc cao phổ biến hiện nay như: C, C++, Java, Pascal, PHP, Visual Basic.
Nếu hai khác biệt giữa ngôn ngữ máy Machine language và ngôn ngữ bậc cao high level Language

Sơ đồ thực hiện chương trình theo ngôn ngữ lập trình

Sự khác biệt giữa các ngôn ngữ lập trình

Trên các diễn đàn về tin học hiện nay, có nhiều bài blog và mục hỏi đáp liên quan đến chủ đề "ngôn ngữ lập trình A và B khác nhau như thế nào?". Mình nghĩ đây là một đề tài quan trọng cho cả người mới học lập trình lẫn người đã lập trình lâu năm. Tuy nhiên lướt qua một vòng các diễn đàn mạng thì mình thấy hầu hết các bài viết về chủ đề này đều chưa thỏa đáng, và tệ hơn nữa là đôi khi chứa nhiều thông tin sai lệch.

Bài viết này sẽ cố gắng giải thích sự khác biệt giữa các ngôn ngữ lập trình một cách có hệ thống, đồng thời đính chính những nhận định sai lầm mà mình thấy xuất hiện nhiều trên các forum/blog.

Giải thích ngắn gọn về ngôn ngữ lập trình bậc cao và ngôn ngữ lập trình bậc thấp.

Dịch từ bài viết ”低水準言語と高水準言語とは?5分でわかりやすく解説!”

Dựa vào đặc trưng mà ngôn ngữ lập trình có thể được chia thành ngôn ngữ lập trình bậc cao và ngôn ngữ lập trình bậc thấp.

Vậy thì, tiêu chuẩn cao/thấp đối với ngôn ngữ lập trình là gì, và ưu điểm của mỗi loại ngôn ngữ như thế nào?

Trong bài viết sau đây, tôi sẽ giải thích một cách dễ hiểu 2 vấn đề nêu trên.