Ngôn ngữ máy là gì ưu và nhược điểm của ngôn ngữ máy

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:

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

Answers [ ]

  1. ミ★Ňǥườเ ᗪưйǥ★彡

    Ngôn ngữ máylà ngôn ngữ duy nhất để viết chương trình mà máy tính có thể trực tiếp hiểu và thực hiện được

    – Các lệnh viết ở ngôn ngữ máy ở dạng mã nhị phân hoặc dạng mã hexa

    Ưu điểm:

    + Khai thác triệt để đặc điểm phần cứng của máy

    Nhược điểm:

    + Con người khó có thể hiểu được ngôn ngữ máy

    + Ngôn ngữ phức tạp, phụ thuộc nhiều vào phần cứng, chương trình viết mất nhiều công sức, cồng kềnh và khó hiệu chỉnh.

  2. Ngôn ngữ máy

    -đó là ngôn ngữ duy nhất để viết chương trình mà máy tính có thể trực tiếp hiểu và thực hiện được

    – Các lệnh viết ở ngôn ngữ máy ở dạng mã nhị phân hoặc dạng mã hexa

    Ưu điểm:

    -Khai thác triệt để đặc điểm phần cứng của máy

    Nhược điểm:

    -Con người khó có thể hiểu được ngôn ngữ máy

    -Ngôn ngữ phức tạp, phụ thuộc nhiều vào phần cứng, chương trình viết mất nhiều công sức, cồng kềnh và khó hiệu chỉnh.

    NOCOPY

1. Ngôn ngữ máy là gì?

Ngôn ngữ máy [còn được gọi là máy ngữ hay mã máy, tiếng Anh là machine language hay machine code] là một tập các chỉ thị được CPU củ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 đơn vị dữ liệu của thanh ghi CPU hay bộ nhớ. Tất cả các chương trình thực thi trực tiếp bởi CPU đều là chuỗi các chỉ thị 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.

2. Những câu hỏi thường gặp về ngôn ngữ máy

Nên học ngôn ngữ lập trình nào?

Câu trả lời sẽ phụ thuộc vào mong muốn, mục đích của bạn. Nếu thích lập trình cho các thiết bị di động, Java, Ruby, Kotlin sẽ là những ngôn ngữ rất phù hợp với bạn đấy!

Phát triển game nên học những ngôn ngữ lập trình nào?

Nếu bạn muốn phát triển game, bạn nên sử dụng những ngôn ngữ “gần” với ngôn ngữ máy nhất để có thể tối ưu hóa phần cứng sử dụng như: C/C++, Java,…

Lập trình game có dễ hay không?

Có, nếu bạn thực hiện những game indie đơn giản, khối lượng công việc của bạn sẽ không quá nhiều. Tuy nhiên, nếu bạn đang nghĩ rằng sau khi học lập trình bạn sẽ có thể phát triển những tựa game AAA hay những tựa game phổ biến như như: Grand Theft Auto V, Call of Duty, Liên minh huyền thoại hay Geshin Impact,… điều này sẽ không dễ đâu. Thời gian thực hiện những dự án game AAA sẽ được tính bằng rất nhiều tháng và rất nhiều nhân lực.

Sự khác biệt giữa trình biên dịch và trình phiên dịch là gì?

Đừng nhầm hai khái niệm này là một nhé! Vì:

- Trình biên dịch được viết bằng các ngôn ngữ lập trình cao cấp khác như C hoặc C++ để dịch sang mã máy.

- Một số ngôn ngữ khác như Java, C# sẽ sử dụng con đường khác là dịch mã nguồn cao cấp thành một dạng trung gian được gọi là máy ảo [Ví dụ như máy ảo Java –JVM]. Sau đó mã máy ảo sẽ trở thành đầu vào cho một chương trình thông dịch máy ảo mô phỏng CPU phần cứng.

Tóm lại, ngôn ngữ có ứng dụng rất cao trong cuộc sống hiện nay,rất nhiều ngành nghề cần có sự tham gia của ngôn ngữ máy trong việc duy trình hoạt động.

Đồng thời góp phần làm cho hoạt động công nghiệp hóa, hiện đại hóa diễn ra nhanh chóng.

1. Khái niệm ngôn ngữ lập trình

- Cần diễn tả thuật toán bằng một ngôn ngữ mà máy tính có thể hiểu và thực hiện được. Ngôn ngữ đó được gọi là ngôn ngữ lập trình.

Ngôn ngữ máy là gì?

Ngôn ngữ máy là gì? Ngôn ngữ máy là ngôn ngữ duy nhất để viết chương trình mà máy tính có thể hiểu và thực hiện được. Việc viết chương trình bằng ngôn ngữ máy có thể khai thác triệt để các đặc điểm phần cứng của máy.

Khái niệm ngôn ngữ máy

Ngôn ngữ máy là ngôn ngữ số được viết thông qua mã nhị phân 0-1 hay mã hex. Thông qua ngôn ngữ máy máy tính sẽ hiểu ngay lập tức và thực hiện được ngay các yêu cầu của chương trình.

Ngôn ngữ máy là thuật ngữ phổ biến trong ngành công nghệ thông tin

Khi sử dụng ngôn ngữ máy, máy tính của bạn sẽ hiểu được lệnh mà không cần phải sử dụng các trình biên dịch. Căn cứ vào mục đích sử dụng của chương trình lập ra mà các lập trình viên sẽ ứng dụng ngôn ngữ máy khác nhau để viết nên.

Ưu điểm và nhược điểm của ngôn ngữ máy

