logo

Semantinė klaida

Semantinės analizės fazėje atsiranda tokio tipo klaidų. Tokio tipo klaidos aptinkamos kompiliavimo metu.

Dauguma kompiliavimo laiko klaidų yra apimties ir deklaracijos klaidos. Pavyzdžiui: nedeklaruoti arba keli deklaruoti identifikatoriai. Tipas nesutapimas yra dar viena kompiliavimo laiko klaida.

Semantinė klaida gali atsirasti naudojant netinkamą kintamąjį arba naudojant netinkamą operatorių arba atliekant operaciją neteisinga tvarka.

Kai kurios semantinės klaidos gali būti:

  • Nesuderinami operandų tipai
  • Nedeklaruojamas kintamasis
  • Faktinio argumento nesutapimas su formaliu argumentu

1 pavyzdys: Neinicijuoto kintamojo naudojimas:

 int i; void f (int m) { m=t; } 

Šiame kode t yra nedeklaruojamas, todėl rodoma semantinė klaida.

2 pavyzdys: Tipų nesuderinamumas:

 int a = 'hello'; // the types String and int are not compatible 

3 pavyzdys: Klaidos išraiškose:

 String s = '...'; int a = 5 - s; // the - operator does not support arguments of type String