Semanttinen virhe

Tämäntyyppinen virhe ilmenee semanttisen analyysin vaiheessa. Tämäntyyppiset virheet havaitaan käännösvaiheessa.

Suurin osa käännösaikavirheistä on laajuus- ja ilmoitusvirheitä. Esimerkiksi: ilmoittamattomia tai useita ilmoitettuja tunnisteita. Tyyppi mismatched on toinen käännösaikavirhe.

Semanttinen virhe voi syntyä käyttämällä väärää muuttujaa tai käyttämällä väärää operaattoria tai tekemällä toiminto väärässä järjestyksessä.

Jokin semanttinen virhe voi olla:

  • Yhteensopimattomat operandityypit
  • Ilmoittamaton muuttuja
  • Varsinaisen argumentin ja muodollisen argumentin yhteensopimattomuus

Esimerkki 1: Alustamattoman muuttujan käyttö:

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

Tässä koodissa t on ilmoittamaton, minkä vuoksi se näyttää semanttisen virheen.

Esimerkki 2: Tyyppi yhteensopimattomuus:

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

Esimerkki 3: Virheet lausekkeissa:

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