You are on page 1of 12

Programski jezici

Da bi se premostile poteskoce u programiranju na


asemblerskim jezicima ranih 50-ih godina 20.veka pocinju da se
razvijaju i masinski nezavisni jezici ili jezici viseg nivoa.
Koriscenjem jezika viseg nivoa naredbe i podaci se opisuju na
nacin slican prirodnom jeziku.
Osnovni jezik masinski jezik
Na osnovu nacina prevodjenja i izvrsenja programa programe
za prevodjenje delimo na kompilatore i interpretatore .
Programski jezici koji se prevode kompilatorima nazivamo
kompilatorski jezici Fortran,Cobol, Algol
Kod interpreterskih programa jedna po jedna instrukcija se
prevodi i odmah nakon prevodjenja izvrsava Lisp,Prolog Basic
U savremenim programskim jezicima kao sto je Java ili C# cest
je kombinovani pristup koji u sebi sadrzi i kompilatorske i
interpreterske elemente.
Prvo se izvrsava kompilacija izvornog koda na masinski jezik
virtuelne masine, a zatim se instrukcije virtuelne masine
interpretiraju na racunar na kome izvrsavamo program.
Prema nacinu resavanja problema vise programske jezike
delimo na :
1.Proceduralne racunar dobija kompletan skup instrukcija za
resenje problema kako?
2.Deklarativne ima ugradjene postupke za resenje problema i
njima opisujemo STA? znamo o problemu i sta zelimoda
dobijemo pozivajuci ga (Prolog i SQL)

Posebnu klasu programskih jezika cine objektno


orjentisani jezici , kod kojih su prisutni i proceduralni i
neproceduralni elementi.
Kod OOP podaci i postupci su objedinjeni u jednu
celinu i cine aktivan objekat, za razliku od podataka u
proceduralnim jezicima koji su krajnje pasivni.
Pristup podacima objekata kontrolise programer i
moze im se pristupiti samo unutar jednog objekta(koji
ima svoje stanje i operacije koje mozemo zahtevati za
izvrsenje)
Primer: Posmatrajmo niz imena ucenika jednog odeljenja .

Kod proceduralnog Kod OOP


programiraja
Niz imena se posmatra Niz imena je objedinjeno
kao skup pasivnih Objekat-skup imena i
podataka Objekat-skup akcija koji
se primenjuju nad tim
imenima
Pisanje programa za rad
sa ovim
nizom(dodavanje novog
ucenika ,brisanje)
Koriscenje funkcije za
rad kojima
objedinjujemo podatke

Razvoj OOP je omogucio jednostavnije kreiranje


programa i timski rad
Osnovni principi
objektno orjentisanog
programiranja(OOP)
Principi OOP
Primer: Nastavni proces u skoli

Profesor Mika
Pera -ucenik
predaje svim
IVa razreda radi
ucenicima
zadatak iz
odeljenja Ivb
matematike
novu lekciju iz
Prof Laza
fizike

ucionica1 ucionica2

Osnovni objekti u ovom jednostavnom primeru


