Основне програмске парадигме

уреди

У основне програмске парадигме се убрајају: императивна (процедурална) парадигма, објектно-оријентисана парадигма, функционална парадигма и логичка парадигма.

Императивна (процедурална) парадигма

уреди

Императивна парадигма настала је под утицајем Фон Нојманове архитектуре рачунара. Стил програмирања је прилагођен машини, а не човеку. Заснива се на технолошком концепту дигиталног рачунара. Процедуром се саопштава рачунару како се проблем решава, односно наводи се прецизан низ корака (алгоритам) потребан за решавање проблема. Основни појам императивних језика је наредба. Више наредби се групише у процедуре и извршавају се секвенцијално уколико се експлицитно у програму не промени редослед извршавања наредби. У управљачке структуре се убрајају наредбе гранања, наредбе итерације, и наредбе скока (гото). Ознаке променљивих су ознаке меморијских локација. Ознаке локација и вредности се често мешају, што доводи до бочних ефеката. Програмски језици које користи императивна парадигма су: C, Пасцал, Басиц, Фортран, ПЛ, Алгол...

Објектно-оријентисана парадигма

уреди

Објектно-оријентисана парадигма настала је осамдесетих година прошлог века. Њен циљ био је да једном написан софтвер може да се користи више пута. Сада је једна од најпопуларнијих програмских парадигми. Симулација, односно моделирање се врши преко објеката који међусобно интерагују преношењем порука. Подаци и процедуре (функције) се учауравају (енкапсулирају) у објекте. Да би унутрашња својства објеката остала заштићена, користи се скривање података. Објекти су груписани по класама. Оне представљају шаблон по којем се формирају конкретни објекти. Најчешће су хијерархијски организоване и повезане механизмом наслеђивања. Програмски језици које користи објектно-оријентисана парадигма су: Симула 67, СмаллТалк, C++, Еиффел, Јава, C#...

Функционална парадигма

уреди

Функционална парадигма представља резултат тежње да се другачије организује процес програмирања. Израчунавања су евалуације математичких функција. Заснована је на појму математичке функције и има формалну строго дефинисану математичку основу у ламбда рачуну. Елиминисани су бочни ефекти што утиче на лакше разумевање и предвиђање понашања програма — Излазна вредност функције зависи само од улазних вредности аргумената функције. Настала је педесетих и почетком шездесетих година прошлог века. Седамдесетих година функционално програмирање није било у центру пажње. У то време су се више развијале друге парадигме, као што је процедурално и објектно-оријентисано програмирање. Функционално програмирање је поново постало популарно захваљујући језику Хаскелл, који је развијен крајем 1980-их. Програмски језици које користи функционална парадигма су: Лисп, Сцхеме, Хаскелл, ML, Сцала, ОЦамл…

Логичка парадигма

уреди

Логичка парадигма настаје као тежња да се у креирању програма користи исти начин размишљања као и при решавању проблема у свакодневном животу. Она припада декларативној парадигми, у којој се описују односи између чињеница и правила у домену проблема. Користе се аксиоме, правила извођења и упити како би се дефинисали проблеми и пронашла решења. Логичка парадигма се значајно разликује од осталих парадигми по начину приступа решавању проблема. Није једнако погодна за све области израчунавања, а њен основни домен је решавање проблема вештачке интелигенције. Због тога се често користи у домену АИ система и у решавању сложених логичких проблема. Извршавање програма у логичкој парадигми заснива се на систематском претраживању скупа чињеница уз коришћење одређених правила закључивања. Она је заснована на математичкој логици, тачније на предикатском рачуну првог реда, који омогућава формално дефинисање и манипулацију чињеницама и правилима. Такође, логичка парадигма се ослања на аутоматско доказивање теорема користећи методе попут резолуције. Могла би се описати реченицом: 'Одговори на питање кроз тражење решења', што указује на њену природу постављања питања и тражења одговора у оквиру задатих правила и чињеница.

Најпознатији програмски језик ове парадигме је ПРОЛОГ. Поред Пролога, постоје и други језици који припадају овој парадигми, као што су: АСП, Даталог, ЦЛП, ИЛОГ, Солвер, ПарЛог, и ЛИФЕ.

Програмски језици

уреди

