Osnovne programske paradigme

uredi

U osnovne programske paradigme se ubrajaju: imperativna (proceduralna) paradigma, objektno-orijentisana paradigma, funkcionalna paradigma i logička paradigma.

Imperativna (proceduralna) paradigma

uredi

Imperativna paradigma nastala je pod uticajem Fon Nojmanove arhitekture računara. Stil programiranja je prilagođen mašini, a ne čoveku. Zasniva se na tehnološkom konceptu digitalnog računara. Procedurom se saopštava računaru kako se problem rešava, odnosno navodi se precizan niz koraka (algoritam) potreban za rešavanje problema. Osnovni pojam imperativnih jezika je naredba. Više naredbi se grupiše u procedure i izvršavaju se sekvencijalno ukoliko se eksplicitno u programu ne promeni redosled izvršavanja naredbi. U upravljačke strukture se ubrajaju naredbe grananja, naredbe iteracije, i naredbe skoka (goto). Oznake promenljivih su oznake memorijskih lokacija. Oznake lokacija i vrednosti se često mešaju, što dovodi do bočnih efekata. Programski jezici koje koristi imperativna paradigma su: C, Pascal, Basic, Fortran, PL, Algol...

Objektno-orijentisana paradigma

uredi

Objektno-orijentisana paradigma nastala je osamdesetih godina prošlog veka. Njen cilj bio je da jednom napisan softver može da se koristi više puta. Sada je jedna od najpopularnijih programskih paradigmi. Simulacija, odnosno modeliranje se vrši preko objekata koji međusobno interaguju prenošenjem poruka. Podaci i procedure (funkcije) se učauravaju (enkapsuliraju) u objekte. Da bi unutrašnja svojstva objekata ostala zaštićena, koristi se skrivanje podataka. Objekti su grupisani po klasama. One predstavljaju šablon po kojem se formiraju konkretni objekti. Najčešće su hijerarhijski organizovane i povezane mehanizmom nasleđivanja. Programski jezici koje koristi objektno-orijentisana paradigma su: Simula 67, SmallTalk, C++, Eiffel, Java, C#...

Funkcionalna paradigma

uredi

Funkcionalna paradigma predstavlja rezultat težnje da se drugačije organizuje proces programiranja. Izračunavanja su evaluacije matematičkih funkcija. Zasnovana je na pojmu matematičke funkcije i ima formalnu strogo definisanu matematičku osnovu u lambda računu. Eliminisani su bočni efekti što utiče na lakše razumevanje i predviđanje ponašanja programa — Izlazna vrednost funkcije zavisi samo od ulaznih vrednosti argumenata funkcije. Nastala je pedesetih i početkom šezdesetih godina prošlog veka. Sedamdesetih godina funkcionalno programiranje nije bilo u centru pažnje. U to vreme su se više razvijale druge paradigme, kao što je proceduralno i objektno-orijentisano programiranje. Funkcionalno programiranje je ponovo postalo popularno zahvaljujući jeziku Haskell, koji je razvijen krajem 1980-ih. Programski jezici koje koristi funkcionalna paradigma su: Lisp, Scheme, Haskell, ML, Scala, OCaml…

Logička paradigma

uredi

Logička paradigma nastaje kao težnja da se u kreiranju programa koristi isti način razmišljanja kao i pri rešavanju problema u svakodnevnom životu. Ona pripada deklarativnoj paradigmi, u kojoj se opisuju odnosi između činjenica i pravila u domenu problema. Koriste se aksiome, pravila izvođenja i upiti kako bi se definisali problemi i pronašla rešenja. Logička paradigma se značajno razlikuje od ostalih paradigmi po načinu pristupa rešavanju problema. Nije jednako pogodna za sve oblasti izračunavanja, a njen osnovni domen je rešavanje problema veštačke inteligencije. Zbog toga se često koristi u domenu AI sistema i u rešavanju složenih logičkih problema. Izvršavanje programa u logičkoj paradigmi zasniva se na sistematskom pretraživanju skupa činjenica uz korišćenje određenih pravila zaključivanja. Ona je zasnovana na matematičkoj logici, tačnije na predikatskom računu prvog reda, koji omogućava formalno definisanje i manipulaciju činjenicama i pravilima. Takođe, logička paradigma se oslanja na automatsko dokazivanje teorema koristeći metode poput rezolucije. Mogla bi se opisati rečenicom: 'Odgovori na pitanje kroz traženje rešenja', što ukazuje na njenu prirodu postavljanja pitanja i traženja odgovora u okviru zadatih pravila i činjenica.

Najpoznatiji programski jezik ove paradigme je PROLOG. Pored Prologa, postoje i drugi jezici koji pripadaju ovoj paradigmi, kao što su: ASP, Datalog, CLP, ILOG, Solver, ParLog, i LIFE.

Programski jezici

uredi

Programski jezik C nastao je 1972. godine. Njegov tvorac je Dennis Ritchie. Razvijen je u laboratorijama Bell Labs-a kako bi podržao razvoj operativnog sistema Unix. Dizajniran je kao efikasan jezik za sistemsko programiranje, a postavio je temelje za mnoge moderne programske jezike. Zahvaljujući svojoj jednostavnosti i efikasnosti, C je postao jedan od najuticajnijih programskih jezika u istoriji računarskih nauka.

Programski jezik C# razvijen je 2000. godine od strane kompanije Microsoft, uz ključni doprinos Andersa Hejlsberga. C# je kreiran kao deo .NET platforme i zamišljen je kao moderan, objektno-orijentisan jezik koji kombinuje najbolje karakteristike jezika C++ i Java. Glavna primena ovog jezika je u izradi aplikacija za Microsoftove platforme.

Programski jezik C++ razvijen je 1983. godine, a njegov tvorac je Bjarne Stroustrup. C++ je proširenje C jezika, uz dodatke za podršku objektno-orijentisanom programiranju. Ovaj jezik je zamišljen kao fleksibilan alat koji programerima omogućava da pišu efikasne programe sa visokim stepenom kontrole nad resursima, čime se ističe u domenu sistemskog i visokoperformantnog programiranja.

Python

uredi

Programski jezik Python nastao je 1991. godine, a njegov tvorac je Guido van Rossum. Python je osmišljen kao jednostavan jezik sa naglaskom na čitljivost sintakse, što omogućava brzu izradu prototipova. Stekao je veliku popularnost zbog široke primene u naučnom računarstvu, veštačkoj inteligenciji, web razvoju i automatizaciji različitih procesa.

Programski jezik Java razvijen je 1995. godine, a njegov tvorac je James Gosling iz kompanije Sun Microsystems. Java je kreirana sa ciljem da bude prenosiv jezik, omogućavajući aplikacijama da se izvršavaju na različitim uređajima. Njen slogan, „Napiši jednom, pokreni bilo gde” (Write Once, Run Anywhere), osigurava visoku prenosivost aplikacija zahvaljujući

Java Virtual Machine (JVM), što je Javu učinilo popularnim izborom za razvoj različitih softverskih rešenja. JavaScript Programski jezik JavaScript nastao je 1995. godine, a njegov tvorac je Brendan Eich. JavaScript je prvobitno stvoren za web pretraživače kako bi omogućio interaktivnost na web stranicama. Iako deli ime sa programskim jezikom Java, ova dva jezika nisu povezana. Vremenom je JavaScript postao ključan jezik za web razvoj, a njegova primena se proširila i na server-side programiranje zahvaljujući platformi Node.js.

Prolog

uredi

Prolog je programski jezik razvijen 1972. godine, a njegov tvorac je Alain Colmerauer. Ovaj logički jezik kreiran je za potrebe veštačke inteligencije i obrade prirodnog jezika. Prolog se temelji na logičkim pravilima i rešava probleme koristeći zaključivanje, što ga je učinilo važnim alatom u istraživanjima na polju veštačke inteligencije.

Programski jezik LISP (LISt Processing) razvijen je 1958. godine, a njegov tvorac je John McCarthy. LISP je jedan od najstarijih programskih jezika i pionir u razvoju veštačke inteligencije. Kreiran je za manipulaciju podacima u obliku listi, a zbog svoje fleksibilnosti u radu sa apstraktnim konceptima, i dalje se koristi u istraživanjima na polju AI.

Haskell

uredi

Haskell je funkcionalni programski jezik razvijen 1990. godine od strane grupe istraživača poznate kao Committee on Functional Programming Languages. Prvobitno je zamišljen kao eksperimentalni jezik za istraživanje koncepta čistog funkcionalnog programiranja. Iako je njegova primarna svrha bila istraživanje teoretskog računarstva, Haskell je postao popularan u industriji zbog svojih snažnih tipova i nepromenljivosti podataka, što ga čini pogodnim za pouzdan i efikasan razvoj softvera.

Simula 67

uredi

Simula 67, nastao 1967. godine, je programski jezik koji su razvili norveški programeri Ole- Johan Dahl i Kristen Nygaard. Kao prvi objektno orijentisani jezik, Simula 67 je postavio osnove za mnoge buduće jezike, uključujući C++ i Javu. Njegova glavna svrha bila je simulacija i modeliranje složenih sistema, što ga je učinilo revolucionarnim u svetu računarstva. Ovaj jezik je uveo ključne koncepte kao što su klase i objekti, koji su postali centralni elementi u objektno orijentisanom programiranju. Simula 67 ne samo da je

unapredio način razmišljanja o programiranju, već je poslužio kao inspiracija za razvoj naprednijih jezika i tehnika koje su danas široko prihvaćene u softverskoj industriji.

Literatura

uredi

Peter Van Roy, Seif Haridi — Concepts, Techniques, and Models of Computer Programming, MIT Press, 2003. Deo materijala je preuzet od dr Milena Vujošević Janičić, MATF