Professional Documents
Culture Documents
05 Softver - Skripta
05 Softver - Skripta
Uvod
U prethodnom poglavlju je dat pregled osnovnih računarskih hardverskih komponenti kao što su procesor,
unutrašnja i spoljašnja memorija, ulazni i izlazni uređaji itd., kao i osnovni principi njihovog funkcionisanja.
U delu knjige koji se odnosi na strukturu i funkcionisanje procesora opisan je način realizacije jedne
programske instrukcije (instrukcije sabiranja dva broja) na savremenim procesorima. Pri tome nismo obraćali
pažnju na poreklo jedne takve instrukcije. Instrukcije koje se realizuju na procesoru potiču od programa koji
je instaliran na računaru i pokrenut na izvršavanje od strane korisnika. Samim tim se nameće kao tema za
razmatranje nova komponenta računarskih sistema a koja se zove softver. Softver predstavlja sastavni deo
računarskih sistema. Vrlo često se kaže da je hardver materijalni deo računara dok je softver njegov
nematerijalni deo. Softver se najjednostavnije može opisati kao skup programa pomoću kojih korisnik
komunicira sa računarom i izdaje mu naredbe koje je potrebno izvršiti. To praktično znači da nijedan računar
ne bi mogao da funkcioniše bez odgovarajućeg pratećeg softvera.
U današnje vreme softeru se poklanja mnogo veća pažnja nego pre nekoliko decenija. Polovinom prošlog
veka dominantna oblast informatičkog razvoja bio je sam hardver zbog čega je i njegova cena bila izuzetno
visoka. Programi koje je trebalo realizovati pravljeni su specijalno za sam hardver i najčešće su bili
memorisani na samom hardveru. Na taj način specifičan hardver je izvršavao specifične zadatke. Međutim,
vremenom je uočena prednost primene računara u različitim sferama poslovanja što je za posledicu imalo
potrebu razvoja softvera različite namene. Trend razvoja hardvera je išao u smeru pravljenja univerzalnih
računara koji su mogli da podrže različite softvere. Takođe, softveri su postajali sve moćniji pa samim tim i
sve složeniji. Složenost softvera uslovljava angažovanje velikog broja stučnih ljudi za njihov razvoj. Zbog
svega navedenog cene hardvera su konstantno padale dok su, sa druge strane, cene softvera vrtoglavo rasle.
Proces kreiranja programa se naziva programiranje i predstavlja pisanje odgovarajućih instrukcija koje
računar treba da izvrši. Za pisanje programskih instrukcija koriste se posebni tzv. programski jezici o kojima
će kasnije biti više reči. Prema tome, svaki program predstavlja niz instrukcija za čije izvršavanje je
neophodno prethodno prevođenje na mašinski jezik, odnosno na formu kako je to opisano u prethodnom
poglavlju u delu koji se odnosi na izvršavanje instrukcija na procesoru.
Generalno, softver se deli na sistemski softver i aplikativni (korisnički) softver. Sistemski softver je
podjednako bitan za funkcionisanje savremenih računara koliko i hardver samog računara jer bez njega rad
na računaru nije moguć. Sistemski softver se sastoji od operativnog sistema i pomoćnih sistemskih
programa. Operativni sistem je ključni deo sistemskog softvera koji upravlja i koordinira hardverskim
resursima, upravlja aktivnostima računara, omogućava i nadgleda realizaciju aplikativnog softvera na
hardveru računara itd. Zbog toga se može reći da operativni sistem predstavlja kopču između hardvera i
aplikativnog softvera, odnosno korisnika (Slika 5.1).
Operativni sistem
Vrlo je teško dati univerzalnu definiciju operativnog sistema. Umesto toga je mnogo lakše opisati njegove
osnovne funkcije. Za običnog korisnika do susreta sa operativnim sistemom dolazi odmah po uključivanju
računara. Na prvi pogled, operativni sistem (bar onaj deo korisnik vidi) ne predstavlja nikakav poseban
sadržaj u odnosu na aplikativni softver (npr. MS Word). Međutim, u pozadini, operativni sistem obavlja vrlo
zahtevne zadatke.
1
Funkcije operativnog sistema
S obzirom da operativni sistem ima zadatak da „oživi“ hardverski deo računara osnovne funkcije operativnih
sistema su se razvijale paralelno sa razvojem hardvera. Zbog toga savremeni računari imaju znatno složenije
operativne sisteme nego što je to bio slučaj pre 40 godina. Funkcije operativnih sistema savremenih računara
se mogu klasifikovati u 4 osnovne grupe:
1) Upravljanje sistemskim resursima,
2) Upravljanje izvršavanjem različitih poslova (sistemskih i aplikativnih),
3) Praćenje rada sistema i
4) Interfejs između korisnika i računara.
Kada se završi proces učitavanja, operativni sistem preuzima kotrolu nad procesima u računaru. Glavnu reč u
funkcionisanju operativnog sistema ima skup programa koji se naziva supervizor (u informatičkom žargonu
kernel ili jezgro). Supervizor se uvek nalazi u radnoj memoriji zbog čega se kaže da spada u grupu
rezidentnih programa. Ostali programi operativnog sistema ukoliko nisu potrebni ostaju u spoljašnjoj
memoriji (hard disku).
Supervizor je glavni menadžer svih procesa koji se odvijaju u računaru. S obzirom da se svaki proces
realizuje na procesoru i da prilikom svoje realizacije proces zauzima određenu količinu radne memorije
supervizor ima vrlo odgovoran zadatak da dodeljuje različitim procesima osnovne računarske resurse (CPU i
radnu memoriju) tako da se ne dogodi njihova interferencija (mešanje).
Ova uloga operativnog sistema se pojavila sa pojavom operativnih sistema koji su podržavali višeprogramski
rad računara tj. mogućnost istovremenog izvršavanja više različitih programa. Kako je za izvršavanje
programa neophodan procesor, višeprogramsko izvršavanje se realizuje kroz smenjivanje programa koji se
realizuju na procesoru. Zbog brzine procesora savremenih računara korisnik ima utisak da se svi programi
izvršavaju istovremeno. Sam postupak smenjivanja procesa na procesoru računara izvršava supervizor. On
ima ekskluzivno pravo da dodeli procesor jednom procesu i da ga oduzme drugom.
2
Interfejs između korisnika i računara
Jedna od najvažnijih uloga operativnog sistema je obezbeđivanje interfejsa između korisnika i računara.
Jednostavnost korišćenja računara se zasniva na jednostavnosti korišćenja njegovih resursa, izdavanje
željenih naredbi itd. Prve generacije operativnih sistema (DOS, UNIX) su imale vrlo „skroman“ interfejs
prema korisniku koji je bio namenjen profesionalnim korisnicima. Korisnik je komunicirao sa računarom
preko komandne linije u koju je unosio šifrovane naredbe (Slika 5.2).
Za korišćenje interfejsa ovakvih operativnih sistema korisnik nije imao na raspolaganju miš već samo
tastaturu.
Masovna proizvodnja personalnih računara je omogućila da i obični korisnici koriste računar. Međutim, stari
interfejs je predstavljao ozbiljnu prepreku masovnom korišćenju personalnih računara. Sredinom poslednje
decenije prošlog veka softverske kompanije počinju da poklanjaju veliku pažnju ovom problemu i kao
rezultat toga pojavljuju se prvi operativni sistemi sa grafičkim korisničkim interfejsom (eng. Grafical User
Interface - GUI). Kod ovih operativnih sistema resursi računara (programi, fajlovi itd.) imaju grafičku
predstavu u obliku ikona (simboličkih slika) zbog čega je za njihovo pokretanje i otvaranje moguće koristiti
miš. Na taj način upotreba računara je približena prosečnom korisniku.
Korak napred je predstavljala pojava višeprogramskih operativnih sistema koji su i danas aktuelni. Ovi
operativni sistemi omogućavaju istovremeno izvršavanje više različitih programa. Tako na primer, korisnik
je u mogućnosti da istovremeno sluša muziku korišćenjem programa Media Plejer, da generiše tekstualni
dokument korišćenjem programa MS Word i da komunicira putem interneta sa drugim korisnicima pomoću
programa Windows Messanger ili Skype. Ovaj princip rada operativnog sistema je omogućio znatno bolje
iskorišćenje resursa računara ali je sa sobom doneo i znatno složenije funkcionisanje operativnog sistema.
3
Tokom vremena razvijeno je nekoliko tehnika višeprogramskog rada operativnog sistema:
• Multitasking (eng. Multitasking), tehnika koja je omogućavala istovremeno izvršavanje različitih
programa.
• Multitreding (eng. Multithreading), tehnika koja je omogućavala istovremeno izvršavanje više niti
(eng. thread) istog programa. Na primer, korisnik može u jednom Word dokumentu da sređuje tekst
i da istovremeno u drugom Word dokumentu proverava pravopis.
Pojedini savremeni operativni sistemi podržavaju i takozvani višekorisnički rad. Višekorisnički rad
omogućava da više korisnika istovremeno koristi isti računarski sistem. Najčešće se višekorisnički rad
realizuje kroz tehniku deljenja vremena (eng. time sharing). Tehnika se zasniva na tome da je svakom
korisniku (u opštem slučaju sa više programa) procesor na raspolaganju tačno određeno vreme. Kada istekne
vreme koje je korisnik dobio njegov proces(i) se prekida i procesor se dodeljuje sledećem korisniku koji je u
redu za čekanje. U zavisnosti od brzine računara korisnici ne osećaju da dele isti računar sa drugima.
Jedino moguće rešenje je bilo promeniti logiku funkcionisanja računara i umesto jednog procesora koristiti
dva ili više. Ovo rešenje je zahtevalo revolucionarne zahvate kako u hardverskoj koncepciji tako i u
funkcionisanju operativnih sistema koji po svom opisu nadgledaju rad procesora.
Višeprocesorski računari kao što sam naziv kaže imaju više procesora. Operativni sistemi koji podržavaju
ovakve računare moraju da obezbede još jedan nivo sinhronizacije između procesa koji se izvršavaju na
računaru. Dakle, višeprocesorski način rada (eng. multiprocessing) operativnog sistema omogućava da se na
svakom procesoru izvršava više procesa i više niti jednog programa istovremeno. Dodatno, operativni sistem
u ovakvom režimu rada omogućava i izvršavanje više niti istog programa na različitim procesorima.
Uslužni programi (eng. System Utilities) su programi koji pomažu izvršavanje rutinskih korisničkih
operacija kao što je manipulisanje fajlovima (datotekama) i direktorijumima (folderima). Pomoću ovih
programa korisnik je u stanju da sam upravlja organizacijom podataka na spoljašnjoj memoriji (hard disku).
Osnovne operacije koje su omogućene korisniku su kreiranje, brisanje i premeštanje direktorijuma i fajlova.
Treba naglasiti da organizacija direktorijuma i fajlova na spoljašnjoj memoriji ne predstavlja njihovu fizičku
već logičku organizaciju. Drugim rečima, činjenica da su određeni fajlovi organizovani u okviru jednog
direktorijuma ne znači da se oni i fizički locirani jedan pored drugog na spoljašnjoj memoriji. Zbog toga
sistemski softver unutar sebe čuva i ažurira hijerarhiju i organizaciju direktorijuma i foldera na spoljašnjoj
memoriji.
Kotrolori performansi (eng. System Performance Monitor) omogućavaju korisniku uvid u izvršavanje
procesa u računarskom sistemu. Tipičan primer ovakvog programa je task menadžer (eng. Task Manager)
koji pruža uvid u opterećenost procesora, zauzeće radne memorije, pregled aktivnih programa i procesa
(Slika 5.3.).
4
Slika 5.3. Task menadžer
Ovaj program takođe omogućava korisniku da prekine izvršavanje odabranog procesa ukoliko za to postoji
potreba. Prilikom korišćenja ove mogućnosti treba biti oprezan zato što prekid nekog od sistemskih procesa
može da ugrozi funkcionisanje sistema u celini.
Sistemski kontrolori bezbednosti (eng. System Security Monitors) su programi koji nadgledaju korišćenje
računarskih sistema u cilju zaštite od neovlašćenog korišćenja.
Jedna od bitnih osobina savremenih operativnih sistema je korisnička podrška koja se naziva plug-and-play.
Opcija plug-and-play omogućava jednostavno instaliranje hardverskog uređaja vođenjem korisnika korak po
korak. Tehnika vođenja korisnika korak po korak se popularno naziva instalacioni čarobnjak. Na ovaj način
operativni sistem omogućava korisniku da na jednostavan način izvrši instaliranje softvera pomoću kojeg
računar komunicira sa novim, uočenim hardverom. Ti softveri se nazivaju drajveri uređaja. Takođe,
savremeni operativni sistemi imaju već ugrađene drajvere najpopularnijih modela hardverskih uređaja
(štampača, skenera, eksternih hard diskova itd.) pa njihovo instaliranje nije ni potrebno.
5
UNIX je razvijen početkom sedamdesetih godina u Belovim laboratorijama. Prva verzija je bila namenjena
mini računaru PDP-7 i bila je napisana u asembleru. Vrlo brzo se pojavila verzija za mini računar PDP-11
koja je bila posebna po tome što je bila napisana u tada novom, a kasnije, pa čak i danas, vrlo popularnom,
jeziku C. Autor ovog jezika, Denis Riči (Dennis Ritchie), je sa kolegom Kenom Tompsonom (Ken
Thompson) postavio osnovne principe operativnog sistema UNIX. Bitna prekretnica za dalji razvoj ovog
operativnog sistema se dogodila kada je firma AT&T, inače vlasnik Belovih laboratorija, prodala licencu za
razvoj raznim univerzitetima. Zahvaljujući dobijenom izvornom kodu operativnog sistema, Univerzitet
Berkli je postao jedan od najznačajnijih razvojnih centara ovog operativnog sistema. Činjenica da je više
razvojnih timova razvijalo različite i nekompatibilne verzije UNIX-a uticale su na njegovu popularnost.
Naime, proizvođačima softvera je predstavljalo veliki problem da prilagođavaju svoj aplikativni softver
svakoj verziji UNIX-a pa su se usredsredile na razvoj koji odgovara operativnom sistemu koji je bio
univerzalan kao što je MS-DOS. Raznolikost UNIX-a u funkcionalnom pogledu je kasnije eliminisana
uvođenjem standarda koji je uredio oblast razvoja operativnih sistema.
Godine 1981. firma IBM je predstavila personalni računar pod nazivom IBM PC koji je imao operativni
sistem MS-DOS 1.0. Ovaj 16-bitni operativni sistem je imao 8 KB i korisnički interfejs u obliku komandne
linije. Dve godine kasnije pojavio se MS-DOS 2.0 koji je imao veličinu 24 KB i dodatne funkcije,
„pozajmljene“ od UNIX-a. Godine 1984. pojavio se MS-DOS 3.0 koji je imao veličinu od 36 KB i dodatne
mogućnosti ali se i dalje korisnički interfejs zasnivao na komandnoj liniji.
Godine 1984. firma Apple je izbacila na američko tržište revolucionarni personalni računar pod imenom
Macintosh. Ovaj personalni računar je bio prvi računar koji je imao grafički korisnički interfejs i koji je uveo
miš kao ulazni urađaj za komunikaciju sa resursima računara. Pojava ovog računara je u postavila osnovne
principe savremenih računara.
Podstaknuta izuzetnim tržišnim rezultatima računara Apple Macintosh, firma Microsoft počinje sa razvojem
grafičkog korisničkog okruženja za operativni sistem MS-DOS i daje mu naziv Windows. Izvorno Windows
nije bio poseban operativni sistem već samo grafička podrška već postojećem operativnom sistemu MS-
DOS. Na taj način je postignuto da operativni sistem MS-DOS bude sakriven od korisnika.
Dalji razvoj operativnog sistema Windows je išao u smeru postepenog prebacivanja funkcija operativnog
sistema MS-DOS u modul za grafičko okruženje Windows. Tako se Windows 95 koji se pojavio 1995.
godine, i dalje bazirao na operativnom sistemu MS-DOS (verzija 7.0) ali je imao razvijene funkcije za
kreiranje virtualne memorije, rad sa procesima i istovremeno izvršavanje više programa. Ipak, ovaj
operativni sistem je i dalje bio pretežno 16-bitni program.
Godine 1998. Microsoft izbacuje na tržište operativni sistem Windows 98 koji je takođe sadržao operativni
sistem MS-DOS (verzija 7.1) ali je imao i neke nove funkcionalnosti kao što je podrška za veće diskove,
integrisana radna površina, Internet i TV. U pogledu funkcionalnosti operativni sistem Windows 98 se nije
bitno razlikovao od svog prethodnika Windows 95.
Uporedo sa razvojem navedenih verzija operativnog sistema Windows firma Microsoft je interno razvijala
potpuno nov operativni sistem nezavisan od MS-DOS-a pod nazivom Windows NT (Windows New
Technology). Windows NT je u potpunosti bio 32-bitni operativni sistem. U javnosti je mnogo poznatija
verzija Windows NT pod nazivom Windows 2000 koja je ujedno bila najrasprostranjenija verzija.
Sledeći operativni sistem, Windows XP, je u osnovi bio Windows 2000 sa neznatnim modifikacijama.
Windows XP je u određenom periodu bio najrasprostranjeniji operativni sistem kada su u pitanju domaći
korisnici zbog čega su u nastavku izložene njegove osnovne osobine:
• Integrisano grafičko korisničko okruženje (GUI),
• Ima 32-bitnu arhitekturu,
• Ugrađena plug-and-play tehnologija
• Ugrađena podrška za rad u mreži, za pristup Internetu, za elektronsku poštu,
• U zavisnosti od verzije može biti klijentski ili serverski operativni sistem,
• Podržava multitasking, multitreding i višeprocesorski rad,
• Poseduje sistem zaštite baziran na korisničkom nalogu
• Distribuira se u dve verzije:
6
1) Home Edition za kućnu upotrebu,
2) Professional Edition za profesionalnu upotrebu.
Windows 7 je trenutno izdanje iz serije operativnih sistema kompanije Microsoft. Namenjen je za upotrebu
na ličnim računarima, uključujući kućne i poslovne desktop, laptop i netbook računare, tablet računare itd.
Windows 7 je pušten iz proizvodnje 22. jula 2009, i zvanično bio dostupan u maloprodaji 22. oktobra 2009,
što je manje od tri godine nakon objavljivanja svog prethodnika, Windows Vista. Serverska varijanta
operativnog sistema Windows 7, pod nazivom Windows Server 2008 R2, je pušten u prodaju u isto vreme.
Na prezentaciji ovog operativnog sistema u ogranizaciji kompanije Microsoft održane 2008. predstavljeni su
osnovni dodaci i unapređenja ovog operativnog sistem. Predstavljeno je novo, redizajnirano korisničko
okruženje sa novim taskbarom, nazvnim Superbar, zatim sistem za podršku kućnom umrežavanju računara
nazvanom HomeGroup kao i unapređenja u pogledu performansi. Neke standardne aplikacije koje su bile
uključene u prethodne verzije operativnih sistema Microsoft Windows, kao što su Windows Calendar,
Windows Mail, Windows Movie Maker, i Windows Photo Gallery, su isključeni iz verzije Windows 7 ali su
dostupne kao deo paketa Windows Live Essentials.
Windows 7 uključuje čitav niz novih mogućnosti kao što su alati za unos podataka dodirom i alati za
prepoznavanje pisanja slobodnom rukom, podršku za kreiranje i upravljanje virtualnim diskovima,
unapređeno i efikasnije izvršavanje na višejezgarnim procesorima (eng. multi-core processors), unapređene
performanse podizanja sistema. Windows 7 omogućava višestruku upotrebu različitih grafičkih kartica,
zatim novu verziju Windows Media Centra, zatim gedžet (eng. Gadget) za Windows Media Center,
redizajnirani kalkulator sa mogućnošću konverzije različitih veličina kao što su dužina, težina, temperatura
itd.
Aplikativni softver
Aplikativni softver je, kao što sam naziv govori, softver koji ima specifičnu namenu. U zavisnosti od oblasti
primene možemo razlikovati softvere za tabelarna izračunavanja (Microsoft Excel), za obradu teksta
(Microsoft Word), zatim softvere za stono izdavaštvo (Microsoft Publisher), softvere za prezentacije (MS
PowerPoint), upravljanje podacima (Microsoft Access), softvere za grafičku obradu (Adobe PhotoShop),
softvere za crtanje (Corel Draw), itd.
Generalno, aplikativni softver se može razvijati za specifične potrebe određenog korisnika (kompanije) ili se
može razvijati za masovnu distribuciju. Prvi tip softvera se razvija na osnovu specifičnih potreba i zahteva
korisnika pa se zbog toga ne može naći u slobodnoj prodaji. Drugi tip aplikativnog softvera se razvija za
određenu oblast primene i sadrži funkcije koje korisniku omogućavaju realizaciju određenog posla. S
obzirom da ovakav aplikativni softver nije usmeren ka specifičnostima svakog korisnika pojedinačno već ka
njegovog primeni ovaj tip softvera se prodaje kao zatvoren proizvod i može se naći u slobodnoj prodaji
aplikativnih softvera.
Kao i sistemski softver aplikativni softver predstavlja niz instrukcija koje se redom izvršavaju. Kod
aplikativnih softvera je veoma izražena interakcija sa korisnikom pa se može reći da je izvršavanje
programa, odnosno redosled instrukcija, strogo diktirano od strane korisnika.
Računovodstvo
Računovodstveni aplikativni softver pomaže brzu i efikasnu realizaciju računodstvenih procesa u poslovnim
sistemima. S obzirom da računovdstvena funkcija svakog poslovnog sistema obuhvata česte i rutinske
operacije i aktivnosti primena ovog tipa aplikativnog softvera je praktično nezaobilazna. Zbog toga su
računovodstveni aplikativni softveri među prvima uvedeni u savremeno poslovanje. Pomoću
računovodstvenog aplikativnog softvera se na efikasan način vrši evidentiranje troškova, dugovanja i
potraživanja jednog poslovnog sistema. Na osnovu zabeleženih podataka specijalni moduli ovog softvera
omogućavaju korisnički definisanu obradu podataka i kreiranje potrebnih izveštaja.
7
Finansije
Funkcija upravljanja finansijama takođe obuhvata veliki broj ponavljajućih, rutinskih operacija i aktivnosti
zbog čega je primena aplikativnog softvera specijalizovanog za upravljanje finansijama nezaobilazna u
svakom poslovnom sistemu. Ovaj softver omogućava praćenje tokova novca u okviru poslovnog sistema,
predviđanje i upravljanje finansijskim sredstvima. Tipični moduli ovog aplikativnog softvera su modul za
obradu naloga prodaje, modul za obračun prihoda, modul za obračun i plaćanje, modul za obradu naloga
nabavke i modul za obračun zarada zaposlenih. Na osnovu podataka zabeleženih u navedenim modulima
menadžeri donose odluke koje se odnose na planiranje budžeta i upravljanje likvidnošću poslovnog sistema.
Proizvodni menadžment
Proces proizvodnje savremenih proizvoda može da bude veoma složen. Zbog toga je nemoguće izvršiti
efikasno upravljanje proizvodnim procesima bez podrške odgovarajućih aplikativnih softvera. Aplikacije za
proizvodni menadžment obuhvataju module za upravljanje proizvodnjom, upravljanje zalihama, upravljanje
kvalitetom i upravljanje troškovima. Zahvaljujući podacima evidentiranim u navedenim modulima
menadžeri mogu na efikasan način da kreiraju optimalan i realan plan proizvodnje. Planiranje proizvodnje je
vrlo važno za svaki poslovni sistem jer se na osnovu njega kreira plan prodaje pa samim tim i planiranje
finansija u budućem periodu.
Po mnogima najvažniji resurs svakog preduzeća su zaposleni. Zbog toga je za svaki poslovni sistem veoma
bitno da poseduje lične i profesionalne podatke o svojim zaposlenima. Za potrebe evidentiranja i obrade
podataka o zaposlenima razvijaju se specijalizovani aplikativni softveri. Aplikativni softver za upravljanje
ljudskim resursima omogućava praćenje angažovanosti zaposlenih, praćenje njihovog stručnog i
profesionalnog usavršavanja, praćenje starosne i obrazovne strukture zaposlenih u poslovnom sistemu itd.
Na osnovu navedenih podataka menadžeri za upravljanje ljudskim resursima vrše selekciju radnika,
planiranje njihove karijere, prijem novih radnika, planiranje i realizaciju usavršavanja zaposlenih i na taj
način kreiraju budući razvoj poslovnog sistema.
Programski jezici
Kao što je to već rečeno na početku ovog poglavlja svaki program (softver) predstavlja niz instrukcija koje se
izvršavaju na procesoru računara. Pisanje programa se zove programiranje i sastoji se u pisanju instrukcija.
Instrukcije koje se izvršvaju na procesoru računara su, kao što je to već opisano, definisane na mašinskom
jeziku (u binarnoj formi). Očigledno je da je pisanje programa na mašinskom jeziku mukotrpno i nezahvalno.
Prirodno rešenje problema je da korisnik (programer) program piše u jeziku koji je blizak čoveku a da se
zatim tako napisan program prevede na mašinski jezik koji je razumljiv računaru. Tako su nastali programski
jezici koji se koriste, kao što sam naziv ukazuje, za pisanje računarskih programa. Programske jezike čini
sistem znakova i skup pravila za pravljenje odgovarajućih jezičkih konstrukcija korišćenjem tih znakova.
Pisanje programa korišćenjem određenog programskog jezika se vrši pomoću odgovarajućih editora (radnog
okruženja). Tako napisan program se naziva izvorni program, odnosno izvorni kod. Da bi se izvorni program
izvršio na računaru neophodno je njegovo prevođenje na mašinski jezik. Prevođenje izvornog koda
napisanog u određenom programskom jeziku na mašinski jezik se vrši primenom specijalnih programa koji
se dele na kompajlere i interpretere.
Kompajleri su deo sistemskog softvera koji vrši prevođenje izvornog programa na mašinski jezik. Rezultat
prevođenja je objektni kod koji se zatim povezuje (linkuje) u takozvani izvršni kod, odnosno izvršni
program. Krajnji rezultat ovog procesa je fajl koji ima ekstenziju *.exe, koja ukazuje na to da je reč o
izvršnom kodu. Pokretanjem ovog fajla praktično se pokreće napisani program prebacivanjem u radnu
memoriju i izvršavanjem na procesoru računara. Dobijeni izvršni kod se može pokretati neograničen broj
puta bez potrebe za ponovnim prevođenjem (kompajliranjem) i povezivanjem.
Drugi tip prevodilaca su interpreteri. Ovi programi ne vrše kompletno prevođenje izvornog programskog
koda u izvršni, već prevode instrukciju po instrukciju. Nakon izvršenog prevođenja instrukcije interpreter je
8
odmah izvršava i prelazi na sledeću instrukciju i tako redom. Praktično interpreter ima ulogu simultanog
prevodioca. Nedostatak interpretera je u tome što svako novo izvršavanje programa zahteva ponovno
prevođenje zbog čega je samo izvršavanje sporije.
Razvoj programskih jezika se odvijao kroz nekoliko faza koje se popularno zovu generacije programskih
jezika. U nastavku su izložene osnovne osobine i primeri svake generacije programskih jezika.
U jezike prve generacije spadaju mašinski jezici. Programiranje korišćenjem mašinskog jezika predstavlja
najniži nivo programiranja i sastoji se u definisanju instrukcija korišćenjem njihovih binarnih zapisa. S
obzirom da struktura instrukcija kao i njihovi binarni zapisi zavise od mašine na kojoj se izvršavaju ovi jezici
su dobili naziv mašinski orijentisani jezici ili kraće mašinski jezici. Uglavnom se svaka instrukcija koja se
izvršava na procesoru računara sastoji od binarnog zapisa operacionog koda i operanada koji učestvuju u
relizaciji instrukcije (videti poglavlje Hardver). Zbog toga su programi koji su pisani u nekom mašinskom
jeziku nepregledni i glomazni i vrlo teški za testiranje i pronalaženje grešaka. Prednost mašinskih jezika se
sastoji u tome da za programe napisane u njima nije potrebno prevođenje (kompajliranje) kao i velika brzina
izvršavanja programa.
Ubrzani razvoj softvera zahtevao je korišćenje mnogo efikasnijih alata (programskih jezika) za njihov razvoj.
Razvoj softvera korišćenjem mašinskih jezika je bio dugotrajan i nije mogao da odgovori potrebama tržišta.
Sa druge strane, korišćenje mašinskih jezika je bilo moguće samo u razvoju jednostavnih programa koji nisu
podrazumevali veliki broj operacija. Zbog svega navedenog bilo je neophodno razviti nove programske
jezike koji će biti bliži čoveku. Tako se pojavila druga generacija programskih jezika koji se zovu
asemblerski jezici ili kraće asembleri. Zbog primenjenog koncepta algoritma neki autori ove jezike
svrstavaju u kategoriju najjednostavnijih viših programskih jezika. Međutim, zbog specifične mnemoničke
sintakse većina autora ih tretira kao posebnu generaciju programskih jezika.
Programski jezici treće generacije se još zovu viši programski jezici. Sa jedne strane, programski jezici treće
generacije su još bliži čoveku po svojoj sintaksi, a sa druge strane poseduju nove koncepte koji znatno
olakšavaju postupak programiranja. Pisanje instrukcija se realizuje kombinovanjem naredbi koje su opisane
engleskim rečima i aritmetičkim operacijama. Zahvaljujući ovakvoj sintaksi programi koji su pisani
korišćenjem viših programskih jezika su lako čitljivi ne samo profesionalnim programerima već i prosečnim
korisnicima računara. Druga prednost viših programskih jezika je da su kompatibilni, tj. prenosivi i
primenjivi na različitim mašinama (računarima). S obzirom da računar ne može da izvrši instrukcije napisane
u višim programskim jezicima svaki viši programski jezik je praćen programom prevodiocem koji izvorni
kod prevodi na mašinski jezik. Za programske jezike ove generacije se kaže da spadaju u grupu
proceduralnih jezika. Razlog je taj što programer, da bi rešio određeni problem, mora da definiše postupak
(poceduru) izvršavanja programa korak po korak, odnosno operaciju po operaciju.
Većina viših programskih jezika kao što su COBOL, FORTRAN, ALGOL, PASCAL, su usmereni na
rešavanje problema iz određene oblasti zbog čega se viši programski jezici često nazivaju i problemski
orijentisani jezici. Izuzetak predstavlja jezik C koji je po mnogima revolucionarni programski jezik.
9
Programski jezik C spada u grupu strukturnih programskih jezika opšte namene. Razvijen je u Belovim
laboratorijama 1972. godine od strane Denisa Ričija (Dennis Ritchie). Kaže se da spada u grupu strukturnih
jezika zato što poseduje koncept strukture, logičke celine koja obuhvata više različitih promenljivih i
funkcija. Jezik C je jezik opšte namene, tj. nije usmeren na neki određeni problem. Zbog toga se u velikoj
meri koristio kako za programiranje aplikativnog softvera tako i za programiranje sistemskog softvera. Tako
je na primer operativni sistem UNIX gotovo u celosti napisan na programskom jeziku C. Iako su danas
najviše u upotrebi objektno orijentisani programski jezici, većina softvera koji se još uvek koriste u različitim
oblastima (operativni sistemi, naučni programi, itd) su napisani u programskom jeziku C.
Razvoj programskih jezika četvrte generacije se vezuje za razvoj sistema za upravljanje relacionim bazama
podataka. Za ovu grupu jezika se kaže da su neproceduralni ili deklarativni jezici. To znači da programer ne
mora prilikom pisanja programa da piše proceduru izvršavanja programa. Umesto toga programer
korišćenjem naredbi koje su definisane konkretnim jezikom definiše šta program treba da izvrši. Određivanje
procedure (postupka) kao i njeno izvršavanje se realizuje interno u okviru programa. Očigledno je da je
ovakav način pisanja programa znatno jednostavniji nego što je slučaj primenom viših programskih jezika.
Međutim, opisana jednostavnost ima svoju cenu koja se ogleda u smanjenoj fleksibilnost i mogućnostima
programa. Zbog toga se programski jezici četvrte generacije uglavnom koriste za razvoj poslovnih
aplikativnih softvera zasnovanih na bazama podataka. Treba reći da se u poslednje vreme praktikuje
kombinovanje jezika četvrte generacije i viših programskih jezika ili objektno orijentisanih jezika.
Najpoznatiji i najprimenjivaniji neproceduralni jezik je SQL (Structured Query Language) koji se korisi u
sistemima za upravljanje relacionim bazama podataka.
Objektno orijentisani jezici su nastali unapređivanjem koncepta strukture koji su posedovali pojedini viši
programski jezici kao što su C i Pascal. Postojeće strukture podataka koje su predstavljale logičke grupe
različitih promenljivih su dobile nove osobine koje su analogne sa nekim osobinama živog sveta. Zbog toga
se takve strukture u objektno orijentisanim jezicima nazivaju klase. Jedna od ključnih osobina klasa je
nasleđivanje i predstavlja mogućnost da klasa koja je definisana kao naslednik neke druge klase nasleđuje
sve njene osobine (sve promenljive i sve funkcije koje poseduje klasa roditelj).
10