You are on page 1of 13

SVEUILITE/UNIVERZITET VITEZ U TRAVNIKU

FAKULTET POSLOVNE INFORMATIKE


STUDIJ PRVOG CIKLUSA, I. GODINA STUDIJA
SMJER INFORMACIONE TEHNOLOGIJE

Jezini procesori
Seminarski rad

Predmet: Principi programiranja


Profesor: Prof. Dr. Sisisa Minic
Asistent: Mr. Mahir Zajmovi
Student: Sandrino Vulovi

TRAVNIK, Juni, 2015. godine.

Sadraj
1.

UVOD............................................................................................................... 3

2.

DEFINICIJA JEZIKOG PROCESORA....................................................................4

3.

PODJELA JEZIKIH PROCESORA........................................................................5

4.

3.1.

Prevoenje sa mainski-orijentiranih jezika...............................................5

3.2.

Prevoenje sa viih programskih jezika.....................................................6

STRUKTURA JEZIKIH PROCESORA...................................................................8


4.1.

Struktura interpretatora............................................................................. 8

4.2.

Struktura kompajlera (prevodioca)............................................................9

4.3.

Poreenje interpretacije i prevoenja......................................................10

5.

ZAKLJUAK..................................................................................................... 11

6.

LITERATURA.................................................................................................... 12

1.UVOD
Da bi se upoznali sa jezinim procesorima o njihovim tipovima i
strukturi na poetku moramo rei neto i o jezicima. Jezici se kao tip
komunikacije izmeu ovjeka i raunara primjenjuju od druge polovine
pedesetih godina, kada je definirana prva verzija programskog jezika
FORTRAN i kada je napravljen prevodilac za njega. Osnovni motiv za
uvoenje jezika je potreba da se premosti razlika u nivou razmiljanja
ovjeka i raunara. Dok ovjek ima mogunost da razmilja na
razliitim, a ponekad i visokim, nivoima apstrakcije, raunar je
ogranien na mogunosti koje su definirane u trenutku njegove
izgradnje i u toku izgradnje njegovog operativnog sistema. Jezici
omoguavaju ovjeku da formulira poruku na nain koji je za njega
relativno jednostavan i prirodan. S druge strane, precizna definicija
doputenih oblika i njihovog znaenja omoguava izgradnju jezinih
procesora pomou kojih raunar tumai jezik.
Svaki od programskih jezika u svom sastavu ima jezini procesor koji
programe napisane u tom jeziku preslikava (prevodi) u oblik koji
kompjuter prepoznaje i neposredno izvrava ili ih interpretira.
Cjelokupni rad raunara zasniva se u osnovi na sljedeem: procesor
prima podatke od ulaznog ureaja, obradi ih i izvri i rezultat poalje na
izlazni ureaj kako bi ih prikazao korisniku. Svaki procesor raspolae sa
skupom instrukcija koje su kodirane brojem. Izvravanje programa je u
sutini kopiranje brojeva u radnu memoriju i njihovo oitavanje i
izvravanje od strane procesora. Niz brojeva meusobno poslaganih u
jednu svrsishodnu cjelinu ini program, a postupak izrade te cjeline
pomou jednog od jezinih procesora naziva se programiranje. Slijed
instrukcija jezinog procesora, napisan u jednom od editor-a, koje e se
potom procesoru prevesti da ih moe izvriti, mora biti logian i
usklaen s modelom odvijanja zadataka koji se naziva algoritam.

2.DEFINICIJA JEZIKOG PROCESORA


Upotrebu elektronikih digitalnih kompjutera nemogue je zamisliti bez
primjene jezinih procesora i programskih jezika kao to su C, C++,
Java, Fortran. Danas postoji mnotvo programskih jezika i jezinih
procesora razliitih mogunosti i podruja primjene. Zajedniki dijelovi
viih programskih jezika, kao to su varijable, iterativni i rekurzivni
algoritmi, polja, datoteke i apstraktni tipovi podataka omoguuju
koritenje kompjutera, a da korisnik pri tome ne poznaje grau
kompjutera koja je zasnovana na registrima, binarnim zapisima,
numerikim adresama memorijskoj hijerarhiji itd. Zadatak jezinog
procesora je da svojim interfejsom priblii upotrebu kompjutera
razliitim podrujima primjene.
Jezini procesor prevodi zapis algoritma iz izvornog jezika Li, u zapis
algoritma u ciljnom jeziku Lc koji je mogue izvesti na kompjuteru.
Jezini procesor je u pravilu program koji na ulazu ita program napisan
u izvornom jeziku, te ga prevodi u istovjetni program u ciljnom jeziku.
Definicija jezinog procesora zasnovana je na tri jezika: izvorni jezik,
ciljni jezik i jezik izgradnje. Budui da je u veini sluajeva jezini
procesor program, jezik izgradnje jeste jezik kojim je ostvaren sam
jezini procesor. Na temelju date definicije rad jezinog procesora

