Professional Documents
Culture Documents
ELEKTROENERGETICI
Predavanja 1
PLATFORMA I RAZVOJNO OKRUŽENJE
Razvojno okruženje za rešavanje problema uz pomod računara,
odnosno pisanje programa, sastoji se od hardverskog i
softverskog dela.
Naravno, pre svega je potreban računar.
Računar je mašina koja je sposobna da, u relativno kratkom
vremenu, obradi veliki broj operacija onoliko puta koliko to
zahteva korisnik - programer.
U svom dosadašnjem razvoju, računari su prošli kroz četiri
generacije, a uveliko se govori i o petoj. Računari prve generacije
nastali su otkridem elektronske cevi. Oni su bili velikih dimenzija,
ponekad čitave sale, a obavljali su veoma mali broj operacija.
Pojavu računara druge generacije uslovilo je otkride
poluprovodničkih elemenata (silicijuma i germanijuma).
Uvođenje ovih elemenata odrazilo se na dimenzije računara,
brzinu rada, broj mogudih operacija, kao i na potrošnju električne
2
energije računara, koja je smanjena.
Pronalazak načina i tehnika integracije velikog broja elemenata u
jedan mali čip uslovio je razvoj računara treće generacije. Ovi
računari su malih dimenzija i male potrošnje, a broj operacija koji
se može izvršiti je vedi od računara ranijih generacija.
Računare četvrte generacije, za razliku od računara prethodne tri
generacije nije uslovilo neko naučno otkride, ved dalji razvoj
tehnike integracije, kao i potreba za standardizacijom izgleda i
veličine delova računarske opreme.
Računare pete generacije trebalo bi da uslovi pronalaženje bio-
čipa pri čemu bi ovi računari raspolagali veštačkom
inteligencijom i velikim bazama znanja.
Danas su daleko najpopularniji PC računari, kojima zahvaljujudi
njihovoj brzini i količini memorije mogu da se reše problemi za
koje su, u ne tako davnoj prošlosti, bili potrebni računari koji su
koštali milione dolara i imali zapreminu vede sobe.
3
OSNOVNI DELOVI RAČUNARA
Procesor (CPU) je mozak sistema tj. računara i upravlja
izračunavanjima koja pokredu programe. On najviše utiče na
brzinu računara (MHz). Kroz istoriju razvoja brzina se menjala i
stalno povedavala: 286 (do 20MHz), 386 (20-40MHz), 486 (40-
120MHz), PENTIUM I (60-233MHz), PENTIUM II (300-500MHz),
PENTIUM III (500-1000MHz), PENTIUM IV (preko 1GHz). Danas
su zastupljeni Core Duo procesori nove generacije
Sistemska memorija (RAM, SDRAM, DDR) je radna memorija
koja sadrži programe i podatke kojima procesor može da pristupa
dok računar radi. Kada isključimo računar memorija se prazni.
Kapacitet, vrsta i brzina memorije uveliko utiču na performanse
računara. Novije verzije programa zahtevaju više memorije. Za
konforan rad potregno je ugraditi bar 4Gb.
AGP magistrala (Accelerated Graphics Port) je namenska putanja
za grafičke podatke koja grafičkom kontroleru omogudava
4
direktan pristup procesoru i glavnoj memoriji.
Grafička karta služi da bismo povezali monitor na naš računar, na
sebi ima grafički čip ili procesor i sopstvenu RAM memoriju.
IDE interfejs služi za povezivanje uređaja za smeštanje podataka
(hard disk, floppy disk, USB flash, ...).
PCI magistrala obezbeđuje veze za uređaje kao što su zvučne
kartice, unutrašnji modemi, mrežne kartice i SCSI kontroleri.
Zvučna kartica, služi za reprodukciju zvuka, na njoj se nalazi i
priključak za džojstik. Od modela kartice zavise i njene
mogudnosti, kao što su priključivanje dva ili četiri zvučnika za
stereo reprodukciju ili šest zvučnika za Souround efekat. Takođe
možemo prikačiti i mikrofon ili neki drugi uređaj (muzički stub,
klavijature, ...).
Interni Modem služi da bismo imali pristup Internetu.
Mrežna karta se koristi pri povezivanju više računara u jednu
mrežu radi lakše razmene podataka. 5
Skup čipova npr. INTEL i/ili VIA chipset rade kao saobradajci na
matičnoj ploči. Oni usmeravaju protok podataka i određuju koje
de uređaje podržavati računar.
Matična ploča (motherboard, main board) je, kao što joj i samo
ime kaže, ploča koja služi da poveže sve ostale delove koje smo
do sada pomenuli u jednu celinu i da reguliše njihov rad.
Kućište je mesto gde se nalaze svi ovi delovi, i može biti DeskTop
ili Tower po izgledu, po veličini mini, midi i big, a po vrsti
napajanja AT (do pentijuma I) ili ATX (od pentijuma II).
Monitor je ekran koji nam prikazuje sve što radimo. Kvalitet
monitora je direktno povezan sa veličinom ekrana (izražena je u
inčima). U novije vreme pojavili su se tzv. LCD monitori (bez
katodne cevi, potpuno ravnog ekrana). Prednost je što su manjih
dimenzija i mnogo manje štetno zrače od klasičnih monitora.
Tastatura je ulazna jedinica tj. preko tastature komuniciramo sa
računarom, zadajemo mu instrukcije. 6
Miš je takođe ulazna jedinica i prvi put se susredemo sa njim
kada je napravljena prva verzija WINDOWS operativnog sistema.
S obzirom da Windows radi u grafičkom modu i da se veliki broj
operacija izvršava aktiviranjem komandnih dugmadi koja se
nalaze na ekranu, razumljiva je velika potreba za ovim ulaznim
uređajem.
Printer (štampač) je uređaj pomodu koje prebacujemo sadržaj sa
ekrana na papir. Postoje različite vrste štampača. Razlikujemo ih
po tome da li štampaju crno-belo ili mogu štampati i u boji,
zatim, razlikujemo ih i po načinu štampanja: matrični (imaju
traku – ribon sa bojom), InkJet (štampači koji imaju kertridže),
laserski štampači.
Sve ovo što smo do sada nabrojali, dakle svi čvrsti delovi koje
možemo dodirnuti rukom računara, jednim imenom nazivaju se
hardware. Naravno, računar se ne sastoji samo od hardvera nego
i od programa i podataka koji se nalaze u njemu. Ti programi i
podaci jednim imenom nazivaju se software. 7
Operativni sistem (OS) je program koji upravlja hardverom
računara, a istovremeno služi i kao osnova za aplikativne
programe i kao posrednik između korisnika računara i hardvera.
Gledano iz ugla korisnika računara, operativni sistem je interfejs
ka računarskom sistemu. Različiti operativni sistemi predstavljaju
se različitim interfejsima: neki su projektovani tako da budu
udobni za korišdenje, drugi da budu efikasni, a tredi pak
kombinuju oba pristupa. Gledano iz ugla računarskog sistema,
operativni sistem je softver čija je najvažnija uloga da efikasno
upravlja sistemskim resursima.
Operativni sistem se može uporediti sa dirigentom orkestra: sam
po sebi, on nema nikakvu funkciju, ali obezbeđuje okruženje u
kome neko drugi može da radi nešto korisno.
Iz ugla korisnika, izgled računara se menja u zavisnosti od
interfejsa koji mu on predstavlja. Vedina korisnika računara sedi
ispred PC računara koji se sastoji od monitora, tastature, miša i
sistemske jedinice. 8
Takav sistem je projektovan za jednog korisnika koji ima apsolutni
mnopol nad njegovim resursima. U tom slučaju, operativni
sistem je projektovan tako da bude lak za korišdenje, pri čemu je
izvesna pažnja poklonjena i performansama sistema, kao i
korišdenju resursa.
Neki korisnici sede ispred terminala povezanog sa mejnfrejm
računarom; u tom slučaju, istom računaru preko drugih
terminala pristupaju i drugi korisnici koji tada dele resurse ili
razmenjuju informacije. U takvim slučajevima operativni sistem
je projektovan tako da maksimizira korišdenje resursa, odnosno
da obezbedi da se svo dostpuno procesorsko vreme, memorija i
ulazno-izlazni uređaji koriste efikasno, a da pri tom svi korisnici
budu približno ravnopravni u njihovom korišdenju.
Postoje i slučajevi kada korisnici koriste umrežene radne stanice
povezane sa drugim stanicama ili serverima. Takvi korisnici na
raspolaganju imaju sopstvene resurse, ali i deljene resurse kao
što su mreža i serveri (npr. server za razmenu datoteka,
9
štampanje, ...).
U takvim slučajevima opertivni sistem je projektovan tako da
omogudi kompromis između upotrebljivosti na nivou
pojedinačnih korisnika i korišdenja resursa.
U poslednje vreme sve češde se koriste razne vrste džepnih
računara. Takvi uređaji su pretežno samostalne jedinice
namenjene pojedinačnim korisnicima. Neki od njih se
umrežavaju, najčešde bežično. Zbog ograničene snage, brzine i
interfejsa operativni sistemi za džepne uređaje su projektovani
tako da naglasak bude na pojedinačnim korisnicima, ali se vodi
računa i o potrošnji baterije.
Neke operativne sisteme uopšte nije briga za to kako de se
predstavljati korisnicima. Na primer, računari ugrađeni u kudne
uređaje i automobile ponekad imaju numeričke tastature ili
lampice koje prikazuju stanje, ali su njihovi operativni sistemi
projektovani tako da se izvršavaju bez ikakvog uticaja korisnika.
10
Sa tačke gledišta računara, operativni sistem je program kao i
svaki drugi; ono što ga čini toliko važnijim od svih ostalih je
njegova namena. To je program koji vodi procesor u korišdenju
sistemskih resursa i upravlja vremenom izvršavanja svih drugih
programa. Zbog zahteva da budu laki za korišdenje i održavanje, a
istovremeno i efikasni, operativni sistemi spadaju u najsloženije
programe koji su ikada napravljeni.
Dakle, operativni sistem je kontrolni program koji upravlja
korisničkim aplikacijama tako da se izbegnu greške i nepravilno
korišdenje računara. U tom smislu ima jedno specijalno
zaduženje: kontrolu rada ulazno-izlaznih uređaja.
Može se zaključiti da je teško definisati šta je tačno operativni
sistem. Takođe, ne postoji opšte prihvadena definicija šta čini
operativni sistem. Postoje operativni sistemi koji zauzimaju
manje od 1MB i nemaju čak ni program za obradu teksta, ali isto
tako postoje i oni koji zauzimaju gigabajte prostora i nude
kompletan grafički interfejs. 11
Zbog toga se najčešde podrazumeva da je operativni sistem
program koji se stalno izvršava u računaru (odnosno program koji
je stalno u radnoj memoriji računara) i tada se obično zove
kernel ili jezgro, a sve ostalo je sistemski ili aplikativni softver.
Postoje, naravno i primene gde operativni sistem nije potreban,
na primer, za upravljanje tehnološkim procesima u industriji, u
računarskim sklopovima u letelicama ili drugim vozilima – takve
se specijalizovane računarske konfiguracije često nazivaju
kontrolerima.
Njihov razvoj i testiranje, međutim, obično se vrši na klasičnim
računarima sa operativnim sistemom.
Najpopularniji operativni sistem današnjice je Windows,
proizvod kompanije Microsoft, čija poslednja verzija nosi oznaku
Windows 8 , ali su još u upotrebi starije verzije (Windows 7,
Windows XP, Windows Vista, 2000 i NT (za profesionalnu
upotrebu), te 98 i ME (za kudnu upotrebu).
12
Kombinacija operativnog sistema i hardvera se često jednom
rečju naziva platforma.
13
Za sve programske jezike postoji više proizvođača koji
obezbeđuju odgovarajude okruženje za programiranje.
Savremena svetska rešenja su obično takva da su sva rešenja vrlo
slična tako da se bez vedih teškoda može prelaziti na različita
okruženja.
Pošto se svi današnji programski jezici još uvek baziraju na
programima u tekstualnoj formi, za programiranje je za početak
neophodan editor teksta.
U editoru teksta se unosi i ispravlja programski kod (na primer,
jednostavan editor teksta na Windows platformi je Notepad, a na
Linux-u Vi editor).
Pošto se program sastoji od neformatiranog, "običnog" teksta,
nisu potrebne napredne mogudnosti tekst procesora kao što je
Word (ali bi i on mogao da posluži). Naravno, za potrebe
programiranja dobro je imati editor sa što vedim mogudnostima
(na primer, različito bojenje elemenata programa, podrška za
makroe, napredne mogudnosti pretrage, itd). 14
Kada je program napisan, potrebna je i aplikacija kojom računar
može da ga prevede i izvrši.
Generalno, programski jezici se dele na kompajlirane i
interpretirane.
Interpretirani jezici se izvršavaju "na licu mesta" – potreban je
poseban program – interpreter – koji kod programa u
tekstualnom formatu interpretira liniju po liniju i neposredno je
izvršava.
Interpretirani jezici se obično koriste za programe privremene
namene, kao i tamo gde se zahteva portabilnost (prenosivost)
između platformi, na primer na Internetu (VBScript, Perl, Java).
Kod interpretiranog programa često se naziva skript.
Interpretirani programi se izvršavaju sporije, ali su programi u
njima obično jednostavniji i brže se pišu.
Kod kompajliranih jezika, proces pravljenja aplikacije se tipično
sastoji od dva koraka.
15
Kompajlirani jezici zahtevaju poseban program – kompajler ili
prevodilac – kojim se kod programa prevodi u mašinski jezik
(objektni kod). Objektni kod se ne može izvršavati sam za sebe.
Od više datoteka objektnog koda mogu se kombinovati biblioteke
(libraries) – one predstavljaju module koji se mogu prenositi na
druge računare i povezivati (linkovati) kasnije.
Tipično, kompajlirani jezici se koriste za kompleksnije i teže
primene, gde se zahteva veda efikasnost izvršavanja (Fortran,
C++, Pascal).
Zatim, linker (punilac) konačno spaja delove objektnog koda iz
različitih datoteka u konačni proizvod – izvršnu datoteku.
16
Uz sam razvojni sistem proizvođač isporučuje sistemske
biblioteke, koje sadrže standardni kod namenjen komunikaciji sa
operativnim sistemom ( na primer, sistemske biblioteke mogu
sadržati rutine za ispis na ekran, učitavanje sa tastature ili
standardne matematičke funkcije).
21
22
Početak rada sastoji se u definisanju projekta (Project). Projekat
je skup svih izvornih datoteka koje treba da se linkuju, datoteka
sa resursima, ulaznih, izlaznih i pomodnih datoteka. Da bi se
napravio novi projekat, potrebno je iz menija File izabrati opciju
New..., a zatim Project (Ctrl+Shift+N). Pojavide se dijalog-boks
slededeg izgleda:
23
Neke od konfiguracija za projekat mogu biti:
- Windows Forms Application – puna Windows aplikacija, koja
koristi Windows API;
- Dynamic-Link Library – biblioteka sa dinamičkim
povezivanjem (DLL). DLL-ovi su datoteke koje sadrže potpuno
izvršne funkcije, ali koje se mogu pozivati samo iz drugih
programa. Funkcije (i tipove podataka) koje sadrži DLL mogu
se pozivati iz Windows programa pisanih u bilo kojem
programskom jeziku, i to za vreme njihovog izvršavanja (tj.
funkcije iz DLL-a se nikad ne linkuju sa programom).
- Console Application – podrazumevana (default) konfiguracija.
Predstavlja, praktično, standardni DOS program u tekstualnom
režimu.
- Class Library – biblioteka za kreiranje klasa koje se kasnije
mogu povezivati (linkovati) sa drugim programima.
- Empty project – prazan projekat za kreiranje lokalne
24
aplikacije.
U Location edit-boksu treba uneti putanju do foldera u kojem de
se nalaziti projekat. Pritiskom na dugme Browse dobija se
standardni dijalog-boks iz kojeg se može izabrati taj folder (to
mora biti postojedi folder).
U Name edit-boksu treba uneti ime projekta. To ime de, ujedno,
biti i ime .exe datoteke koja se gradi. Istovremeno sa kucanjem, u
Location boksu de se formirati puna putanja do foldera projekta.
Pritiskom na OK, otvoride se nov prazan projekat. MSVS de
napraviti nov folder (u slučaju sa slike to de biti
D:\NASTAVA\PRuEE_2\) i u njega smeštati sve datoteke koje
kreira korisnik. Takođe, to de biti radni direktorijum – u njemu
treba da se nalaze sve ulazne datoteke aplikacije, i u njemu de se
nalaziti izlazne datoteke aplikacije (ako se drugačije ne podesi). U
folderu projekta de se nalaziti konfiguraciona datoteka projekta.
25
Editor
Komande MSVS editora su manje-više standardne za sve
Windows tekst-editore. Ovde de biti samo nabrojane najčešde
korišdene komande mišem i sa tastature.
26
Tastatura Miš Akcija
KRETANJE PO TEKSTU
End
Kraj reda
Ctrl+Home
Početak datoteke
Ctrl+End
Kraj datoteke
Ctrl+
Reč nalevo/nadesno
27
Tastatura Miš Akcija
SELEKCIJA TEKSTA
Selekcija
Prevlačenje preko prethodnog/sledećeg
Shift+ Teksta karaktera
Selekcija
Shift+ Prevlačenje preko prethodnog/tekućeg
Teksta reda
Selekcija do početka
Shift+Home Prevlačenje preko reda
Teksta
Selekcija do kraja
Shift+End Prevlačenje preko reda
Teksta
Selekcija do početka
Ctrl+Shift+Home Prevlačenje preko datoteke
Teksta
Selekcija do kraja
Ctrl+Shift+End Prevlačenje preko datoteke
Teksta
Izbor celog teksta
Ctrl+A datoteke
28
Tastatura Miš Akcija
29
Tastatura Miš Akcija
30
Tastatura Miš Akcija
MANIPULACIJA DATOTEKAMA
RAZNO
32
Prevođenje i linkovanje
Kada je završen unos koda, datoteke projekta se mogu prevoditi i
linkovati. Vedina potrebnih komandi se nalazi u Build meniju:
- Compile (Ctrl+Shift+B) – kompajlira tekudu datoteku (onu koja
je aktivna u prozoru editora). Ova komanda se u praksi ne
koristi često, jer naredne dve vrše i kompajliranje i linkovanje:
- Build – kompajlira samo izmenjene datoteke i linkuje
(izgrađuje aplikaciju). Ova komanda se najčešde koristi.
- Rebuild All – kompajlira i linkuje sve datoteke projekta.
- Configurations Menager – prikazuju sve konfiguracije
projekta. Po defaultu postoje dve konfiguracije projekta:
Debug i Release. Debug konfiguraciju projekta treba koristiti
pri razvoju projekta. Release konfiguraciju treba koristiti za
konačnu verziju aplikacije. Korisnik može sam kreirati nove
konfiguracije, ali su to prilično napredne opcije. 33
Nakon građenja (Ctrl+Shift+B) u izlaznom prozoru de se otvoriti
Error list tab, u kojem de se pojaviti poruke o prevedenim i
linkovanim datotekama projekta i lista eventualnih grešaka i
upozorenja. Ukoliko ima grešaka, one se pronalaze i otklanjaju na
slededi način:
36
Naravno, mnogo češde de se desiti da program ne radi kako
treba, pa je potrebno ispraviti greške. Jedno od najmodnijih
delova integrisanog razvojnog okruženja je dibager. Osnovne
komande dibagera su:
- Debug/Start Debugging (F5) – pokretanje programa do
slededeg breakpoint-a (tačke prekida)
- Debug/Toogle Breakpoint (F9) – umetanje/uklanjanje
breakpoint-a. Breakpoint se u kodu pojavljuje kao crvena
tačka sa leve strane linije.
- Step Over (F10) – izvršava narednu naredbu programa ne
ulazeći u potprograme (funkcije)
- Step Into (F11) – izvršava narednu naredbu programa ulazeći u
potprograme (funkcije)
38
39
Nije neophodno eksplicitno izvršiti Build Solution komandu da bi
se projekat preveo i linkovao. Ukoliko su vršene izmene u kodu i
pokrene se Start Whitout Debugging (Ctrl+F5) ili neka od
komandi dibagera, MSDEV de postaviti pitanje korisniku da li želi
da izgradi aplikaciju. Na pitanje treba odgovoriti sa Yes (ili samo
stisnuti Enter) i okruženje de izvršiti prevođenje i linkovanje pre
pokretanja.
Kada se pokrene dibager, radno okruženje se menja: umesto
izlaznog prozora pojavljuje se Watch prozor, a umesto info
prozora prozor sa varijablama.
Watch prozor ima četiri ravnopravna taba, u koje se može
umetnuti proizvoljan broj varijabli za posmatranje.
Postoji više načina da se doda nova varijabla u Watch prozor.
Jedan je kucanje, a drugi, jednostavniji, je da se dvaput klikne
mišem na varijablu u editoru i zatim se ona samo mišem odnese
u Watch prozor. 40
41
Prozor Locals prikazuje vrednosti svih promenljivih vidljivih u
programskoj jedinici koja je aktivna u prozoru editora. Ovaj
prozor je posebno zgodan za programe sa malim brojem
promenljivih, kada Watch prozor praktično nije ni potreban. Za
vede programe, upotreba prozora Locals nije naročito praktična,
jer lista postaje jako dugačka, a nije ni organizovana po nekom
smislenom (npr. abecednom) redu.
42
Najbrži način da se vide vrednosti skalarnih promenljivih je da se
prinese pokazivač miša promenljivoj u editoru i zadrži krade
vreme. Pored pokazivača de se pojaviti tooltip sa vrednošdu
promenljive.
Žuta strelica sa leve strane u prozoru editora prikazuje trenutno
aktivan red programa. Kako se prolazi kroz program, promenljive
koje su promenile vrednost u Watch prozoru i prozoru varijabli se
boje u crveno.
U dibageru je mogude menjati kako redosled izvršavanja linija
programa, tako i vrednosti varijabli. Da bi se skočilo na neku liniju
koda, potrebno je u editoru dovesti pokazivač miša do nje i
kliknuti desnim tasterom. Pojavide se meni sa spiskom korisnih
opcija. Sada treba izabrati poslednju, Set Next Statement, i
program de predi sa izvršavanjem na tu liniju. Pritom, aktuelne
vrednosti svih varijabli ostade nepromenjene. Uopšte, klikom na
desni taster miša bilo gde u MSDEV-u dobide se meni sa spiskom
najčešde korištenih akcija. 43
Vrednosti varijabli se mogu menjati u Variables ili Watch prozoru,
klikom miša na vrednost varijable i kucanjem nove vrednosti.
Ukoliko se uoči greška u kodu, nije neophodno izlaziti iz režima
dibagera, nego je mogude program menjati i u tom režimu.
44
45
U kontekst-meniju, koji se dobija desnim klikom miša na ime
promenljive ili potprograma u editoru, može se izabrati:
46
PROGRAMSKI JEZICI
Programski jezik je veštački jezik koji se može koristiti za kontrolu
ponašanja mašine, naročito računara.
Programski jezici su definisani preko sintaksnih i semantičkih
pravila koja respektivno opisuju njihovu strukturu i značenje.
Kroz istoriju, kao i računari, prošli su kroz različite faze razvoja i
primene. Do danas je razvijeno i implementirano veliki broj
različitih programskih jezika (razvijeno preko 8000 programskih
jezika).
Različiti su faktori koji utiču na razvoj programskih jezika:
apstraktni nivoi jezika
aplikacione oblasti
arhitektura računara
jezičke paradigme
implementacioni modeli 47
Mašinski jezik se sastoji od numeričkog koda za operacije koji
određeni računar može direktno izvršiti. Taj kod je alfanumerička
serija 0 i 1, ili binarni kod (bajt), koji se često pretvara u
heksadecimalni kod (na bazi broja 16), radi lakše čitljivosti i
modifikacije. Mašinski jezik je težak za čitanje i pisanje, pošto ne
liči na konvencionalno matematičko predstavljanje niti na
prirodni jezik, a njegov kod varira od računara do računara.
48
Programski jezik visokog novoa je programski jezik sa jakom
apstrakcijom u odnosu na bazično korišdenje računara. U
poređenju sa programskim jezikom niskog nivoa, programski
jezik visokog nivoa može koristiti elemente iz prirodnog jezika,
biti lakši za korišdenje i tako činedi proces izrade programa
jednostavnijim i razumljivijim u odnosu na jezik niskog nivoa.
Količina apstrakcije definiše na koliko „visokom nivou“ je
programski jezik. Za razliku od programskih jezika niskog nivoa,
programski jezici visokog nivoa imaju malo, ili nimalo, jezičkih
elemenata koji se direktno prevode u mašinski kod.
Uvođenjem programskih jezika višeg nivoa programiranje se čini
jednostavnijim, analiza koda bržom ali program napisan na taj
način karakteriše sporije izvršavanje i vedu memorijsku
potrošnju. To u pojedinim situacijama može da predstavlja
ograničenje primene višeg programskog jezika, kao solucije za
rešavanje nekog problema.
49
Apstrakcije u programskim jezicima mogu biti
bazne apstrakcije
strukturne apstrakcije
proceduralne apstrakcije
apstrakcije podataka
Razvijen je veliki broj različitih programskih jezika za različite
aplikacione domene:
poslovne aplikacije (COBOL, SUBP)
numeričke aplikacije (FORTRAN)
Veštačka inteligencija (logički i funkcionalni jezici)
Sistemsko programiranje (C, C++)
Web programiranje (Java, Perl)
Jezici za posebne namene
50
Tokom vremena su se menjale i metode programiranja:
od 1950 do sredine 60-tih godina prošlog veka nisu postojale
jasno definisane metode programiranja
Krajem 60-tih i početkom 70-tih godina prošlog veka dominante
su bile metode strukturnog programiranja i proceduralne
apstrakcije
Krajem 70-tih se uvodi apstrakcija podataka
Sredinom 80-tih se pojavljuje objektno orijentisano
programiranje
1995 do danas imamo distribuirano programiranje, Web
aplikacije
Razlike između pojedinih vrsta programskih jezika baziraju se na
modelu, tj. paradigmi koji podržavaju. Postoje četiri glavne vrste
programskih jezika:
1.imperativni
2.objektno orijentisani 51
3. funkcionalni
4. logički
Program napisan u imperativnim programskim jezicima
karakteriše izvršavanje kao sekvenca instrukcija. Ključna
operacija je operacija dodele. Podržava bazne apstrakcije,
strukturne apstrakcije, proceduralne apstrakcije.
Funkcionalni programski jezici baziraju se na matematičkim
modelima. Program sadrži funkcije koje uzimaju argumente i
vradaju vrednosti. Ključna operacija je primena funkcija
(rekurzivno ili kompozitno).
Program napisan u logičkim programskim jezicima predstavlja
skup tvrđenja i pravila. Logičko tvrđenje izražava osobinu o
nekom objektu; na osnovu tvrđenja program dedukuje druga
tvrđenja.
52
Objektno orijentisani programski jezici baziraju se na objektima i
vezama između njih. Ključni koncepti su apstraktni tipovi
podataka, enkapsulacija, nasleđivanje i polimorfizam. Ključna
operacija je prenošenje poruka.
Što se tiče načina implementacije viši programski jezici se dele
na:
kompajlerske
interpreterske
hibridne
53
3. pouzdanost (provera tipa, obrada izuzetaka, ograničavanje
alijasa, čitljiovsost, lakoda učenja i pisanja
4. cena (obuka programera, vreme pisanja koda, pouzdanost,
održavanje, ...)
Izučavanje koncepata viših programskih jezika je bitno jer
omoguduje lakše i brže učenje novih programskih jezika, bolji
izbor odgovarajudeg jezika za određeni problem, nove načine
razmišljanja u rešavanju problema, bolje razumevanje važnosti
implementacije.
Često se raspravlja o tome koji je jezik „bolji“: C++, Java, C#, C,
Fortran, Delphi ..., pa demo se ovde ukratko osvrnuti i na tu
problematiku. Osnovna razlika je tip okruženja za koje su
namenjeni. Jezik C++ je izmišljen da bi se pisali veoma efikasni
programi za određeni tip procesora i operativnog sistema. Ako
želite da izvršite isti C++ program na drugom sistemu, moradete
ponovo da ga kompajlirate i specijalno optimizujete za tu
platformu. 54
Java je razvijena posebno za potrebe internet programiranja, a
C# za programiranje modularnih softverskih komponenata,
Fortran i dalje ima najbolje performanse za rešavanje
matematičkih i inženjerskih problema iz raznih oblasti, Delphi je
pogodan za pravljenje grafičkih aplikacija.
Dakle, odgovor na pitanje koji programski jezik je bolji zavisi od
toga kakav se problem rešava.
55
Programski jezik Fortran - uvod
• Opšta tendencija u razvoju viših programskih jezika je, da po
mogudnostima i kvalitetu, kao i samom dizajnu, svi programski
jezici sve više liče jedni na druge (ovde se pre svega misli na
programske jezike koji se mogu upotrebiti za rešavanje istog
problema).
• U najvedem broju slučajeva čak su i principi i forma jezika
slični.
FORTRAN 77
FORTRAN 90
FORTRAN 95
FORTRAN 2003
FORTRAN 2008
Programski jezik Fortran - uvod
• Prva verzija programskog jezika FORTRAN I nastala je u
periodu između 1954-1957.
• Pre toga, programi su generisani u mašinskom jeziku, što je
bio spor, dosadan i greškama podložan proces.
• Prva verzija programskog jezika Fortran I bila je znatno manjih
mogudnosti od današnje moderne verzije. Podržavala je samo
intedžerske i realne promenljive i imala mali set naredbi, nije
podržan koncept potprograma. Ovi i drugi nedostaci
prevaziđeni su tokom daljeg razvoja programskog jezika.
• Verzija FORTAN IV, nastala 1962. godine, donela je velika
poboljšanja i postala standardna verzija narednih 15 godina.
FORTRAN IV je 1966. godine adaptiran u skladu sa ANSI
standardom i tako je nastala verzija FORTRAN 66.
Programski jezik Fortran - uvod
• Sledede značajne dopune FORTRAN je doživeo 1977. godine.
FORTRAN 77 uključuje nove karakteristike dizajnirane da
omogude lakše struktuiranje i održavanje programa, uvodi IF
blokovnu konstrukciju i omogudava laku manipulaciju sa
znakovnim promeljivama.