Syntax Error: error due to missing colon, semicolon, parenthesis, etc. Syntax is the way in which we construct sentences by following principles and rules.
Example: In C++, it would be a syntax error to say
int x = "five";
This will not compile because it does not follow the syntax of the language and does not make any sense to the compiler.
Semantic Error: it is a logical error. it is due to wrong logical statements. Semantics is the interpretations of and meanings derived from the sentence transmission and understanding of the message. Semantics errors are Logical, while Syntax errors are code errors.
Example: A semantic error would compile, but be incorrect logically:
const int pi = 12345;
Your program will likely compile and run without error but your results will be incorrect. (Note that these types of errors are usually much harder to debug)
Chat with our AI personalities
A semantic error is one related to the meaning of something. For example, a syntactically perfect statement made in the wrong context is a semantic error which may be detected at compile-time. On the other hand, misinterpreting a variable of a generic type (e.g. int) as a temperature value in Kelvin when it really holds units of Celsius is a semantic error which may not be detected at compile-time.
A logic error is one that refers to an incorrect program logic. For example, the following pseudocode snippet contains a logic error:
if (a > b) {
print("a is greater than b"); } else { print("a is less than b");}
(The error is that the second branch is true if a is less than or equal to b.)
Most compilers detect only few logic errors, but some sophisticated tools exist which can subject source code to very thorough examination, allowing the detection of such errors with a higher probability at compile-time. PC-Lint is an example for such a (commercial) tool.
A semantic error is a logic error. That is, the code may compile and run, but does not perform as you intended. Some semantic errors can be picked up by the compiler, often shown as warning, such as: if (x = 5) // warning: did you mean x == 5? Others are simply impossible for the compiler to spot: int x, y, z; // ... ++z; // add 1 to x In the above code, we meant to increment x, but incremented z instead. The compiler won't notice the error so this will inevitably lead to a runtime error.
scores = [51, 47, 53, 97, 27]summation = 0.0for score in scores:summation *= score # Semantic Error.average = summation / len(scores)print average # Isn't average. average == 0
Logical errors :- These errors occur because of logically incorrect instructions in the program. Let us assume that in a 1000 line program, if there should be an instruction, which multiplies two numbers and is wrongly written to perform addition. This logically incorrect instruction may produce wrong results. Detecting such errors are difficult.
The program doesn't work properly, e.g. generates invalid output.
Logical errors are grammatical errors or mistakes made by a programmer in java, it may not affect the program design but it can change the context of the statements.