prikazuje se na sljedei nain:

Slika1. Rad jezinog procesora

Rad jezinog procesora zasniva na prevoenju programa iz jednog


jezika u drugi jezik, pri emu se program definira kao niz znakova, a
znakovi su slova abecede, dekadske znamenke, operatori, posebni
znakovi i pravopisni znakovi.

3.PODJELA JEZIKIH PROCESORA


Elektronski raunari mogu da izvravaju jedino programe izraene na
mainskom jeziku. Izvrni program je u tom sluaju zapisan preko
binarne abecede {0,1}. Ako je program zapisan na nekom jeziku koji je
drugaiji od mainskog, mora se izvriti prevoenje na mainski jezik.
Prevoenje na mainski jezik obavljaju specijalni programi, odnosno
jezini procesori koji se u osnovi dijele na :

Asembleri vre prevoenje sa mainski-orjentiranih jezika na


mainski jezik.
Kompajlere i interpretere vre prevoenje sa viih programskih
jezika na mainski jezik.

Slika 2. Podjela jezikih procesora

3.1. Prevoenje sa mainski-orijentiranih jezika


Binarni oblik pisanja instrukcija vrlo je blizak i razumljiv digitalnom
raunaru, ali ne i ovjeku. To je 'najnii' PROGRAMSKI JEZIK, usko vezan

za sklopovsku strukturu elektronike digitalnog raunara. Binarni oblik


instrukcija moe upotrebljavati samo onaj ko dobro poznaje sklopove
raunara kojeg koristi, a to podrazumijeva veliko znanje iz elektronike i
informatike. Zbog toga se u poecima koritenja raunarske tehnike
zahtijevao posebno obuen kadar. Takav nain upravljanja raunarom
bio je spor i tegoban, podloan grekama i neproduktivan te se danas
vie i ne koristi. Stoga su razvijeni programski jezici koji svojim skupom
programskih alata omoguavaju laki i efikasniji rad izrade programa.
Ako se binarni zapisi pretvore u heksadecimalne, pisanje programskih
instrukcija je dosta olakano. Koritenjem prevodioca heksadecimalni
zapisi pretvaraju se u binarne. Pridodavanjem kraih naziva
(mnemonika) za pojedine instrukcije, pisanje niza instrukcija u
smiljenom logikom nizu (program) postalo je jo lake. Prevodilaki
programi toga tipa nazivaju se ASEMBLERI, broj instrukcija asemblera
prevodi se u isti broj binarnih instrukcija, i za svaku drugu vrstu
procesora koristi se drugaiji prevodilac. No, programiranje je i dalje
vrlo zahtijevan posao.

3.2. Prevoenje sa viih programskih jezika


Tek pojava 'viih' programskih jezika u sutini je olakala rad
programerima.
Postoje dva principa koji se koriste pri prevoenju izvornih programa sa
viih programskih jezika na mainski jezik:
1. kompilacija i
2. interpretacija.
Ako su proces prevoenja i proces izvravanja vremenski razdvojeni,
vri se kompajliranje (kompilacija) programa. Program koji to realizira
naziva se kompajler (prevodilac, kompilator).
Ako su proces prevoenja i proces izvravanja vremenski povezani, vri
se interpretacija programa. Program koji to realizira naziva se
interpretator.
Kod viih programskih jezika se simboliki napisana instrukcija prevodi
u niz binarnih instrukcija, dakle jedna instrukcija programskog jezika
objedinjuje se niz binarnih instrukcija koje tvore jednu jedinstvenu
zadau, na primjer ispis znaka na ekranu ili dodjela varijabli ASCII
vrijednosti znaka i drugo. Razvojem raunarskih sistema razvijali su se i
programski jezici razliiti prema namijeni, na primjer COBOL, PASCAL,
C, FORTRAN, ALGOL i drugi.
Kada se program napie instrukcijama u jednom od navedenih 'viih'
jezika, taj niz instrukcija predstavlja IZVORNI (SOURCE) kod programa,

potom se prevodi pomou prevodilakog programa (COMPILER) u skup


