Tijekom faze semantičke analize pojavljuje se ova vrsta pogreške. Ove vrste grešaka otkrivaju se tijekom kompajliranja.
Većina pogrešaka tijekom kompajliranja su pogreške opsega i deklaracije. Na primjer: nedeklarisani ili višestruko deklarirani identifikatori. Tip neusklađen je još jedna pogreška vremena kompajliranja.
Semantička pogreška može nastati korištenjem pogrešne varijable ili korištenjem pogrešnog operatora ili izvođenjem operacija krivim redoslijedom.
Neke semantičke pogreške mogu biti:
- Nekompatibilne vrste operanda
- Nedeklarisana varijabla
- Ne podudaranje stvarnog argumenta s formalnim argumentom
Primjer 1: Upotreba neinicijalizirane varijable:
int i; void f (int m) { m=t; }
U ovom kodu, t nije deklariran i zato prikazuje semantičku pogrešku.
Sridevi
Primjer 2: Nekompatibilnost tipa:
int a = 'hello'; // the types String and int are not compatible
Primjer 3: Greške u izrazima:
String s = '...'; int a = 5 - s; // the - operator does not support arguments of type String