来自维基百科,自由的百科全书
在电脑科学中,语法错误是指程序的语法有误,编译器或解译器在词法分析时无法将其转换为适当的编程语言。
此条目内容疑欠准确,有待查证。 (2015年7月26日) |
在编译语言中,语法错误一定只在编译期时出现,编译器要所有的语法都正确,才能正确编译。不过解释型语言中的语法错误可能要到执行期才会出现,而且不一定容易区分语法错误及语义错误。
对于哪些错误算是语法错误,目前还没有共识。例如有人会认为在Java程序里使用未定义变量算是语法错误,但有些人则不认为[1][2],认为这是静态的语义错误。
早期8位家用电脑的用户界面是BASIC解释器,SYNTAX ERROR错误消息常造成用户的困扰,只要解释器无法识别用户的输入,就会出现此一消息。语法错误可能是因为输入的算式不正确,例如算式中有左括号但没有右括号、或是一个数字中有多个小数点等。
在Java语言中,以下的程序是正确的:
System.out.println("Hello World");
以下的程序不正确:
System.out.println(Hello World);
第二个程序理论上要显示的是叫作Hello World的变量,而不是Hello World这个字,且Java语言的变量名称中不可有空白,因此会出现语法错误。
编译器会标示程序中有语法错误的行,可能也会有简单的说明。
类型错误(例如在Java中对布尔变量作++递增运算)或是未宣告的变量,若在编译时发现,有时会视为是语法错误。不过也常将这类错误归类为静态语义错误[2][3][4]。
Seamless Wikipedia browsing. On steroids.