Programozási nyelvek alapfogalmai Szintaxis és Szemantika
Szintaxis Az a szabályrendszer, amely meghatározza, hogy az adott nyelvben hogyan lehet az egyes nyelvi elemeket, utasításokat létrehozni. Meghatározza a nyelv tágabb értelemben vett ábécéjét, a fenntartott szavakat (kulcsszavakat), és megadja a nyelvi elemek felépítési szabályait. A programozási nyelv fordítójának szintaktikai elemzője ellenőrzi. nyelvi elemek felépítési szabályai - amelyeket a nyelv fordítójának szintaktikai elemzője ellenőriz A nyelv szintaxisának leírására a metanyelvek szolgálnak.
Szintaxis elemei ábécé fenntartott szavak betűk: a,b,c,…, A,B,C,… számjegyek : 0,1,…9 szimbólumok: + - * / = : … jelek: pont, vessző, szóköz, zárójelek… fenntartott szavak a nyelvbe beépített szavak, amik másra nem használhatók kulcsszavak: utasításkészlet a program végrehajtásának irányítására (pl. elágazás, ismétlődés) egyéb fenntartott szavak:, pl.: beépített típusok neve, kiírás és beolvasás utasításai kulcsszavak: utasításkészlet -> program végrehajtásának az irányításánál az elágazások és ismétlődések előírására Jele: _ ; C# Azonosítók: max. 32 karakter első: betű vagy _ utána: betű vagy számjegy Megjegyzések: Több soros: /* … */ Egy soros: //…
Szintaxis elemei nyelvi elemek felépítési szabályai az általunk létrehozott azonosítókra vonatkozik pl.: csak betűkből és számjegyekből állhat, csak betűvel kezdődhet, egyedi legyen
Szintaxis megadása – Szintaxis-leíró nyelv A nyelv összes elemét definiálja a következő jelek segítségével: < > új fogalom ::= új fogalom definiálása { } ismétlés | vagylagosság BNF nyelv (Backus Naur Form)
Szintaxis megadása – Szintaxis-leíró nyelv Példák: <betű>::= a | b | … | z | A | B | … | Z <számjegy>::= 0 | 1 | … | 9 <azonosító>::=<betű>{<betű>|<számjegy>} <adat>::=<azonosító>|<konstans> <művelet>::= + | - | * | / | ^ <kifejezés>::=<adat>|<adat><művelet><adat> BNF nyelv (Backus Naur Form)
Szintaxis megadása – Szintaxis-gráf Példa: azonosító azonosító betű számjegy : BNF nyelv (Backus Naur Form)
Szemantika A nyelv szintaxisa által meghatározott szavak jelentését definiáló szabályok összessége. Egy kódrészlet szemantikája a kódrészlet által végrehajtott feladat. Ha egy változót átnevezünk egy új, még nem használt névre (az összes előfordulása helyén), akkor a program szemantikája nem változik. Szemantikai hiba ha a szintaktikailag helyes program ad helytelen eredményt, azaz az utasítások sorrendje helytelen, vagy hiányos. A fordítóprogram nem tudja ellenőrizni.