Upload
mirza-music
View
263
Download
0
Embed Size (px)
Citation preview
8/10/2019 programski jezici.pdf
1/67
Dr. sc. Nikola Klem, dipl.el.in.
Sveuilite J.J. StrossmayeraGraevinski fakultet u Osijeku
PROGRAMSKI
JEZICI
Osijek, k. god. 2005/2006.
8/10/2019 programski jezici.pdf
2/67
Nikola Klem 2
Komunikacija sa raunalom
01100111101
8/10/2019 programski jezici.pdf
3/67
8/10/2019 programski jezici.pdf
4/67Nikola Klem 4
Programski jezici
FORTRAN = FORmula TRANslationCOBOL = Common Bussines Oriented LanguageALGOL = ALGOrithmic Language
PL/I = Programing Language I (one)BASIC = Beginners All Purpose SymbolicInstruction Code
PASCALADA
8/10/2019 programski jezici.pdf
5/67
Nikola Klem 5
Programski jezici
Problemski orijentirani jezici
COGO = Civil Engineering Coordinate GeometrySTRESS = STRuctural Engineering System SolverHYDRO = Hydraulic Engineering Computations
Jezici srednje razine
C, C++Visual Basic
8/10/2019 programski jezici.pdf
6/67
Nikola Klem 6
Programski jezici
Program se pie u izvornom jeziku (source
language).
Raunalo izvrava program u strojnom jeziku
(object language).
IZVORNIPROGRAM
PROGRAMPREVODITELJ
STROJNIJEZIK
8/10/2019 programski jezici.pdf
7/67
Nikola Klem 7
Programski jezici
Program prevoditelj kompajler (compiler)
prevodi program napisan u izvornom jeziku ustrojni jezik.
Proces prevoenja se zove kompilacija.
Kod asemblerskih jezika proces prevoenja sezove asemblovanje (asembliranje).
SVAKO RAUNALO MORA IMATI PROGRAMPREVODITELJ ZA SVAKI PROGRAMSKI JEZIK
KOJI SE KORISTI.
8/10/2019 programski jezici.pdf
8/67
8/10/2019 programski jezici.pdf
9/67
Nikola Klem 9
Programski jezici
Interpretativni i interaktivni programski jezici su
jezici kod kojih se svaka naredba moe tumaitii izvravati neovisno od ostalih programskihnaredbi.
Interpreteri prepoznaju i izvravaju naredbejednu po jednu, to olakava, ali i usporava rad
programa, naroito kod ciklusa (petlji ).
8/10/2019 programski jezici.pdf
10/67
Nikola Klem 10
Programski jezici
Svaki programski jezik se sastoji od: Skupa znakova,
Rjenika, Sintakse (pravila gramatike),
Semantike (znaenja svake naredbe).
8/10/2019 programski jezici.pdf
11/67
Nikola Klem 11
Struktura programa
Programje skup naredbi (instrukcija) za raunalo,
napisanih za rijeavanje jednog problema.
Naredbe programskog jezika formiraju se koriste
irijei iz rjenika programskog jezika i nazive kojeprogramer dodijeljuje memorijskim lokacijama u
koje su uskladiteni podaci sa kojima se radi uprogramu, a prema pravilima sintakse jezika.
8/10/2019 programski jezici.pdf
12/67
Nikola Klem 12
Struktura programa
Svaka naredba se zavrava oznakom za kraj
naredbe. U velikom broju programskih jezikaoznaka za kraj naredbe je toka-zarez (;).
Naredbe se izvravaju redoslijedom kojim sunapisane, ukoliko taj redoslijed nije izmjenjenposebnim naredbama za izmjenu toka programa
(grananje i ciklusi).
8/10/2019 programski jezici.pdf
13/67
Nikola Klem 13
Struktura programa
Naredbe programskog jezika mogu se podijeliti u
dvije kategorije:
izvrne i
neizvrne.
Izvrne naredbe (naredbe koje raunalo trebaizvriti) su naredbe koje se u procesu
prevoenja prevode u odgovarajui strojni jezik.
8/10/2019 programski jezici.pdf
14/67
8/10/2019 programski jezici.pdf
15/67
8/10/2019 programski jezici.pdf
16/67
Nikola Klem 16
Struktura programa
U svim programskim jezicima znakovi koji se
mogu koristiti za formiranje elemenata jezika su:alfabetski velika i mala slova engleske abecede,
numerini znamenke 0,1,2,3,4,5,6,7,8,9specijalni ovisno od jezika (. , = ; + zagrade itd.)
Znakovi iz prva dva skupa (alfabetskih inumerikih) nazivaju se alfanumerini.
8/10/2019 programski jezici.pdf
17/67
Nikola Klem 17
Imena podataka
Podaci sa kojima program radi moraju seza vrijeme izvravanja programa nalaziti umemoriji raunala.
U naredbama programa zadaju sememorijske lokacije na kojima se nalazepodaci sa kojima naredba radi.
Korisnik se poziva na podatke tako tododijeljuje imena ovim lokacijama na
temelju pravila sintakse.
8/10/2019 programski jezici.pdf
18/67
Nikola Klem 18
Imena podataka
Program prevoditelj u postupku prevoenjapovezuje ova imena sa memorijskim
lokacijama (adresama) u kojima e bitimemorirani ti podatci.
Za vrijeme prevoenja program prevoditeljpravitablicu(symbol table) u kojoj sa jedne
strane stoji ime koje je korisnik dodijeliopodatku, a sa druge strane adresa umemoriji na koju je uskladiten podatak.
8/10/2019 programski jezici.pdf
19/67
Nikola Klem 19
Imena podataka
Prilikom dodijeljivanja imena lokacijamatreba voditi rauna da nas asociraju na
podatak koji predstavljaju.
8/10/2019 programski jezici.pdf
20/67
Nikola Klem 20
Imena podataka
Postoje dvije grupe memorijskih lokacija zapodatke:
konstante - lokacije u kojima se podacipostavljaju prije poetka rada programa i ne
mijenjaju za vrijeme rada programa,varijable (promjenljive) - lokacije kod kojih
se sadraj (podaci memorirani u njima)mijenjaju za vrijeme rada programa.
8/10/2019 programski jezici.pdf
21/67
8/10/2019 programski jezici.pdf
22/67
8/10/2019 programski jezici.pdf
23/67
Nikola Klem 23
Imena podataka
Ime varijableje uvijek formirano kao
simbolino ime.
Ime konstante moe biti:
simbolino ime (simbolina konstanta ilikonstantna varijabla) ili
vrijednost memorirana na lokaciji konstante(broj ili tekst).
8/10/2019 programski jezici.pdf
24/67
Nikola Klem 24
Imena podataka
Konstante su imena podataka koja su
jednaka vrijednosti podataka.S obzirom na to da se simbol tablica formira
u vrijeme prevo
enja programa, u postupkuprevoenja se na svaku lokaciju oznaenuimenom konstante unosi vrijednost koja je
jednaka imenu.
8/10/2019 programski jezici.pdf
25/67
8/10/2019 programski jezici.pdf
26/67
8/10/2019 programski jezici.pdf
27/67
Nikola Klem 27
Realne konstante
Realne konstante predstavljaju decimalne
brojeve i mogu se pisati na dva na
ina:
sa fiksnom tokom,
sa pokretnom to
kom (floatingpoint).U PROGRAMSKIM JEZICIMA SE PRI
PISANJU NUMERINIH PODATAKAUMJESTO DECIMALNOG ZAREZA KORISTIDECIMALNA TOKA.
8/10/2019 programski jezici.pdf
28/67
Nikola Klem 28
Realne konstante
Realna konstanta moe biti proizvoljneduine.
Pri prevoenju zaokruuje se na
preciznost koju dozvoljava broj bitovapredvienih za uskladitenje mantise(7 do 8 znamenki jednostruka tonost,14-16 znamenki dvostruka).
8/10/2019 programski jezici.pdf
29/67
Nikola Klem 29
Realne konstante
Realna konstanta sa fiksnom tokom je niz
decimalnih znamenki iza kojih stojidecimalna toka, a moe imati i razlomljenidio (frakciju) i znak.
Primjer
345. (neispravno 345)452.24-345.6
8/10/2019 programski jezici.pdf
30/67
Nikola Klem 30
Realne konstante
Realna konstanta sa pokretnom tokom
sastoji se od cijelobrojne ili realne kons-tante sa fiksnom tokom iza koje stoji slovoE i odgovarajui cijelobrojni eksponent.
Polje eksponenta ne smije biti prazno (akoje eksponent nula mora se napisati 0).
Pozitivan eksponent moe se pisati saznakom ili bez njega.
8/10/2019 programski jezici.pdf
31/67
Nikola Klem 31
Realne konstante
Primjer:
ISPRAVNO NEISPRAVNO
7E0 7E
7.E0 E2 (100).7 E1 45.6E400.007 E 370 E -1
8/10/2019 programski jezici.pdf
32/67
Nikola Klem 32
Znakovna konstanta
Znakovna konstanta je niz znakova (slova,brojeva ili specijalnih znakova) napisanihizmeu dva apostrofa.
Ako se u nizu treba nalaziti i apostrof on sepie sa dva apostrofa.
Primjeri:
'Test 5''ulazni podatak'
8/10/2019 programski jezici.pdf
33/67
Nikola Klem 33
Logike konstante
Koriste se u logikim i relacionim izrazima.
.TRUE. istina,
.FALSE. neistina.
8/10/2019 programski jezici.pdf
34/67
V ij bl
8/10/2019 programski jezici.pdf
35/67
Nikola Klem 35
Varijable
Varijabli se vrijednost dodjeljuje:
naredbom za dodjeljivanje vrijednosti, uitavanjem sa ulazne jedinice,
preko ulazno/izlazne liste potprograma.
Tipovi varijabli odgovaraju tipovimapodataka.
Varijablama treba davati imena tako da namkazuju o emu se radi (na primjer: BRZINA,
PROTOK, VRIJEME).
V ij bl
8/10/2019 programski jezici.pdf
36/67
Nikola Klem 36
Varijable
NEDEFINIRANA varijabla je varijabla kojojnije dodjeljena vrijednost i ne smije se
koristiti.U veini programskih jezika sve varijable se
moraju eksplicitno definirati.
U FORTRAN-u su odreene varijable
definirane implictno.U NEKIM JEZICIMA VELIKA I MALA SLOVA
U IMENU SE RAZLIKUJU.
Ni i
8/10/2019 programski jezici.pdf
37/67
Nikola Klem 37
Nizovi
NIZje ureeni skup elemenata, istog tipapodataka, koji nosejedno zajedniko ime.Imena nizova su simbolina imena ipodlijeu istim pravilima kao i imena
varijabli.
Ime varijable se odnosi najedan podatak.Ime niza se odnosi na vie podataka takoda se podatak u nizu sa kojim se radi
mora dodatno specificirati.
Ni i
8/10/2019 programski jezici.pdf
38/67
Nikola Klem 38
Nizovi
U veini programskih jezika svi nizovi kojise koriste u programu moraju sedeklarirati na poetku programa.
Ni i
8/10/2019 programski jezici.pdf
39/67
Nikola Klem 39
Nizovi
Pojedinani podatak u nizu zove seELEMENT NIZA.
Pojedinani element niza se specificira
imenom niza i indeksom (ili indeksima).Indeksi su meusobno odvojeni zarezima.
Primjer:ime_niza (ind1, ind2, ...)
Nizovi
8/10/2019 programski jezici.pdf
40/67
Nikola Klem 40
Nizovi
Indeks moe biti: konstanta, varijabla,
opseg vrijednosti indeksa ili proizvoljanaritmetiki izraz.
Ako rezultat koji se dobija izraunavanjemaritmetikog izraza nije cijeli broj, u veini
programskih jezika se kao indeks uzimacijelobrojni dio.
Nizovi
8/10/2019 programski jezici.pdf
41/67
Nikola Klem 41
Nizovi
Nizovi mogu biti: jednodimenzionalni,
dvodimenzionalni i viedimenzionalni.
Ni i
8/10/2019 programski jezici.pdf
42/67
Nikola Klem 42
Nizovi
ime 1 2 3 4 5 indeks
X 2.32 3.45 2.00 1.45 5.68 sadraj498 502 506 600 604 adresa
Jednodimenzionalni nizovi (vektori)
Elementi jednodimenzionalnog niza (vektora)memorirani su u registrima centralnememorije raunala jedan pored drugoga.
Nizovi
8/10/2019 programski jezici.pdf
43/67
Nikola Klem 43
Nizovi
Dvodimenzionalni nizovi (matrice)
Dvodimenzionalni nizovi su nizovi kodkojih je poloaj elementa u nizu odreen
sa dva indeksa (tablice, matrice).
Nizovi
8/10/2019 programski jezici.pdf
44/67
Nikola Klem 44
Nizovi
Prvi indeks uvijek predstavlja indeks retka,a drugi indeks kolone.
Indeksi mogu biti kao i kod jedno-
dimenzionalnog (broj, aritmetiki izraz iliopseg izmeu najnie i najvie vrijednostiindeksa), ali i : kada predstavlja sveelemente u retku ili koloni u zavisnosti odtoga na kojem se mjestu nalazi.
Nizovi
8/10/2019 programski jezici.pdf
45/67
Nikola Klem 45
Nizovi
Operacije sa nizovima
Ako su nizovi suglasni, operacije sanizovima mogu se izvoditi na dva naina:
kao matrine raunske operacije ili
po elementima.
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
46/67
Nikola Klem 46
Aritmetiki izrazi
Aritmetiki izraz moe biti:jednostavan i sloen.
Jednostavan aritmetiki izraz sastoji se odsamo jednog operanda. Operandi mogu biti:
konstanta, varijabla,
element niza, poziv funkcije, aritmetiki ili logiki izraz u zagradama.
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
47/67
Nikola Klem 47
Aritmetiki izrazi
Primjer105, 23.45, 12.3e5 konstanta,AB - varijabla,A(I,J) element niza,SIN(x) poziv funkcije,
(A + B) podizraz u zagradama.Operandi mogu biti po tipu: cijelobrojni,
realni, u dvostrukoj tonosti,
kompleksni.
8/10/2019 programski jezici.pdf
48/67
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
49/67
Nikola Klem 49
Aritmetiki izrazi
Pravila za pisanje aritmetikih izraza:
Izraz ne smije sadrati dva operatora jedan
pored drugog. (Na pr. A*-B, N+=1)Moraju se napisati svi operatori, nita se ne
podrazumijeva. (Na pr.: A B - varijabla, A*B -aritm. izraz )
Prilikom potenciranja baza i eksponentmogu biti razliitog tipa.
Operandi mogu biti razliitog tipa.
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
50/67
Nikola Klem 50
Aritmetiki izrazi
Razvijanje aritmetikih izraza
Redoslijed raunanja vrijednosti izrazaodreen je:
upotrebom zagrada, utvrenom hijerarhijom izvrenja
aritmetikih operacija, poloajem operatora unutar izraza.
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
51/67
Nikola Klem 51
Aritmetiki izrazi
Podizrazi u zagradama
U izrazu prvo se raunajupodizrazi uzagradama.
U gnijezdu prvo se razvijanajdubljiizraz,pa drugi najdublji i tako redom.
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
52/67
Nikola Klem 52
Aritmetiki izrazi
Hijerarhija operatora
potenciranje, unarni minus i unarni plus,
mnoenje i dijeljenje, zbrajanje i oduzimanje.
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
53/67
Nikola Klem 53
Aritmetiki izrazi
Primjer:A + B / ((A - B) / C) - C
Raunalo razvija:R1 = A - B A+B / (R1/C) - CR2 = R1 / C A+B / R2 - CR3 = B / R2 A+ R3 - C
Poto su + i - operacije istog prioriteta
ostatak izraza moe se razviti bilo kojimredom koji je matematiki korektan.
R4 = R3 - C i R5 = A + R4
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
54/67
Nikola Klem 54
Izuzevcijelobrojnog deljenja ipotenciranjasve operacije sa operatorima istog
prioriteta izvode se u bilo kom algebarskikorektnom redoslijedu.
Operacije sa cijelobrojnim dijeljenjemizvode se slijeva nadesno.
Primjer:I / J * K kao da je (I / J) * K
Redoslijed se moe izmjeniti zagradama.
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
55/67
Nikola Klem 55
Ako ima vie potenciranja u nizu nainraunanja treba provjeriti u priruniku
programskog jezika.
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
56/67
Nikola Klem 56
Operacije u cijelobrojnoj i realnoj
aritmetici razli
ito se izvode.Ako su oba operanda istog tipa i rezultatje tog tipa.
Cijelobrojno dijeljenje: 6 / 4 = 15 / 6 = 0
Potenciranje:A ** 2
A ** 2.
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
57/67
Nikola Klem 57
*0.5*Y)+(A+XiliY)+SQRT(A+Xy+a+xPI/2.+X
3.14159=PI2
+x
Y*BETA+X*ALFAy+x
D)+B/(C+A
3**3
dc
ba
YXyx
++
++
Aritmetiki izrazi
8/10/2019 programski jezici.pdf
58/67
Nikola Klem 58
( )(
5.0**))/((/()(
)))/(((/
sin
b+a
GFDSINCBA
GFDSINCSQRTBA
gfdc
+++
+++
++
Naredba za dodijeljivanje vrijednosti
8/10/2019 programski jezici.pdf
59/67
Nikola Klem 59
Naredba za dodijeljivanje vrijednosti koristise za dodijeljivanje vrijednosti varijabli ili
elementu niza.Opi oblik naredbe je:
varijabla = aritmetiki izraz
U mnogim programskim jezicima seumjesto znaka
= koristi kombinacija znakova :=
Naredba za dodijeljivanje vrijednosti
8/10/2019 programski jezici.pdf
60/67
Nikola Klem 60
varijabla = aritmetiki izraz
Znak = ne znai jednakost u matematikomsmislu, ve:
Sadraj memorijske lokacije pridrueneimenu varijable sa lijeve strane znaka =
zamjenjuje se izraunatom vrednouaritmetikog izraza sa desne strane znaka =.
Naredba za dodijeljivanje vrijednosti
8/10/2019 programski jezici.pdf
61/67
Nikola Klem 61
Primjer:IA = 2
IA = IA + 5IRAZ = IA - IA / 2 * 2
simb.
ime
adresa memorija
2 200 2
5 204 5
208
212IA 216 ?,2,7
220
IRAZ 224 ?,1
228
232
IA parno -IRAZ = 0
IA neparno -IRAZ = 1
Razvojna okruenja
8/10/2019 programski jezici.pdf
62/67
Nikola Klem 62
Da bi se napisani program izvrio mora senapraviti vie koraka. Ovi koraci povezuju
fazu pisanja programa sa fazom njegovogtestiranja.Koraci u izvrenju programa su:1. pisanje programa,2. unoenje napisanog programa u
raunalo ili pravljenje izmjena upostojeem programu,
3. prevoenje programa (kompilacija-compilation),
Razvojna okruenja
8/10/2019 programski jezici.pdf
63/67
Nikola Klem 63
4. formiranje izvrnog programa
(linkovanje - linking),5. uvanje izvrnog programa,6. izvravanje programa,
7. traenje greaka u programu.Za svaku od ovih faza koriste se
odgovarajui sistemski programi.
Razvojna okruenja
8/10/2019 programski jezici.pdf
64/67
Nikola Klem 64
Program prevoditelj ISPITUJE SAMOSINTAKSNE GREKE.
Za svaku greku dobija se odgovarajuaporuka. Greke se popravljaju i
ponavljaju koraci 2 i 3.Tek kada nema greaka ide se na korak 4.
PREVODITELJ NE MOE OTKRITISEMANTIKE GREKE (GREKE U
LOGICI PROGRAMA).
Integrirane radne sredine
8/10/2019 programski jezici.pdf
65/67
Nikola Klem 65
Opisani postupak po koracima za izvrava-nje programa podrazumijevao je da se za
svaki korak koristi poseban sistemskiprogram.
Za unoenje programa i ispravke u njemumoe se koristiti bilo koji editor (na primjer,Notepad).
Sistemski programi za ostale faze, iako suneovisni, ipak se dobijaju zajedno sa
programom prevoditeljem.
Integrirane radne sredine
8/10/2019 programski jezici.pdf
66/67
Nikola Klem 66
Novije verzije prevoditelja ukljuuju iposebno, integrirano, radno okruenje kod
koga su, u okviru jednog programa, datemogunosti: editiranja, prevoenja, linkovanja,
uvanja, izvravanja i traenja greaka u programu.
Integrirane radne sredine
8/10/2019 programski jezici.pdf
67/67
Nikola Klem 67
Pored integriranih radnih okruenja za
jedan programski jezik postoje i integriranaradna okruenja zajednika za vieprogramskih jezika.
Kod takvih okruenja su ovi sistemskiprogrami zajedniki za svejezike date u
sastavu okruenja.