logo

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:

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