Синтакса и семантика програмских језика



Постоје две врсте језика: природни и вештачки. Природни језици се користе у свакодневној комуникацији људи, али су неупотребљиви када се ради о комуникацији међу машинама или човека и машине. Због тога можемо говорити о вештачким језицима који управо због тога постоје. Један тип вештачких језика јесте програмски језик.


Програмски језик и рачунарски програм




Програмски језик је вештачки језик који нам омогућава задавање инструкција рачунару на њему разумљив начин.

Инструкција коју задајемо рачунару помоћу програмског језика је рачунарски програм.

Рачунарски програм је опис алгоритма у неком програмском језику.





Синтакса и семантика

Да бисмо формирали програмски језик, односно његове конструкције, треба да постоји скуп правила на основу којих је то могуће. Тај скуп правила назива се синтакса програмског језика. Применом синтаксних правила утврђујемо да ли је одређена конструкција правилна.

Као што су код природног језика слова, речи и реченице, тако су код програмског језика симболи, лексеме и изрази.
Синтаксне грешке су: погрешно откуцана реч, спојене две речи и сл.

За разлику од синтаксе која се односи на изглед конструкција одређеног програмског језика, семантика одређује значење конструкција, односно програма у целини.
Семантичке грешке су логичког типа и тичу се разумевања тога како програм функционише.

Покажимо на примеру разлику у синтакси два програмска језика исте семантике. У питању су делови програма који омогућавају исписивање текста ,,Здраво свете!" на прозору рачунара.





Подела програмских језика

Програмске језике можемо разврстати на основу више различитих критеријума.

I Прва подела је врло природна и везана је за генерацију рачунара.

Слика 1.6. Дијаграм поделе програмских језика према генерацији


II Следећа подела програмских језика је према њиховој усмерености.

Слика 1.7. Дијаграм поделе програмских језика према усмерености

1) Машински језик је скуп инструкција које један процесор може директно, без превођења, да изврши. Најнижи тип програмског језика јесте машински језик. Изграђен је над бинарном азбуком (0,1). Инструкције су шаблони битова, где сваки шаблон одговара одређеној команди која се задаје машини. Није га потребно преводити јер сваки модел централног процесора има сопствени машински језик или сет инструкција.

2) Језици оријентисани машини су асемблери. Асемблер је нижи симболички програмски језик који машински језик представља у облик читљив људима. Свака инструкција у асеблеру представља једну инструкцију машинског језика. Захваљујући асемблерима програмер не мора директно да кодира машинске инструкције у одговарајући бинарни код и слично.

Слика 1.8. Пример асемблера

3) Језици оријентисани проблемима су виши програмски језици и они уважавају начин људског мишљења. Свака програмска наредба се мора превести у низ машинских инструкција. Они су ближи природном језику, читљивији и лакши за писање програма.
На следећој слици налазе се имена неких од програмских језика, а за заинтересоване се комплетна листа програмских језика налази овде.

Слика 1.9. Неки програмски језици