su: Pera,Mika,Laza,IVa,IVb ,matematika,fizika
ucionica 1 i 2
Jasno je da nastavnim procesom koordinairaju Mika i Laza, da
upoznaju ucenike sa novim gradivom, da proveravaju znanje
ucenika i ocenjuju ga.Oni imaju zajednicka svojstva :
1.Ime
2.Strucna sprema
3.Predmet koji predaju
4.Godine staza
Oni pripadaju jednoj od klasa ucesnika u nastavnom procesu
PROFESORI
Na isti nacin uocavaju se i klase Ucenik
1.Pera
2.Predmet
3.Odeljenje
ovek koristi raunar kao pomono sredstvo u reavanju raznih
problema. Reavanje problema iz nae okoline je pravljenje
modela te iste
okoline. U modeliranju koristimo intelektualne operacije, a pri
tome je
osnovni alat apstrakcija. Osnovni nivo apstrakcije je uoavanje
ablona za
objekte sa vie zajednikih osobina. Na osnovu tih ablona
gradimo klase
kontrolisanim ukljuivanjem i iskljuivanjem nekih detalja o
objektima, to
Posmatranjem svih uenika uoavamo njihova zajednika svojstva.
Na primer, za sve uenike u nastavnom procesu je potrebno pratiti
ime, prezime, datum rodjenja, razred, odeljenje a nisu nam od znaaja
boja kose, boja oiju i slino. Svojstva od vanosti za proces koji pratimo
nazivamo atributima.
Takodje, svim uenicima moemo pridruiti iste akcije koje su znaajne
za proces: uenik odgovara i dobija ocenu, uenik menja odeljenje... Te
akcije u okviru klase nazivamo metodima klase, i njima se opisuje
funkcionalnost objekata te
Klasa Ucenik je uoptenje klase.
(apstrakcija) pojedinanih uenika. Svaki
pojedinani uenik je primerak (instanca) klase Ucenik, i opisan je
skupom vrednosti atributa te klase. Vrednost atributa ime za
konkretnog uenika je na primer Pera, a vrednost atributa razred je
broj 4. Pera i broj 4 su pojedinani podaci.
Svaki objekat u objektno orijentisanom programiranju (u daljem
tekstu OOP) predstavlja samostalnu, zaokruenu, celinu koju
moemo uklapati sa drugim objektima u skladu sa potrebama i tako
reavati sloenije probleme. Svaki objekat u OOP ima svoja
unutranja stanja, kao i skup metoda ili akcija koje moe da izvri.
Enkapsulacija, jedan od vanih principa OOP, je postupak
objedinjavanja stanja i ponaanja objekta u jednu celinu. Tako
organizovane objekte je lake kontrolisati i onemoguiti neovlaen
pristup. Korisnici sa objektom komuniciraju samo kontrolisano,
pomou javnih metoda i ne mogu neovlaeno menjati unutranja
stanja objekta. Samo internim metodima objekta omoguen je
pristup tim
stanjima. Ovakav pristup omoguava lake organizovanje tima
programera u
razvijanju istog projekta. Svaki lan tog tima lako moe koristiti sve
Posmatrajmo klasu Dugme(button) na raunaruKaemo da su
objekte
oni su
koji instanca klase Dugme.
drugi lanovi Svi oni
tima razvili, mogu da prime
poznavajui samo iste poruke.
naine
Na njih se primenjuju
komunikacije sa isti metodi (npr. dugme je pritisnuto...),
imaju istu funkcionalnost.
objektima, bez poznavanja Funkcionalnosti koje imaju dobijene
njihove realizacije.
su iz opte klase Dugme.
Nasledjivanje je jo jedna vana osobina jezika OOP. Ono je
posledica generalizacije kao metoda za modelovanje objekata.
Na primer u nastavnom procesu moemo polazei od klasa
Ucenik, Profesor uoavajui njihove zajednike atribute i metode
napraviti novu klasu Osoba. Tu operaciju nazivamo generalizacijom
a obrnutu operaciju specijalizacijom.

Na primer, kaemo da se klasa Osoba specijalizuje u klasu Ucenik,


Profesor. Sve klase koje su dobijene specijalizacijom nasledjuju sve
atribute i
metode osnovne ili generike klase. Na primer, metod
promeni_adresu
osnovne klase Osoba moemo primenjivati na objekte klase Ucenik
jer je
klasa Ucenik izvedena klasa iz klase Osoba. Isto tako atribut
prezime klase
Osoba imai svaki od objekata izvedenih klasa Ucenik i Profesor.
Izvedene
klase osim nasledjenih osobina i funkcionalnosti mogu posedovati i
neke
specifine koje ih dodatno karakteriu. Na primer, klasu Ucenik
opisujemo
dodatnim atributima (razred, ocene, ...) i funkcionalnostima
U izvedenim klasama moemo predefinisati neke od nasledjenih
funkcionalnosti u skladu sa specifinostima izvedene klase. Na taj
nain je omogueno da objekti razliitih izvedenih klasa reaguju
razliito izvravajui istu funkcionalnost osnovne klase.
Osobina da se isti metod osnovne klase izvrava na razliite
naine, u zavisnosti od toga kojoj izvedenoj klasi objekat koji ga
poziva pripada, naziva se polimorfizam.
Primer polimorfizma
Veina savremenih aplikacija za obradu dokumenata podrava
tampanje dokumenata bez obzira to u trenutku pisanja aplikacija
programer nema informaciju o vrsti tampaa instaliranog na
konkretni raunar. Programer u kodu koristi objekat klase Printer i
poziva njegov metod Print. Nain realizacije tog metoda bie
odreen u trenutku izvravanja programa prilikom izbora
konkretnog tampaa koji je povezan na raunar na kome se
izvrava program. Metod Print konkretnog tampaa realizovan je u
programu koji prilagoava tampa aktuelnom operativnom
sistemu (drajver). Ovako neto je mogue zahvaljujui nasleivanju
i
polimorfizmu jer su svi tampai izvedeni iz osnovne sistemske
klase Printer.

You might also like