Under den semantiske analysefasen dukker denne typen feil opp. Denne typen feil oppdages ved kompilering.
De fleste av kompileringstidsfeilene er omfang og deklarasjonsfeil. For eksempel: uoppgitte eller flere deklarerte identifikatorer. Type mismatched er en annen kompileringstidsfeil.
Den semantiske feilen kan oppstå ved å bruke feil variabel eller bruke feil operator eller utføre operasjoner i feil rekkefølge.
Noen semantiske feil kan være:
- Inkompatible typer operander
- Ikke deklarert variabel
- Ikke samsvar mellom faktisk argument og formelt argument
Eksempel 1: Bruk av en ikke-initialisert variabel:
int i; void f (int m) { m=t; }
I denne koden er t ikke deklarert, det er derfor den viser den semantiske feilen.
Eksempel 2: Typeinkompatibilitet:
int a = 'hello'; // the types String and int are not compatible
Eksempel 3: Feil i uttrykk:
String s = '...'; int a = 5 - s; // the - operator does not support arguments of type String