语法错误

在計算機科學中，语法错误是指程序的有誤，編譯器或解譯器在詞法分析時無法將其轉換為適當的程式語言。

在編譯語言中，语法错误一定只在編譯期時出現，編譯器要所有的語法都正確，才能正確編譯。不過直譯語言中的语法错误可能要到執行期才會出現，而且不一定容易區分语法错误及語意錯誤。

對於哪些錯誤算是语法错误，目前還沒有共識。例如有人會認為在Java程式裡使用未定義變數算是語法錯誤，但有些人則不認為，認為這是靜態的語意錯誤。

早期8位元家用電腦的使用者介面是BASIC直譯器，SYNTAX ERROR常造成使用者的困擾，只要直譯器無法識別用戶的輸入，就會出現此一訊息。语法错误可能是因為輸入的算式不正確，例如算式中有左括號但沒有右括號、或是一個數字中有多個小數點等。

在Java語言中，以下的程式是正確的：
System.out.println("Hello World");

以下的程式不正確：
System.out.println(Hello World);

第二個程式理論上要顯示的是叫作Hello World的變數，而不是Hello World這個字，且Java語言的變數名稱中不可有空白，因此會出現語法錯誤。

編譯器會標示程式中有语法错误的行，可能也會有簡單的說明。

型態錯誤（例如在Java中對布林變數作++遞增運算）或是未宣告的變數，若在編譯時發現，有時會視為是语法错误。不過也常將這類錯誤歸類為靜態語意錯誤 Section 4.1.3: Syntax Error Handling, pp.194–195. Exercise 1.3, pp.27–28.。

相關條目
語意錯誤

參考資料

Category:计算机错误

Category:程序设计语言理论
Category:程序设计语言语法