Да би на неком рачунару написали, превели и извршили програм, неопходно је дефинисати шта су исправни програми и шта раде наредбе унутар тих програма. Лексика се бави описивањем основних градивних елемената програмских језика, а синтакса начинима за комбиновање тих основних елемената у исправне програме. Питањем значења програма бави се семантика програмских језика. Лексика, синтакса и семантика изучавају се и за природне језике.
Основни лексички елементи природних језика су речи, при чему се разликује неколико различитих врста речи (нпр. именице, глаголи, придеви…), где речи могу имати различите облике (нпр. падеже, времена…). Задатак лексичке анализе природног језика је да идентификује речи у реченици и сврста их у одговарајуће категорије. Програми су представљени низовима карактера. Појединачни карактери се групишу у недељиве целине које представљају основне лексичке елементе програма. На пример:
if (a < 1) b = 2;
У овом кôду, разликују се: кључна реч if , заграде ( и ), оператори < и =, променљиве a и b, вредности 1 и 2 и интерпункција ;. Лексиком програма бави се део преводиоца који се назива лексички анализатор.
Синтакса одређује начине на које појединачне речи могу да креирају исправне реченице природних језика, односно, исправне програме у случају програмских језика. Синтакса дефинише релације између елемената програмског језика, тиме пружајући описе исправних програма. Синтакса се бави само формом и структуром програмског језика без разматрања значења. У литератури, синтакса програмског језика представља се одређеним метајезицима, Бекусовом нотацијом, синтаксним дијаграмима или бинарним стаблима. На пример, бинарно стабло за кôд у претходном примеру можемо представити на следећи начин:

Бинарно стабло за кôд у претходном примеру
Синтаксом програма бави се део преводиоца који се назива синтаксни анализатор.
Семантика придружује значења синтакно исправним елементима језика, односно, у случају програмских језика, за дати програм описује акције дефинисане тим програмом. За претходни пример може се придружити значење:
Ако је вредност променљиве a мања од 1, онда променљивој b треба доделити вредност 2.
Неке семантичке коректности програма се могу проверити током превођења програма (статичка семантика), док се друге могу открити тек у фази извршавања програма (динамичка семантика).
Прагматика језика говори о изражајности језика и о односу различитих начина за исказивање истих ствари. Прагматика програмских језика бави се питањима попут лакоће програмирања, методологији програмирања, ефикасности у примени итд.
ПИТАЊА ЗА ПРОВЕРУ ЗНАЊА:
1. Чиме се бави лексика програмских језика.
2. Чиме се бави синтакса програмских језика.
3. Чиме се бави семантика програмских језика.
ДОМАЋИ ЗАДАТАК:
/
Неовлашћено коришћење ових садржаја, без претходне писмене сагласности аутора, сматра се кршењем Закона о ауторским и сродним правима!
You must be logged in to post a comment.