Osnovne programske paradigme
уредиU osnovne programske paradigme se ubrajaju: imperativna (proceduralna) paradigma, objektno-orijentisana paradigma, funkcionalna paradigma i logička paradigma.
Imperativna (proceduralna) paradigma
уреди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
уреди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
уреди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 lambdarač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
уреди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
уредиC
уреди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.
C#
уреди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.
C++
уреди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
уреди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.
Java
уреди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
уреди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.
Lisp
уредиProgramski jezik LISP (LISt Processing) razvijen je 1958. godine, a njegov tvorac je JohnMcCarthy. 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
уреди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
уреди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
уреди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