Under den semantiska analysfasen uppstår denna typ av fel. Dessa typer av fel upptäcks vid kompilering.
De flesta av kompileringstidsfelen är omfattning och deklarationsfel. Till exempel: odeklarerade eller flera deklarerade identifierare. Typ som inte matchar är ett annat kompileringstidsfel.
Det semantiska felet kan uppstå när man använder fel variabel eller använder fel operator eller gör operationen i fel ordning.
Några semantiska fel kan vara:
- Inkompatibla typer av operander
- Odeklarerad variabel
- Inte matchning av faktiska argument med formellt argument
Exempel 1: Användning av en icke-initierad variabel:
int i; void f (int m) { m=t; }
I den här koden är t odeklarerat och det är därför det visar det semantiska felet.
Exempel 2: Typinkompatibilitet:
int a = 'hello'; // the types String and int are not compatible
Exempel 3: Fel i uttryck:
String s = '...'; int a = 5 - s; // the - operator does not support arguments of type String