計算機科學中,语法错误是指程序語法英语Syntax (programming languages)有誤,編譯器解譯器詞法分析時無法將其轉換為適當的程式語言。

工程計算機上顯示的语法错误訊息

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

對於哪些錯誤算是语法错误,目前還沒有共識。例如有人會認為在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]

相關條目

编辑

參考資料

编辑
  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.

📚 Artikel Terkait di Wikipedia

ChatGPT

They'd pick up on many symptoms of hallucination, but not all. Accuracy errors that creep in are difficult to catch.  Gao, Leo; Schulman; Hilton, Jacob

HTML5

from HTML4. W3C. 2010-10-19 [2010-12-04]. (原始内容存档于2012-06-07).  1.9.2 Syntax Errors. HTML5. 2010-11-16 [2010-12-04]. (原始内容存档于2012-06-07).  HTML 4 Errata

神经语言学

Pulvermüller, Friedemann; Shtyrov, Yury; Hasting, Anna S.; Carlyon, Robert P. Syntax as a reflex: Neurophysiological evidence for early automaticity of grammatical

智能代码补全

1996 building on many already invented concepts of code completion and syntax checking, with the Visual Basic 5.0 Control Creation Edition, which was

Haskell

(n+1) = (n+1) * fact n的定义)。引入了语言级编译选项语法扩展(Language-Pragma-Syntax-Extension),使得在Haskell源代码中可以明确要求一些扩展功能。Haskell 2010引入的这些扩展的名字是DoAndIfThe

濫用符號

,或引導讀者明白其直觀意義(英语:Mathematical intuition),同時減少犯錯和增進理解。不過,符號是否嚴格使用,或句法(英语:syntax (logic))上是否正確,很視乎時代和學科背景。某些用法,在某些場合算為濫用,在另一種背景下卻是嚴格正確。某理論在嚴格化前,若已引入新的符號

語言模塊

Dapretto, M., & Bookheimer, S. Y. (1999). Form and content: Dissociating syntax and semantics in sentence comprehension (页面存档备份,存于互联网档案馆). Neuron, 24, 427–32

空中客车A380订单列表

columns:1 top:50 - PlotData definition invalid. Invalid attribute 'top' found. Syntax: 'PlotData = [align:..] [anchor:..] [at:..] [bar:..] [barset:..] [color: