Während der Phase der semantischen Analyse tritt diese Art von Fehler auf. Diese Fehlertypen werden zur Kompilierzeit erkannt.
Bei den meisten Fehlern bei der Kompilierung handelt es sich um Bereichs- und Deklarationsfehler. Zum Beispiel: nicht deklarierte oder mehrfach deklarierte Bezeichner. „Typ nicht übereinstimmend“ ist ein weiterer Fehler bei der Kompilierung.
Der semantische Fehler kann durch die Verwendung der falschen Variablen oder des falschen Operators oder durch die Ausführung der Operation in der falschen Reihenfolge entstehen.
Einige semantische Fehler können sein:
- Inkompatible Operandentypen
- Nicht deklarierte Variable
- Keine Übereinstimmung des tatsächlichen Arguments mit dem formalen Argument
Beispiel 1: Verwendung einer nicht initialisierten Variablen:
int i; void f (int m) { m=t; }
In diesem Code ist t nicht deklariert, weshalb der semantische Fehler angezeigt wird.
Beispiel 2: Typinkompatibilität:
int a = 'hello'; // the types String and int are not compatible
Beispiel 3: Fehler in Ausdrücken:
String s = '...'; int a = 5 - s; // the - operator does not support arguments of type String