A szemantikai elemzés fázisában ez a fajta hiba jelentkezik. Az ilyen típusú hibákat a rendszer a fordítás során észleli.
A legtöbb fordítási idő hiba hatókör- és deklarációs hiba. Például: nem bejelentett vagy többszörösen deklarált azonosítók. A nem egyező típus egy másik fordítási időbeli hiba.
A szemantikai hiba előfordulhat rossz változó használatával vagy rossz operátor használatával, vagy rossz sorrendben végzett műveletekkel.
Néhány szemantikai hiba lehet:
- Nem kompatibilis típusú operandusok
- Nem deklarált változó
- Nem egyeztethető össze a tényleges érvelés a formális érvvel
1. példa: Nem inicializált változó használata:
int i; void f (int m) { m=t; }
Ebben a kódban a t nem deklarált, ezért a szemantikai hibát mutatja.
2. példa: Típus-összeférhetetlenség:
int a = 'hello'; // the types String and int are not compatible
3. példa: Hibák a kifejezésekben:
String s = '...'; int a = 5 - s; // the - operator does not support arguments of type String