電腦科學中,語法錯誤是指程式語法英語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]

相關條目

參考資料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.