Основни појмови о програмским језицима

Језик представља скуп правила за комуникацију између субјеката. Помоћу језика се представљају и преносе информације. Из тога можемо закључити да програмски језик служи за комуникацију између човека и рачунара – човек у рачунар уноси текст (програм) на програмском језику, са циљем да рачунар изврши инструкције задате у том тексту.

Програмски језик можемо дефинисати као скуп речи и правила које се користе за писање рачунарских програма, који служе за опис послова које треба да обави рачунар.

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

Програмске језике можемо поделити на више начина и у више категорија у зависности од критеријума на основу којег вршимо поделу. Најчешћа подела је према степену блискости са архитектуром рачунара где програмске језике делимо на језике ниског (машински и асемблерски) и високог нивоа (C, C++, Java, C#…). Језици ниског нивоа подразумевају блискост са хардвером, док језици високог нивоа, захваљујући преводиоцима, не зависе од хардвера већ се могу користити на различитим архитектурама рачунара.

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

Programming languages

Подела програмских језика према блискости са архитектуром рачунара

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

Према начину програмирања, програмске језике делимо у програмске парадигме. Основне програмске парадигме могу бити императивне и декларативне. Императивне програмске парадигме могу бити процедуралне (језици C, Pascal, Fortran, Basic) и објектно-оријентисане (језици C++, Java, C#). Декларативне програмске парадигме могу бити функционалне (језици PHP, Python, Haskell, Perl) и логичке (језик Prolog и његови деривати). У савременим програмским језицима често је помешано више програмских парадигми, тако са су овакве поделе све мање стриктне.

Историјат развоја програмског језика C

Програмски језик C је процедурални програмски језик опште намене кога је развио Dennis Ritchie између 1969. и 1973. године у компанији Bell Labs. Оригинално је развијен за оперативни систем UNIX на PDP-11 и IBM System/370 рачунарима и убрзо искоришћен за репрограмирање језгара већине оперативних система.

Ken Thompson i Dennis Ritchie

Ken Thompson и Dennis Ritchie

Популарност програмског језика C порасла је 1978. године када су Brian Kernighan и Dennis Ritchie публиковали прво издање књиге The C Programming Language, позната међу програмерима и као бела књига или K&R, која је уједно била и неформална спецификација овог програмског језика.

Превод другог издања “беле књиге”

Осамдесетих година појавили су се C преводиоци за различите хардверске платформе и различите оперативне системе и било је јасно да се језик мора стандардизовати. Амерички Национални Институт за Стандарде (ANSI) је 1983. године формирао комисију која је радила до 1989. године и публиковала стандард X3.159-1989 “Programming Language C”, по којем је ова верзија програмског језика названа ANSI C, Стандардни C или C89. Интернационална Организација за Стандарде (ISO) усвојила је овај стандард 1990. године по којем је ова верзија названа и C90. Стандардизацијом је програмски језик C постао један од најмоћнијих, најбржих и најкоришћенијих програмских језика.

ISO је ревидирао C стандард 1999. године (верзија C99) и касније 2011. године (верзија C11). Како је C и најчешће коришћен језик у електроници и уграђеним системима, 2003. и 2006. године публиковани су и стандарди за додатке програмском језику C за уграђене процесоре (верзија Embedded C).

Програмски језик C послужио је као основа за развој нових програмских језика. Од краја седамдесетих до средине осамдесетих година на темељима програмског језика C развијан је програмски језик C++ као објектно-оријентисани програмски језик опште намене који је доживео прву стандардизацију 1989. године. Следили су и Java, JavaScript, C#, Objective-C, Python, Perl, PHP и многи други. У наставном предмету Програмирање користићемо имплементацију програмског језика C у оквиру Microsoft Visual C++ интегрисаног развојног окружења са Microsoft C/C++ преводиоцем.


ПИТАЊА ЗА ПРОВЕРУ ЗНАЊА:
1. Дефинишите појмове “језик” и “програмски језик”.
2. Како се деле програмски језици према степену блискости са архитектуром рачунара? Објасните.
3. Како се деле програмски језици према начину превођења програма? Објасните.
4. Како се деле програмски језици према начину програмирања? Објасните.
5. Ко је и када развио програмски језик C?
6. Заокружите имена најважнијих стандарда током развоја програмског језика C (има их четири): C64, C89, C95, C98, C99, C2000, CXP, C10, C11, C++, C#, Embedded C, Engraved C, Embossed C.


ДОМАЋИ ЗАДАТАК (необавезан):
Напишите есеј о Денису Ричију и његовом доприносу развоја информационих технологија.

Dennis Ritchie


Неовлашћено коришћење ових садржаја, без претходне писмене сагласности аутора, сматра се кршењем Закона о ауторским и сродним правима!