Sự khác biệt giữa Lỗi cú pháp và Lỗi logic

Sự khác biệt chính - Cú phápcây rìu lỗi đấu với Hợp lý lỗi
 

Khi lập trình, có thể có lỗi. Một lỗi là một đầu ra bất ngờ của chương trình. Những lỗi này có thể ảnh hưởng đến việc thực hiện đúng chương trình. Do đó, cần phải loại bỏ tất cả các lỗi. Một lỗi cũng được gọi là một lỗi. Quá trình xác định lỗi và sửa lỗi được gọi là gỡ lỗi. Mỗi ngôn ngữ lập trình có một cú pháp cụ thể. Các lập trình viên nên theo đúng cú pháp để viết chương trình. Khi có lỗi cú pháp, nó được gọi là lỗi cú pháp. Một lỗi cú pháp xảy ra tại thời gian biên dịch. Lỗi xảy ra trong thời gian chạy được gọi là lỗi thời gian chạy. Mảng ngoài giới hạn, lặn bằng 0, truy cập bộ nhớ không khả dụng là một số ví dụ về lỗi thời gian chạy. Khi viết chương trình, có một chuỗi các bước cần tuân theo để giải quyết vấn đề. Phương pháp này được gọi là một thuật toán. Nếu logic của chương trình sai, nó sẽ cho đầu ra không chính xác. Đó là một lỗi được gọi là lỗi logic. Bài viết này thảo luận về sự khác biệt giữa lỗi cú pháp và lỗi logic. Các sự khác biệt chính giữa lỗi cú pháp và lỗi logic là, lỗi cú pháp xảy ra do lỗi cú pháp của một chuỗi ký tự hoặc mã thông báo được viết bằng ngôn ngữ lập trình cụ thể trong khi lỗi logic là lỗi xảy ra do lỗi trong thuật toán chương trình hoặc logic.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Lỗi cú pháp là gì
3. Lỗi logic là gì
4. Điểm giống nhau giữa Lỗi cú pháp và Lỗi logic
5. So sánh cạnh nhau - Lỗi cú pháp so với lỗi logic ở dạng bảng
6. Tóm tắt

Lỗi cú pháp là gì?

Nói chung, các chương trình được viết bằng ngôn ngữ lập trình cấp cao. C, Python, Java là một số ví dụ về ngôn ngữ lập trình cấp cao. Mã nguồn rất dễ đọc và dễ hiểu bởi con người. Những chương trình này không thể hiểu được bằng máy tính. Máy tính chỉ hiểu mã máy. Do đó, chương trình cấp cao được chuyển đổi thành mã máy bằng trình biên dịch. Mỗi ngôn ngữ lập trình có bộ cú pháp riêng để viết chương trình. Lập trình viên nên viết chương trình theo cú pháp đúng. Nếu không, nó sẽ gây ra lỗi. Loại lỗi này được gọi là lỗi cú pháp. Lỗi này xảy ra tại thời điểm biên dịch.

Thật dễ dàng để xác định và loại bỏ lỗi cú pháp vì trình biên dịch hiển thị vị trí và loại lỗi. Khi có lỗi cú pháp, mã nguồn sẽ không được dịch sang mã máy. Do đó, để thực hiện thành công, lập trình viên nên sửa lỗi cú pháp được chỉ định bởi trình biên dịch. Một số ví dụ phổ biến về lỗi cú pháp là thiếu dấu chấm phẩy, thiếu dấu ngoặc nhọn, biến không được khai báo hoặc từ khóa hoặc từ khóa sai chính tả. Nếu lập trình viên chỉ viết int x mà không có dấu chấm phẩy thì đó là lỗi cú pháp. Lỗi chính tả 'int' là lỗi cú pháp. Do đó, cần tuân theo cú pháp liên quan đến ngôn ngữ lập trình khi viết chương trình. Chương trình sẽ không biên dịch cho đến khi lỗi cú pháp được khắc phục. Trong một ngôn ngữ được thông dịch, một lỗi cú pháp được phát hiện trong khi thực hiện chương trình, do đó khó phân biệt các lỗi cú pháp với các lỗi khác.

Lỗi logic là gì?

Một chương trình được viết để giải quyết một vấn đề. Do đó, nó chảy một thuật toán để giải quyết nó. Một thuật toán là một thủ tục từng bước để giải quyết một vấn đề nhất định. Các lỗi xảy ra do lỗi thuật toán được gọi là lỗi logic. Một chương trình có lỗi logic sẽ không khiến chương trình chấm dứt thực thi nhưng đầu ra được tạo ra là sai. Khi xảy ra lỗi cú pháp, rất dễ phát hiện lỗi vì trình biên dịch chỉ định về loại lỗi và dòng xảy ra lỗi. Nhưng xác định một lỗi logic là khó vì không có thông báo trình biên dịch. Đầu ra là sai, ngay cả chương trình thực hiện. Do đó, lập trình viên nên đọc từng câu lệnh và tự xác định lỗi. Một ví dụ về lỗi logic là việc sử dụng sai các toán tử. Nếu lập trình viên sử dụng toán tử chia (/) thay vì nhân (*), thì đó là lỗi logic.

Điểm giống nhau giữa Lỗi cú pháp và Lỗi logic?

  • Cả Lỗi cú pháp và Lỗi logic là các loại lỗi trong lập trình.

Sự khác biệt giữa Lỗi cú pháp và Lỗi logic?

Lỗi cú pháp vs Lỗi logic

Lỗi cú pháp là lỗi trong cú pháp của một chuỗi các ký tự hoặc mã thông báo được viết bằng ngôn ngữ lập trình cụ thể. Lỗi logic là lỗi trong chương trình khiến chương trình hoạt động không chính xác nhưng không chấm dứt bất thường.
 Tần suất xảy ra
Xảy ra lỗi cú pháp do lỗi trong cú pháp chương trình. Xảy ra lỗi logic do lỗi trong thuật toán.
Phát hiện
Trong các ngôn ngữ được biên dịch, trình biên dịch chỉ ra lỗi cú pháp với vị trí và lỗi là gì. Lập trình viên phải tự phát hiện lỗi.
 Sự đơn giản
Việc xác định lỗi cú pháp sẽ dễ dàng hơn. Việc xác định một lỗi logic tương đối khó.

Tóm lược - Cú pháp lỗi vs lỗi logic

Lỗi có thể xảy ra trong khi lập trình. Có nhiều loại lỗi khác nhau. Lỗi thời gian chạy xảy ra trong thời gian chạy. Một số ví dụ về lỗi thời gian chạy là lặn bằng 0, truy cập bộ nhớ không khả dụng. Lỗi cú pháp xảy ra do lỗi cú pháp. Các lỗi logic xảy ra do một lỗi trong logic của chương trình. Sự khác biệt giữa lỗi cú pháp và lỗi logic là lỗi cú pháp xảy ra do lỗi cú pháp của một chuỗi các ký tự hoặc mã thông báo được viết bằng ngôn ngữ lập trình cụ thể trong khi lỗi logic là lỗi xảy ra do lỗi trong chương trình.

Tài liệu tham khảo:

1.PGC Bài giảng: Lỗi & Loại lập trình, Lỗi cú pháp, Lỗi thời gian chạy, Lỗi logic, Người học trực tuyến, ngày 8 tháng 1 năm 2017. Có sẵn tại đây  
2. Lỗi cú pháp. Wikipedia, Wikimedia Foundation, 17 tháng 2 năm 2018. Có sẵn tại đây
3. Lỗi Logic Logic. Wikipedia, Wikimedia Foundation, 27 tháng 2 năm 2018. Có sẵn tại đây