For compiled languages, syntax errors are detected at compile-time. A program will not compile until all syntax errors are corrected. For interpreted languages, however, a syntax error may be detected during program execution, and an interpreter's error messages might not differentiate syntax errors from errors of other kinds.
There is some disagreement as to just what errors are "syntax errors". For example, some would say that the use of an uninitialized variable's value in Java code is a syntax error, but many others would disagree and would classify this as a (static) semantic error.
In 8-bit home computers that used BASIC interpreter as their primary user interface, the SYNTAX ERROR error message became somewhat notorious, as this was the response to any command or user input the interpreter could not parse.
A syntax error may also occur when an invalid equation is entered into a calculator. This can be caused, for instance, by opening brackets without closing them, or less commonly, entering several decimal points in one number.
In Java the following is a syntactically correct statement:
while the following is not:
The second example would theoretically print the variable
Hello World instead of the words "Hello World". However, a variable in Java cannot have a space in between, so the syntactically correct line would be
A compiler will flag a syntax error when given source code that does not meet the requirements of the language's grammar.
Type errors (such as an attempt to apply the ++ increment operator to a boolean variable in Java) and undeclared variable errors are sometimes considered to be syntax errors when they are detected at compile-time. However, it is common to classify such errors as (static) semantic errors instead.
Syntax errors on calculators
A syntax error is one of several types of errors on calculators (most commonly found on scientific calculators and graphing calculators), representing that the equation that has been input has incorrect syntax of numbers, operations and so on. It can result in various ways, including but not limited to:
- An open bracket without closing parenthesis (unless missing closing parenthesis is at very end of equation)
- Using minus sign instead of negative symbol (or vice versa), which are distinct on most scientific calculators. Note that while some scientific calculators allow a minus sign to stand in for a negative symbol, the reverse is less common.
- Having missing numbers in an equation (e.g. "12+×5", missing a number between the + and × signs)
They are not to be confused with math errors (for example, when dividing by 0, or the equation resulting in too large of a number to be displayed). Most non-scientific calculators do not have distinction between different forms of errors (often shown by an E), mainly because there is less flexibility allowed in input (preventing syntax errors). Some calculators (particularly scientific calculators) also have other types of errors, such as stack errors.
- Issue of syntax or semantics?
- Semantic Errors in Java
- Aho, Alfred V.; Monica S. Lam; Ravi Sethi; Jeffrey D. Ullman (2007). Compilers: Principles, Techniques, and Tools (2nd ed.). Addison Wesley. ISBN 978-0-321-48681-3. Section 4.1.3: Syntax Error Handling, pp.194–195.
- Louden, Kenneth C. (1997). Compiler Construction: Principles and Practice. Brooks/Cole. ISBN 981-243-694-4. Exercise 1.3, pp.27–28.