Програмски језик C настао је 1972. године. Његов творац је Деннис Ритцхие. Развијен је у лабораторијама Белл Лабс-а како би подржао развој оперативног система Униx. Дизајниран је као ефикасан језик за системско програмирање, а поставио је темеље за многе модерне програмске језике. Захваљујући својој једноставности и ефикасности, C је постао један од најутицајнијих програмских језика у историји рачунарских наука.

Програмски језик C# развијен је 2000. године од стране компаније Мицрософт, уз кључни допринос Андерса Хејлсберга. C# је креиран као део .НЕТ платформе и замишљен је као модеран, објектно-оријентисан језик који комбинује најбоље карактеристике језика C++ и Јава. Главна примена овог језика је у изради апликација за Мицрософтове платформе.

Програмски језик C++ развијен је 1983. године, а његов творац је Бјарне Строуструп. C++ је проширење C језика, уз додатке за подршку објектно-оријентисаном програмирању. Овај језик је замишљен као флексибилан алат који програмерима омогућава да пишу ефикасне програме са високим степеном контроле над ресурсима, чиме се истиче у домену системског и високоперформантног програмирања.

Пyтхон

уреди

Програмски језик Пyтхон настао је 1991. године, а његов творац је Гуидо ван Россум. Пyтхон је осмишљен као једноставан језик са нагласком на читљивост синтаксе, што омогућава брзу израду прототипова. Стекао је велику популарност због широке примене у научном рачунарству, вештачкој интелигенцији, wеб развоју и аутоматизацији различитих процеса.

Јава

уреди

Програмски језик Јава развијен је 1995. године, а његов творац је Јамес Гослинг из компаније Сун Мицросyстемс. Јава је креирана са циљем да буде преносив језик, омогућавајући апликацијама да се извршавају на различитим уређајима. Њен слоган, „Напиши једном, покрени било где” (Wрите Онце, Рун Анywхере), осигурава високу преносивост апликација захваљујући

Јава Виртуал Мацхине (ЈВМ), што је Јаву учинило популарним избором за развој различитих софтверских решења. ЈаваСцрипт Програмски језик ЈаваСцрипт настао је 1995. године, а његов творац је Брендан Еицх. ЈаваСцрипт је првобитно створен за wеб претраживаче како би омогућио интерактивност на wеб страницама. Иако дели име са програмским језиком Јава, ова два језика нису повезана. Временом је ЈаваСцрипт постао кључан језик за wеб развој, а његова примена се проширила и на сервер-сиде програмирање захваљујући платформи Ноде.јс.

Пролог

уреди

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

Лисп

уреди

Програмски језик ЛИСП (ЛИСт Процессинг) развијен је 1958. године, а његов творац је Јохн МцЦартхy. ЛИСП је један од најстаријих програмских језика и пионир у развоју вештачке интелигенције. Креиран је за манипулацију подацима у облику листи, а због своје флексибилности у раду са апстрактним концептима, и даље се користи у истраживањима на пољу АИ.

Хаскелл

уреди

Хаскелл је функционални програмски језик развијен 1990. године од стране групе истраживача познате као Цоммиттее он Фунцтионал Программинг Лангуагес. Првобитно је замишљен као експериментални језик за истраживање концепта чистог функционалног програмирања. Иако је његова примарна сврха била истраживање теоретског рачунарства, Хаскелл је постао популаран у индустрији због својих снажних типова и непроменљивости података, што га чини погодним за поуздан и ефикасан развој софтвера.

Симула 67

уреди

Симула 67, настао 1967. године, је програмски језик који су развили норвешки програмери Оле- Јохан Дахл и Кристен Нyгаард. Као први објектно оријентисани језик, Симула 67 је поставио основе за многе будуће језике, укључујући C++ и Јаву. Његова главна сврха била је симулација и моделирање сложених система, што га је учинило револуционарним у свету рачунарства. Овај језик је увео кључне концепте као што су класе и објекти, који су постали централни елементи у објектно оријентисаном програмирању. Симула 67 не само да је

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

Литература

уреди

Петер Ван Роy, Сеиф Хариди — Цонцептс, Тецхниqуес, анд Моделс оф Цомпутер Программинг, МИТ Пресс, 2003. Део материјала је преузет од др Милена Вујошевић Јаничић, МАТФ