binarnih instrukcija, koje mikroprocesor moe prepoznati i odraditi,
nazvan IZVRNI (EXECUTABLE) kod. Ako se ele izvriti izmjene u radu
programa, tada treba izvriti odgovarajue izmjene u izvornom kodu i
ponovo izvriti prevoenje u izvrni kod. Kako ne postoji idealni
prevodilac koji e u potpunosti minimizirati izvrni kod, ovako izraeni
programi su neto dui i sporiji od programa pisanih u asembleru, ali je
razlika bez znaaja u odnosu na jednostavnost primjene viih
programskih jezika.
Jezici koji koriste prevodilaki program nemaju samo prevodioca
(compiler), koji izvorni kod prevodi kao jedan modul. Prevedenom
modulu treba pridodati potrebne gotove module jezinog procesora ili
druge ve izraene module i sve meusobno povezati pomou
programa za POVEZIVANJE (LINKER) u jednu jedinstvenu izvrivu
cjelinu.
Kako je binarni kod specifian za sklopove DRS, ne moe se prevodilac
jedne raunarske platforme primijeniti na drugoj, ali se izvorni kod
moe prevesti na bilo kojoj platformi ako za nju postoji istorodni
prevodilac. Dakle, vii programski jezici osiguravaju i prenosivost s
platforme na platformu. DRS za koji postoji vie prevodioca za razliite
programske jezike sustavno je bogatiji i moniji. No i tu ima podosta
sitnih pojedinosti koje to onemoguavaju ba jednostavno, kao na
primjer razliiti standardi za razluivost slike, razliiti naini spremanja
podataka na disk i slino to zahtijeva temeljitije preinake pri prijenosu
aplikacije s jedne raunarske platforme na drugu.
Neki programski jezici rade na naelu pojedinanog pretvaranja
instrukcija jezika u binarne instrukcije. Njihovi prevodioci su krai i
jednostavniji i ne izrauju izvrni kod. Putem simultanog prevoenja
izvrava se sam izvorni kod. Takvi prevodioci nazivaju se
INTERPRETERI, a najpoznatiji od njih je BASIC. Lake se otklanjaju
greke prilikom izvravanja izvornog koda, ali je zato izvoenje
programa jako sporo zbog uzastopnog prevoenja.
Instrukcije jezinog procesora piu se u nekom od ASCII ureivaa
teksta (EDITOR), koji ne podravaju zaglavlja, centriranje teksta,
poravnavanje i slino, jer to za ovu namjenu nije potrebno, ali e imati
neke druge mogunosti potrebne programeru kao kontrola ispravnosti
naziva instrukcija i slino. Pojedini programski jezici imaju vlastiti
editor, u sutini s navedenom namjenom. Uz navedeno, vrlo su
znaajni i skriptni jezici koji prvenstveno slue za administraciju
operativnih sustava. U Unix okruenju vrlo su popularni u pogledu
odravanja posluitelja i njegovih web stranica, kao BASH (ujedno
korisnikova pristupna koljka sistemu), AWK, PERL, Python, JavaScript,
PHP i drugi.

4.STRUKTURA JEZIKIH PROCESORA


4.1. Struktura interpretatora
Kod interpretatora, jezika analiza (koja se, na kraju, svodi na
izvravanje programa) ostvaruje se na sljedei nain: uzima se
instrukcija programa, vri se sintaksna analiza te instrukcije, nakon toga
se vri semantika obrada te instrukcije, a zatim se prelazi na sljedeu
instrukciju, za koju se postupak ponavlja, sve dok se ne naie na
instrukciju koja trai zavretak rada. U ovom sluaju se semantika
obrada izvrnih instrukcija svodi na izvravanje instrukcija. Izvorni kod
(program) P je jedan od ulaznih podataka interpretatora.
Kako u programu mogu postojati ciklusi, interpretator uva izvorni
program u nekom unutranjem obliku. Unutranji oblik je veoma blizak
izvornom obliku u tom smislu da se iz unutranjeg moe rekonstruirati
izvorni oblik. Ulazni podaci D programa P su takoer ulazni podaci
interpretatora. On ih uzima kada interpretira instrukcije koje to
zahtijevaju. Rezultat rada interpretatora su izlazni podaci programa koji
se interpretira.

Slika 3. Struktura interpretatora programskog jezika

to se tie strukture interpretatora, njihova struktura se moe naslutiti


iz slike kojom su prikazani. Analiza instrukcije zapravo sadri i leksiku i
sintaksnu analizu. Semantika obrada kod interpretatora svodi se na
izvravanje pojedinanih instrukcija. Jasno, potreba za optimizacijom ne
postoji, jer bi uteda u brzini izvravanja bila zanemarljiva u odnosu na
vrijeme koje je potrebno da se izvri optimizacija.

