跳转到内容

语法错误

本页使用了标题或全文手工转换
维基百科,自由的百科全书
工程计算机上显示的语法错误讯息

计算机科学中,语法错误是指程序语法英语Syntax (programming languages)有误,编译器解译器词法分析时无法将其转换为适当的程式语言。

编译语言中,语法错误一定只在编译期时出现,编译器要所有的语法都正确,才能正确编译。不过直译语言中的语法错误可能要到执行期才会出现,而且不一定容易区分语法错误及语意错误

对于哪些错误算是语法错误,目前还没有共识。例如有人会认为在Java程式里使用未定义变数算是语法错误,但有些人则不认为[1][2],认为这是静态的语意错误。

早期8位元家用电脑的使用者介面是BASIC直译器,SYNTAX ERROR错误讯息英语error message常造成使用者的困扰,只要直译器无法识别用户的输入,就会出现此一讯息。语法错误可能是因为输入的算式不正确,例如算式中有左括号但没有右括号、或是一个数字中有多个小数点等。

Java语言中,以下的程式是正确的:

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

以下的程式不正确:

System.out.println(Hello World);

第二个程式理论上要显示的是叫作Hello World的变数,而不是Hello World这个字,且Java语言的变数名称中不可有空白,因此会出现语法错误。

编译器会标示程式中有语法错误的行,可能也会有简单的说明。

型态错误(例如在Java中对布林变数作++递增运算)或是未宣告的变数,若在编译时发现,有时会视为是语法错误。不过也常将这类错误归类为静态语意错误[2][3][4]

相关条目

[编辑]

参考资料

[编辑]
  1. ^ Issue of syntax or semantics?. [2024-04-02]. (原始内容存档于2016-09-23). 
  2. ^ 2.0 2.1 Semantic Errors in Java. [2024-04-02]. (原始内容存档于2016-08-18). 
  3. ^ Aho, Alfred V.; Monica S. Lam; Ravi Sethi; Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools需要免费注册 2nd. Addison Wesley. 2007. ISBN 978-0-321-48681-3.  Section 4.1.3: Syntax Error Handling, pp.194–195.
  4. ^ Louden, Kenneth C. Compiler Construction: Principles and Practice. Brooks/Cole. 1997. ISBN 981-243-694-4.  Exercise 1.3, pp.27–28.