Bài 1: Giới thiệu về chương trình máy tính và ngôn ngữ lập trình


Chương trình máy tính là gì?

Chương trình máy tính là gì? Chương trình máy tính hay còn được gọi là chương trình là một chuỗi các chỉ thị được viết ra để thực hiện một nhiệm vụ nào đó bằng máy tính. Một chương trình máy tính được viết bằng một loại ngôn ngữ lập trình. Có nhiều loại ngôn ngữ lập trình khác nhau. Tuỳ thuộc vào ưu điểm, nhược điểm hay sở thích, trình độ thông thạo hay do yêu cầu của công việc mà lập trình viên lựa chọn và sử dụng ngôn ngữ lập trình để viết chương trình. Ngôn ngữ lập trình có thể chia thành hai loại: ngôn ngữ lập trình bậc thấp (ngôn ngữ máy, ngôn ngữ assembly) và ngôn ngữ lập trình bậc cao (C++, Java, Visual Basic, C#, …).
Một tập hợp các chương trình máy tính và các dữ liệu có liên quan tạo ra phần mềm. Ví dụ về chương trình máy tính: chương trình giải phương trình bậc hai một ẩn số, phần mềm phát nhạc, phần mềm soạn thảo văn bản, …
Một chương trình máy tính sau khi viết bởi lập trình viên, được lưu như một tệp tin trên ổ cứng máy tính. Khi chương trình được khởi chạy thì máy tính sẽ thực thi, máy tính đọc và xử lý tập tin, làm những gì mà chương trình yêu cầu nó làm.
Bên cạnh những chương trình máy tính có ích, phục vụ cho các công việc tốt cho con người, còn có những phần mềm độc hại, virus được viết ra bởi những người muốn phá hoại hệ thống và thu tập dữ liệu trái pháp luật. Ví dụ như ăn cắp thông tin từ máy chủ, mã hoá tập tin nhằm lừa đảo, chiếm đoạt tài sản, …

Phần mềm

Nhắc lại, phần mềm (hay chương trình) là một tập hợp các câu lệnh được viết bở một hay một vài ngôn ngữ lập trình nhằm giải quyết một bài toán cụ thể nào đó. Phần mềm có nhiều ứng dụng rộng rãi cà sử dụng ở nhiều lĩnh vực khác nhau.

  • Phần mềm ứng dụng: phần mềm quản lý nhân sự, quản trị văn phòng, trò chơi, …
  • Phần mềm hỗ trợ: trình soạn thảo hỗ trợ vẽ sơ đồ tư duy, phần mềm trộn đề thi trắc nghiệm, …
  • Phần mềm điều khiển: phần mềm tự động hoá quy trình sản xuất ô tô, hệ thống tự động chăm sóc cây trồng, phần mềm tự hành cho ô tô tự lái, …
  • Phần mềm mang trí thông minh nhân tạo: phần mềm nhận dạng và đọc biển số xe, phần mềm phân loại và dự đoán bệnh, hệ thống khai phá dữ liệu, …

Các bước cơ bản phát triển phần mềm

Việc xây dựng một phần mềm được thực hiện qua các bước cơ bản như sau:

  • Thu thập, phân tích yêu cầu bài toán: nhằm hiểu chính xác nhiệm vụ, yêu cầu, tính chất, phạm vi, đặc thù, đặc tính của bài toán đặt ra. Trong bước này, chúng ta cần xác định rõ đầu vào (input) và đầu ra (output) của bài toán, các ràng buộc về dữ liệu, kiểu dữ liệu, …
  • Xây dựng, thiết kế và phân tích, đánh giá giải thuật: sau khi phân tích yêu cầu, xác định rõ ràng những đầu vào, dựa vào đó mà ta cần phải xác định chiến thuật để giải quyết bài toán, đưa ra đầu ra chính xác, đúng đắn và khả thi.
  • Lập trình: giải thuật sẽ được thực thi thành những đoạn mã lệnh cụ thể được viết bởi ngôn ngữ lập trình
  • Kiểm thử, bảo trì: sau khi chương trình được viết xong, ta cần phải kiểm tra (test) chương trình xem kết quả có đúng đắn hay không. Một chương trình cần được tiến hành kiểm tra với một loạt các bộ dữ liệu kiểm tra. Bộ dữ liệu càng nhiều và kết quả chương trình càng tốt thì chương trình của ta đã đáp ứng được nhu cầu của bài toán.

Ngôn ngữ lập trình

Ngôn ngữ máy

Ngôn ngữ máy (hay còn gọi là mã máy) 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 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. Các lệnh viết bằng ngôn ngữ máy nói chung ở dạng nhị phân hoặc biến thể của chúng trong hệ đếm 16. Ví dụ chuyển đổi ngôn ngữ tự nhiên với câu “ngon ngu lap trinh” sang mã nhị phân:


01101110 01100111 01101111 01101110 00100000 01101110 01100111 01110101 00100000 01101100 01100001 01110000 00100000 01110100 01110010 01101001 01101110 01101000

Mỗi lệnh của ngôn ngữ máy gồm có hai phần: phần chỉ dẫn và phần địa chỉ. Phần chỉ dẫn là các số nằm bên trái, phần bên phải là địa chỉ sử dụng. Ngôn ngữ máy có nhược điểm là khó học vì phải hiểu cấu trúc của hệ thống máy tính cũng như các câu lệnh ở dạng nhị phân.

Ngôn ngữ assembly

Để khắc phục nhược điểm của ngôn ngữ máy, người ta đã sáng tạo ra một ngôn ngữ giao tiếp với máy ở mức độ thân thiện hơn với con người được gọi là hợp ngữ. Về cơ bản, các câu lệnh của hợp có cấu trúc giống với ngôn ngữ máy, điểm khác nhau là hợp ngữ được viết lệnh dưới dạng mã chữ. Mã chữ thể hiện mã lệnh hoặc các đối tượng trong lệnh. Mã lệnh ở dạng chữ thường là những từ tiếng Anh hoặc các từ tiếng Anh ghép nối (viết tắt) có ý nghĩa rõ ràng. Còn đối tượng do ta tự đặt tên phù hợp với ý niệm về đối tượng đó.
Như vậy, ngôn ngữ assembly cần một bộ chuyển đổi để chuyển các mã lệnh về dạng mã máy. Bộ chuyển đổi trong assembly được gọi là assembler. Hạn chế của ngôn ngữ assembly là nó phụ thuộc vào cấu trúc của các dòng máy tính, mỗi loại vi xử lý khác nhau sẽ có bộ lệnh khác nhau.

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

Ngôn ngữ máy và ngôn ngữ assembly được gọi là ngôn ngữ lập trình bậc thấp. Các ngôn ngữ này có điểm hạn chế là chỉ sử dụng cho một loại máy hoặc một kiểu máy. Trái ngược lại, các ngôn ngữ lập trình bậc cao thì sử dụng các câu lệnh giống như ngôn ngữ tự nhiên, chẳng hạn như tiếng Anh và có thể chạy trên nhiều loại máy tính khác nhau. Bởi vậy mà chương trình viết bởi ngôn ngữ tự nhiên sẽ dễ hiểu, dễ viết hơn và dễ dàng sửa lỗi hơn. Hiện nay, các phần mềm ứng dụng đều được viết bởi ngôn ngữ lập trình bậc cao. Một số ngôn ngữ lập trình bậc cao đang được sử dụng rộng rãi như C++, Java, Visual Basic, C#, … Ví dụ, sử dụng ngôn ngữ lập trình C++, câu lệnh tính tổng và tích của hai số nguyên a và b là:


    a = 3;
    b = 2;
    s = a + b;
    m = a * b;

Khi đã viết xong code chương trình, ta cần dịch sang ngôn ngữ máy. Việc thực hiện dịch chương trình từ ngôn ngữ bậc cao sang ngôn ngữ máy được thực hiện bằng hai cách như sau:

  • Trình thông dịch: dịch và chạy từng câu lệnh riêng rẽ.
  • Trình biên dịch: dịch tất cả các câu lệnh sang ngôn ngữ máy rồi mới chạy

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese