Szemantika
A Programozás Wiki wikiből
Egy kódrészlet szemantikájának (jelentésének) a kódrészlet által végrehajtott feladatot nevezzük. Például a a := b+c; Pascal utasításnak ugyanaz a szemantikája, mint a a = b+c; C utasításnak. Ha egy változót vagy függvényt átnevezünk egy új, még nem használt névre (beleértve az összes hívás helyét), akkor a program szemantikája nem változik.
Szemantikai hibának nevezzük az olyan esetet amikor a programunk írásakor bár betartjuk az adott nyelv szabályait, a programunk mégis helytelen eredményt produkál. (Nem az a jelentése, mint amit szerettünk volna.) Például megírunk egy egyszerű programot, a programunk szintaktikailag helyes, viszont az utasítások sorozata a megoldandó probléma megoldásának szempontjából helytelen.
Például Pascalban töltsünk fel egy rekord típusú változót, majd írassuk ki az eredményt. A rekord típusnak két mezeje legyen név és sorszám. Ebben a példában szándékosan vétünk szemantikai hibát.
Program szemantikai_hiba; Uses Crt; Type newRecordType = Record name:String; num:Byte; End; Var person: newRecordType; Begin {person feltöltése adatokkal} With person Do Begin Write('Give me the name of the person: '); {pl: Móricka} ReadLn(name); Write('And last, add a new number to that: '); {pl: 13} ReadLn(num); End; {szemantikai hiba szándékosan} WriteLn('Name: ', person.num); WriteLn('Num : ', person.name); ReadLn; End.
A program futásának eredménye:
Give me the name of the person: Móricka And last, add a new number to that: 13 Name: 13 Num : Móricka