Lỗi cú pháp là gì? Lỗi cú pháp trong chương trình nguồn được phát hiện khi nào mới nhất 2022

Ngôn ngữ máy tính có các quy tắc thực sự nghiêm ngặt và lỗi cú pháp (syntax error) có nghĩa là bạn đã phá vỡ một trong số những quy tắc đó. Cú pháp tồn tại trong cả ngôn ngữ thông thường. Đó là cách các từ được sắp xếp để tạo thành những câu có nghĩa.

Trong khi con người có thể thích nghi và cấu trúc một câu theo nhiều cách mà vẫn đảm bảo câu đó có nghĩa, thì máy tính cần những hướng dẫn cực kỳ chính xác. Nếu chúng ta phá vỡ các quy tắc dù chỉ là một chút, một lệnh vẫn có thể có ý nghĩa đối với con người, nhưng máy tính sẽ không thể thể giải nghĩa được nó.

Thông báo lỗi cú pháp

Cú pháp trong ngôn ngữ của con người

Tưởng tượng ai đó nói với bạn một câu tiếng Anh với nội dung như sau: “I saw a woman over there with a telescope”. Có rất nhiều cách bạn có thể diễn giải câu này:

  • “Using a telescope, I observed a woman who was over there.” (Sử dụng kính viễn vọng, tôi quan sát thấy một người phụ nữ ở đằng kia).
  • “I observed a woman, who was over there, and she had a telescope.” (Tôi quan sát thấy một người phụ nữ ở đằng kia và cô ấy có một chiếc kính viễn vọng).
  • “I observed a woman and a telescope, they were both over there.” (Tôi quan sát thấy một người phụ nữ và một chiếc kính viễn vọng, cả hai đều ở đằng kia).
  • “I was over there and I observed a woman who had a telescope.” (Tôi ở đằng kia và quan sát thấy một người phụ nữ có kính viễn vọng).
  • “Sometimes, I go over there and saw a woman using a telescope.” (Thỉnh thoảng, tôi đi đến đó và thấy một người phụ nữ sử dụng kính viễn vọng).

Bởi vì bạn là con người, bạn có thể áp dụng bối cảnh cho câu này. Dựa vào vị trí của từ “over there” và có thể là có thông tin nào trước đó liên quan đến kính viễn vọng, bạn sẽ giả định được cách giải thích thứ nhất hoặc thứ hai là chính xác.

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

Trong khoa học máy tính, một lỗi cú pháp (tiếng Anh: syntax error) là một lỗi về cú pháp của một chuỗi các ký tự hoặc dấu hiệu được dự định viết trong thời gian biên dịch. Một chương trình sẽ không biên dịch cho đến khi tất cả các lỗi cú pháp được sửa lại. Tuy nhiên, đối với các ngôn ngữ được thông dịch, một lỗi cú pháp có thể được phát hiện trong khi thực hiện chương trình và các thông báo lỗi của trình thông dịch có thể không phân biệt các lỗi cú pháp với các lỗi khác.

Lỗi cú pháp trong chương trình nguồn được phát hiện khi nào?

Có một số ý kiến bất đồng khi nói xem những lỗi nào là “lỗi cú pháp”. Ví dụ, một số người cho rằng việc sử dụng giá trị của một biến chưa được khởi tạo trong ngôn ngữ Java là một lỗi cú pháp, nhưng nhiều người khác không đồng ý[1][2] và phân loại đây là lỗi ngữ nghĩa tĩnh.

Trong các máy tính gia đình 8-bit sử dụng trình thông dịch BASIC làm giao diện người dùng chính, tin nhắn lỗi

SYNTAX ERROR trở nên có phần nổi tiếng, vì đây là phản hồi cho bất kỳ lệnh hoặc đầu vào nào của người dùng mà trình thông dịch không thể phân tích được cú pháp.

Lỗi cú pháp cũng có thể xảy ra khi một phương trình không hợp lệ được nhập vào máy tính bỏ túi. Ví dụ, lỗi này có thể bị xảy ra khi mở ngoặc mà không đóng ngoặc, hoặc ít phổ biến hơn là nhập nhiều dấu phẩy vào một số.

Sau đây là một câu lệnh Java đúng về mặt cú pháp:

System.out.println("Hello World");

trong khi câu lệnh sau đây thì không:

System.out.println(Hello World);

Về mặt lý thuyết, ví dụ thứ hai sẽ in biến Hello World thay vì từ Hello World. Tuy nhiên, một biến trong Java không thể có khoảng trắng ở giữa, vì vậy dòng lệnh đúng về mặt cú pháp sẽ là System.out.println(Hello_World).

Một trình biên dịch sẽ gắn cờ một lỗi cú pháp khi mã nguồn được cung cấp không đáp ứng các yêu cầu của ngữ pháp ngôn ngữ đó.