4.2. Struktura kompajlera (prevodioca)


Kompjaleri (prevodioci) su jezini procesori koji prevode program s
jednog jezika na drugi. Jezik sa kojeg se prevodi je izvorni, a jezik na koji
se prevodi je izlazni ili ciljni jezik prevodioca. Izvravanje nekog
programa P napisanog na izvornom programu L odvija se u dva koraka.
U prvom koraku P se prevodi sa izvornog na izlazni jezik L'. U drugom
koraku dobijeni program se interpretira. Posebno znaajna vrsta
prevodilaca su prevodioci iji izlazni jezik je mainski jezik raunara. U
tom sluaju interpretaciju izlaznog programa (odnosno, izvravanje tog
programa) obavlja sam raunar, bez dodatnog jezinog procesora.

Slika 5. Struktura prevodilaca

Razliiti nivoi prevoenja podijeljene su u dvije osnovne faze:


1. analiza izvornog programa
izvode se dva procesa prevoenja sa ciljem pojednostavljenja
procesa prihvaanja izvornog programa
jedan tokom leksike analize,
drugi tokom sintaksne analize i semantike analize.
2. sinteza ciljnog programa
izvode se tri procesa prevoenja sa ciljem pojednostavljenja
procesa generiranja ciljnog programa
prevoenje vieg meukoda u srednji meukod (pretvaranje
sloenih podatkovnih struktura, kao to su polja podataka, i

sloenih kontrolnih naredbi u niz naredbi koje koriste iskljuivo


varijable i jednostavne naredbe grananja)
prevoenje srednjeg meukoda u nii meukod (naredbe nieg
meukoda koriste simbolike registre r1 do r8)
prevoenje nieg meukoda u ciljni program

4.3. Poreenje interpretacije i prevoenja


Prevoenje i interpretacija su pristupi ije su prednosti i nedostaci
komplementarni.
Kako interpretator analizira i izvrava jednu po jednu instrukciju, u
sluaju da u programu postoje ciklusi, iste instrukcije e se analizirati
vie puta, ime se gubi u brzini izvravanja. Meutim, kako su izvorni
program i njegovi podaci prisutni u toku izvravanja, interpretatori po
pravilu omoguavaju neposredan pristup korisnika procesu raunanja,
izvornom programu i podacima tog programa. Koncept interpretatora
posebno je pogodan za programe koji imaju samo jednu instrukciju, ili
koji nemaju cikluse to je sluaj kod jezika u sastavu tekst editora ili
jezika za kontrolu paketnih obrada, kao i u sluaju da je vrijeme analize
zanemarljivo u odnosu na vrijeme izvravanja, to se deava kod jezika
za rad s bazama podataka i s problem orijentiranim jezicima.
Prevodilac (u sluaju da je izlazni jezik mainski) daje kao rezultat
programe ije izvravanje se odvija vrlo brzo. Iako je proces prevoenja
relativno spor, ako izlazni program treba da se izvrava vie puta,
troak prevoenja e se isplatiti. S druge strane, prevedeni program
gubi skoro svaku vezu s izvornim. Ako neto u programu treba da se
izmjeni, cijeli postupak mora da se ponovi. Koncept prevoenja na
mainski jezik nezamjenljiv je u sluaju programa s intenzivnom
numerikom obradom, kada je vano da se operacije izvravaju
maksimalnom brzinom koju raunar omoguava.

5.ZAKLJUAK
Moemo zakljuiti da je cjelokupni rad raunara zasnovan u osnovi na
tome da procesor prima podatke od ulaznog ureaja, obradi ih i izvri i
rezultat poalje na izlazni ureaj kako bi ih prikazao korisniku.
Svaki procesor raspolae sa skupom instrukcija koje su kodirane
brojem. Izvravanje programa je u sutini kopiranje brojeva u radnu

memoriju i njihovo oitavanje i izvravanje od strane procesora. Niz


brojeva meusobno poslaganih u jednu svrsishodnu cjelinu ini
program, a postupak izrade te cjeline pomou jednog od jezinih
procesora naziva se programiranje.
Bez jezinih procesora u koje spadaju
interpreteri raunari ne bi mogli funcionirati.

asembleri,

kompajleri

6.LITERATURA
1. SKRIPTA: PRINCIPI PROGRAMIRANJA - Prof. dr Sinia Mini Mr sci
Hadib Salki
2. Sinia Srblji , Jezini procesori 1., 2. izdanje, Zagreb 2002

You might also like