Để giao tiếp được với phần cứng một cách trơn tru bạn sẽ cần phải sử dụng ngôn ngữ máy. Đây là ngôn ngữ đóng vai trò đặc biệt quan trọng khi viết chương trình. Tuy nhiên cũng tồn tại một số nhược điểm nhất định. Vậy ưu nhược điểm của ngôn ngữ máy là gì?

Ưu điểm:

Ngôn ngữ máy giúp máy tính hiểu cụ thể chương trình nhanh chóng đơn giản

Nhược điểm:

>>> Xem thêm: Ngôn ngữ lập trình là gì? 10 ngôn ngữ lập trình phổ biến dân IT phải biết

Ngôn ngữ máy là gì?

Ngôn ngữ máy là ngôn ngữ duy nhất để viết chương trình mà máy tính trực tiếp hiểu và thực hiện được. Mỗi chương trình viết bằng ngôn ngữ khác muốn thực hiện trên máy tính đều phải được dịch ra ngôn ngữ máy bằng một chương trình dịch.

Các lệnh viết ở ngôn ngữ máy ở dạng mã nhị phân hoặc dạng mã hexa.

Ưu điểm của ngôn ngữ máy: khai thác triệt để đặc điểm phần cứng của máy.

Nhược điểm của ngôn ngữ máy: Con người khó có thể hiểu được ngôn ngữ máy. Ngôn ngữ phức tạp, phụ thuộc nhiều vào phần cứng, chương trình viết mất nhiều công sức, cồng kềnh và khó hiệu chỉnh.

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

Ngôn ngữ lập trình [programming language] là dạng ngôn ngữ được chuẩn hóa theo một hệ thống các quy tắc riêng, sao cho qua đó người lập trình có thể mô tả các chương trình làm việc dành cho thiết bị điện tử mà cả con người và các thiết bị đó đều hiểu được.

Ngôn ngữ lập trình Java

Ngôn ngữ lập trình dùng để làm gì?

Ngôn ngữ lập trình dùng để viết nên các chương trình phần mềm. Mỗi ngôn ngữ lập trình có thể được xem như là một tập hợp của các chi tiết kỹ thuật chú trọng đến cú pháp, từ vựng, và ý nghĩa của ngôn ngữ.

Ngôn ngữ lập trình Pascal

Những chi tiết kỹ thuật này thường bao gồm:

Mục lục

Các chỉ thị mã máySửa đổi

Mọi vi xử lý hay họ vi xử lý đều có những tập chỉ thị mã máy riêng biệt. Các chỉ thị này là các mẫu bit được thiết kế tương ứng với những lệnh khác nhau của máy tính. Do đó, những tập chỉ thị này là riêng biệt của một lớp vi xử lý thuộc cùng một kiến trúc máy tính. Những thiết kế vi xử lý kế thừa thường bao gồm các chỉ thị của vi xử lý tiền nhiệm cùng với các chỉ thị mới. Đôi khi, các thiết kế kế thừa lại loại bỏ hay thay đổi chức năng một số mã chỉ thị [vì chúng cần dùng cho mục đích mới], gây ảnh hưởng đến sự đồng bộ mã nguồn ở một mức độ nhất định. Thậm chí, các vi xử lý đồng bộ cận hoàn toàn cũng có những sự biến đổi hành vi đối với một số chỉ thị, nhưng điều này rất hiếm xảy ra. Các hệ thống còn có thể khác nhau ở một số thành phần khác như phương thức sắp xếp bộ nhớ, hệ điều hành hay thiết bị ngoại vi. Vì các chương trình hay phụ thuộc vào các yếu tố này, các hệ thống khác nhau khó có thể chạy cùng một mã máy, ngay cả khi chúng sử dụng cùng một loại vi xử lý.

Một tập chỉ thị có thể có độ dài chỉ thị thống nhất hay biến động. Cách các bit được sắp xếp thay đổi rất lớn giữa các kiến trúc khác nhau hay các loại chỉ thị khác nhau. Hầu hết các chỉ thị có một hay nhiều vùng mã vận hành để phân biệt các chỉ thị cơ sở [như tính toán hay nhảy] và các chỉ thị thực [như cộng hay so sánh], và các vùng khác biểu diễn loại toán hạng, phương thức biểu diễn địa chỉ, các chỉ số địa chỉ hay các giá trị thực [các toán hạng hằng được chứa trong chỉ thị như vậy được gọi là giá trị tức thời].

Không phải tất cả các máy tính hay chỉ thị đơn lẻ đều có toán hạng hiện [rõ ràng]. Một máy tính thanh chứa có sự kết hợp giữa toán hạng trái và kết quả tính toán lưu trong một thanh chứa ẩn đối với hầu hết các chỉ thị đại số. Một số kiến trúc khác [như 8086 hay x86] có phiên bản sử dụng thanh chứa của các chỉ thị thông dụng, và thanh chứa được xem như là một trong những thanh ghi tổng quát nhất của chỉ thị dài. Trong khi đó, một máy tính ngăn xếp lại lưu hầu hết các toán hạng trong một ngăn xếp ẩn. Những chỉ thị chuyên biệt cũng thường thiếu toán tử hiện [ví dụ, vi xử lý ID trong kiến trúc x86 ghi giá trị vào bốn thanh ghi địa điểm ẩn]. Sự khác biệt giữa toán tử hiện và ẩn cho phép sử dụng nhiều hơn hằng số có phạm vi rộng, 'uốn nắn' các thanh ghi liên tục [lưu giá trị hằng số khác đè lên giá trị đã có của thanh ghi] và rất nhiều ưu điểm vượt trội khác.

Video liên quan

Bài Viết Liên Quan

Chủ Đề