Menu
CoddyTech

Giải thích thuật ngữ lập trình

Định nghĩa ngắn gọn, chính xác cho những từ bạn gặp khi bắt đầu học code. Mỗi thuật ngữ có trang riêng, với ví dụ bạn chạy được ngay trên trình duyệt, những lỗi người học hay mắc và liên kết đến các thuật ngữ liên quan.

Code chạy như thế nào

Điều gì xảy ra giữa đoạn code bạn gõ và chương trình chạy: trình biên dịch, trình thông dịch, runtime và hệ điều hành.

Mã nguồnMã nguồn (source code) là phần văn bản mà con người đọc được của một chương trình, do lập trình viên viết bằng một ngôn ngữ như Python, Java hay C và lưu dưới dạng tệp văn bản thuần, rồi được trình biên dịch hoặc trình thông dịch biến thành các lệnh máy tính chạy được.Trình biên dịchTrình biên dịch (compiler) là một chương trình dịch mã nguồn viết bằng một ngôn ngữ lập trình sang mã máy, hoặc sang một dạng cấp thấp hơn như bytecode, trước khi chương trình chạy. Chương trình đã dịch sau đó chạy được mà không cần mã nguồn gốc.Trình thông dịchTrình thông dịch (interpreter) là chương trình thực thi trực tiếp mã nguồn, làm theo từng lệnh trong lúc chạy, thay vì dịch toàn bộ chương trình ra một tệp mã máy riêng trước. Bản cài đặt chuẩn của Python và Ruby đều là trình thông dịch.Môi trường thực thiMôi trường thực thi (runtime environment) là phần mềm bao quanh một chương trình trong lúc nó chạy: engine thực thi code, các thư viện chuẩn mà nó gọi, và các dịch vụ quản lý bộ nhớ, lỗi và quyền truy cập hệ điều hành. JVM, Node.js và CPython là những ví dụ.Hệ điều hànhHệ điều hành (operating system, OS) là phần mềm quản lý phần cứng của máy tính và chạy mọi chương trình khác, chia sẻ bộ xử lý, bộ nhớ và ổ lưu trữ giữa chúng, đồng thời cung cấp tệp, mạng, đầu vào và đầu ra. Windows, macOS, Linux, Android và iOS đều là hệ điều hành.

Thành phần cơ bản

Những thành phần tạo nên mọi chương trình: giá trị, biến, mảng và vòng lặp.

Lỗi và gỡ lỗi

Ba loại lỗi, cách chương trình xử lý chúng và lỗi crash mà lập trình viên C gặp đầu tiên.

Lỗi cú phápLỗi cú pháp (syntax error) là sai sót trong cấu trúc của code, như thiếu dấu hai chấm, dấu ngoặc hay dấu ngoặc kép, khiến code vi phạm quy tắc ngữ pháp của ngôn ngữ lập trình. Trình biên dịch hoặc trình thông dịch từ chối chương trình trước khi bất kỳ phần nào của nó được chạy.Lỗi runtimeLỗi runtime (runtime error, lỗi thực thi) là lỗi xảy ra trong lúc chương trình đang chạy, khi một phép toán không thể thực hiện với các giá trị hiện có, như chia cho 0 hay đọc vượt quá cuối danh sách. Chương trình dừng ở dòng đó, trừ khi lỗi được xử lý.Lỗi logicLỗi logic (logic error) là sai sót trong cách suy luận của chương trình, khiến nó cho ra kết quả sai mà không bị dừng đột ngột hay hiện thông báo lỗi nào. Code hợp lệ và mọi dòng đều chạy, nhưng chương trình không làm đúng điều lập trình viên muốn.Xử lý ngoại lệXử lý ngoại lệ (exception handling) là cách để chương trình phản ứng với các lỗi xảy ra trong lúc chạy. Code có thể thất bại được đặt trong một khối được bảo vệ, như try, và khi một lỗi được ném ra, quyền điều khiển nhảy tới một trình xử lý, như except hoặc catch, thay vì crash.Segmentation faultSegmentation fault, hay segfault, là lỗi khiến chương trình bị dừng đột ngột khi nó cố đọc hoặc ghi vào vùng nhớ không được phép truy cập, như địa chỉ 0 qua một con trỏ null. Hệ điều hành dừng chương trình bằng tín hiệu SIGSEGV.

Dữ liệu và lưu trữ

Cách máy tính lưu dữ liệu và kiểm tra dữ liệu đến nơi còn nguyên vẹn: bit, byte, checksum và cơ sở dữ liệu.

Lập trình hướng đối tượng

Ý tưởng đằng sau lớp và đối tượng: che giấu dữ liệu, dùng chung một interface và ẩn đi chi tiết.

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

Người mới học lập trình nên biết thuật ngữ nào trước?
Bắt đầu với những thành phần cơ bản có trong mọi chương trình: biến, boolean, mảng và lần lặp. Sau đó tìm hiểu ba loại lỗi (lỗi cú pháp, lỗi runtime và lỗi logic), vì bạn sẽ gặp cả ba ngay trong tuần đầu tiên.
Có cần biết các thuật ngữ này trước khi học code không?

Không. Phần lớn mọi người học chúng bằng cách viết những chương trình nhỏ và tra từ khi gặp. Một thuật ngữ sẽ dễ nhớ hơn khi bạn đã tận mắt thấy lỗi hoặc đầu ra mà nó mô tả.

Thuật ngữ lập trình có giống nhau ở mọi ngôn ngữ không?
Ý tưởng thì giống. Tên gọi và chi tiết thì khác: Python gọi mảng là list và viết True, JavaScript viết true, còn Java bắt bạn khai báo kiểu của biến. Mỗi trang ở đây đều ghi rõ các ngôn ngữ khác nhau ở điểm nào.
Có thể luyện tập các khái niệm này ở đâu?
Mỗi trang thuật ngữ đều có ví dụ bạn sửa và chạy được ngay trên trình duyệt. Muốn luyện tập bài bản hơn, khóa học Python miễn phí của Coddy đi qua biến, vòng lặp, lỗi và lớp bằng từng bài tập nhỏ.