Lỗi định kiểu (chẳng hạn như cố gắng dùng toán tử tăng ++ cho biến luận lý (boolean) trong Java) và lỗi biến không khai báo đôi khi được coi là lỗi cú pháp khi chúng được phát hiện tại thời điểm biên dịch. Tuy nhiên,người ta thường phân loại các lỗi đó là các lỗi ngữ nghĩa tĩnh.[2][3][4]

Lỗi cú pháp ở máy tính bỏ túi

220px

Lỗi cú pháp trong một máy tính khoa học

Lỗi cú pháp là một trong số các loại lỗi trên máy tính bỏ túi (thường thấy trên máy tính khoa học và máy tính vẽ đồ thị), biểu thị rằng đầu vào đã được nhập có cú pháp không chính xác về số, phép toán, v.v.. Nó có thể xảy ra theo nhiều cách khác nhau, bao gồm nhưng không giới hạn ở:

  • Một dấu ngoặc mở mà không có dấu đóng ngoặc tương ứng (trừ trường hợp ở cuối phương trình thì không cần thiết)
  • Sử dụng dấu trừ thay vì dấu âm (hoặc ngược lại), điều này khác biệt trên hầu hết các máy tính khoa học.Lưu ý rằng trong khi một số máy tính khoa học cho phép dấu trừ thay cho dấu âm, dấu âm ít khi dùng thay được cho dấu trừ..
  • Thiếu số trong một phép tính (ví dụ: “12×+5” bị thiếu một số giữa dấu × và +)

Chúng không nên bị nhầm lẫn với các lỗi toán học (ví dụ như lỗi chia cho 0 hoặc phương trình có kết quả quá lớn để máy có thể hiển thị được). Hầu hết các máy tính phi khoa học (không phải máy tính khoa học) không có sự phân biệt giữa các dạng lỗi khác nhau (thường được hiển thị bằng chữ E), chủ yếu là do đầu vào kém linh hoạt hơn (để ngăn chặn lỗi cú pháp). Một số máy tính (đặc biệt là máy tính khoa học) cũng có các loại lỗi khác, chẳng hạn như lỗi ngăn xếp (stack error) và lỗi đối số (argument error).

Phải làm gì nếu bạn gặp lỗi cú pháp?

Lỗi cú pháp trong code

Nếu code của bạn không thành công do lỗi cú pháp, có một số điều bạn có thể làm để gỡ lỗi cho code của mình.

1. Bạn cần tìm ra chính xác lỗi cú pháp ở đâu. Trong nhiều ngôn ngữ, bạn sẽ nhận được thông báo lỗi chi tiết, cho bạn biết lỗi ở đâu trong code. Nếu bạn biết hướng dẫn nào có lỗi, bạn có thể kiểm tra tài liệu để biết ví dụ về cú pháp đúng.

2. Nếu bạn không chắc vấn đề ở đâu, bạn có thể thử chia code thành các phần nhỏ hơn, xem liệu mỗi phần có hoạt động đúng không và xác định phần nào chứa lỗi. Lặp đi lặp lại quá trình này có thể xác định vấn đề ở đâu và khắc phục nó.

3. Nếu bạn cần gỡ lỗi nhiều code web, có thể đáng để xem xét việc sử dụng các công cụ dành cho nhà phát triển.

Xem thêm

  • Xúp thẻ

Tham khảo

  1. ^ Issue of syntax or semantics?
  2. ^ a ă Semantic Errors in Java
  3. ^

     

    Aho, Alfred V.; Monica S. Lam; Ravi Sethi; Jeffrey D. Ullman (2007). Compilers: Principles, Techniques, and Tools (ấn bản 2). Addison Wesley. ISBN 978-0-321-48681-3.

  4. ^ Louden, Kenneth C. (1997). Compiler Construction: Principles and Practice. Brooks/Cole. ISBN 981-243-694-4. Exercise 1.3, pp.27–28.


Lấy từ “https://vi.wikipedia.org/w/index.php?title=Lỗi_cú_pháp&oldid=64221092”

Từ khóa: Lỗi cú pháp

lỗi cú pháp trong chương trình nguồn được phát hiện khi
lỗi cú pháp là gì
sai cú pháp là gì
phân biệt lỗi cú pháp và lỗi ngữ nghĩa
lỗi ngữ nghĩa được phát hiện khi nào
lỗi cú pháp trong lập trình gọi là gì
lỗi cú pháp
chương trình có lỗi cú pháp có thể được dịch ra ngôn ngữ máy nhưng không thực hiện được
trong quá trình dịch lỗi nào được phát hiện
chương trình dịch có thể phát hiện ra lỗi cú pháp và lỗi ngữ nghĩa
sửa lỗi cú pháp cho chương trình trên nếu có
cú pháp là gì

LADIGI – Công ty dịch vụ SEO Web giá rẻ, SEO từ khóa, SEO tổng thể cam kết lên Top Google uy tín chuyên nghiệp, an toàn, hiệu quả.

Scores: 5 (82 votes)

Có thể bạn quan tâm  Tống Anh Hào là gì? Chi tiết về Tống Anh Hào mới nhất 2021

100 lần tự tìm hiểu cũng không bằng 1 lần được tư vấn