Raunarski jezici Prof dr Miroslav Trajanovi Mainski fakultet

  • Slides: 54
Download presentation
Računarski jezici Prof. dr Miroslav Trajanović Mašinski fakultet u Nišu Osnove programiranja

Računarski jezici Prof. dr Miroslav Trajanović Mašinski fakultet u Nišu Osnove programiranja

STRUKTURA RAČUNARSKIH SISTEMA Mašinski fakultet u Nišu Osnove programiranja

STRUKTURA RAČUNARSKIH SISTEMA Mašinski fakultet u Nišu Osnove programiranja

Struktura tehničkog sistema Mašinski fakultet u Nišu Osnove programiranja

Struktura tehničkog sistema Mašinski fakultet u Nišu Osnove programiranja

Pojam kodiranja • Računar interno koristi binarni brojni sistem, jer njegova logika poznaje samo

Pojam kodiranja • Računar interno koristi binarni brojni sistem, jer njegova logika poznaje samo dva moguća stanja: uklučeno (1) i isključeno (0). • Pošto postoji potreba da se obrađuju različiti simboli (cifre , slova, znaci) bilo je potrebno razraditi sistem interne reprezentacije ovih simbola u računaru. • Da bi se obezbedila jednoznačnost, uvode se pravila kodiranja podataka u binarni sistem. • Binarno kodiranje je postupak kojim se simbol zamenjuje nizom bitova po strogo propisanom sistemu kodiranja. Mašinski fakultet u Nišu Osnove programiranja

Reprezentacija celih brojeva • Celi brojevi (engleski integers) mogu biti sa ili bez znaka.

Reprezentacija celih brojeva • Celi brojevi (engleski integers) mogu biti sa ili bez znaka. • Interna reprezentacija celih brojevi bez znaka odgovara binarnoj reprezentaciji broja. • Najznačajniji bit (prvi sa leva) se koristi za kodiranje znaka. Po konvenciji bit znaka (engleski sign bit) je 0 ako je broj pozitivan i 1 ako je broj negativan. • Metode za kodiranje celih brojeva sa znakom su: – Magnituda sa znakom, – Komplement jedinice, – Komplement dvojke. • Danas gotovo isključivo koristi metod komplementa dvojke. Mašinski fakultet u Nišu Osnove programiranja

Magnituda sa znakom • Reprezentacija broja se sastoji od dva dela: znaka i magnitude

Magnituda sa znakom • Reprezentacija broja se sastoji od dva dela: znaka i magnitude broja. • Za znak je odvojen jedan bit, a ostali bitovi prestavljaju magnitudu u binarnoj reprezentaciji. • Primer broj +5610 = 00111000, a negativni broj -56 = 10111000. • Nedostaci: • Javljaju se dva moguća koda za nulu, +0 (0000) i -0 (10000000), • Sabiranje pozitivnog i negativnog broja nije moguće izvesti, nego se operacija mora preurediti na oduzimanje magnitude negativnog broja od pozitivnog. Mašinski fakultet u Nišu Osnove programiranja

Komplement jedinice • Komplement jedinice nekog binarnog broja se dobija tako što svi bitovi

Komplement jedinice • Komplement jedinice nekog binarnog broja se dobija tako što svi bitovi koji su bili 0 postaju 1, a svi koji su bili 1 postaju 0. • Primer: komplement jedinice binarnog broja 1001 je 0110. • Prvi bajt predstavlja znak broja. • Magnituda pozitivnih brojeva odgovara binarnoj reprezentaciji magnitude. • Magnituda negativnih brojeva se dobija kao komplement jedinice binarne reprezentacije magnitude. • Primer, broj +5110 ima reprezentaciju 0011, a broj -5110 1100. • Kodiranje negativnih celih brojeva komplementom jedinice opisano je izrazom: -X = not(X) Mašinski fakultet u Nišu Osnove programiranja

Komplement dvojke • Komplement dvojke nekog binarnog broja nalazi se po sledećoj proceduri: –

Komplement dvojke • Komplement dvojke nekog binarnog broja nalazi se po sledećoj proceduri: – Odredi se komplement jedinice datog binarnog broja – Doda se jedinica rezultatu iz prvog koraka. • Procedura nalaženja komplementa dvojke će biti prikazana na primeru broja 5610 Binarni broj 00111000 Komplement jedinice 11000111 Sabiranje sa 1 Komplement dvojke Mašinski fakultet u Nišu Osnove programiranja +1 11001000

Komplement dvojke • Reprezentacija negativnih brojeva dobija se tako što se nađe komplement dvojke

Komplement dvojke • Reprezentacija negativnih brojeva dobija se tako što se nađe komplement dvojke datog pozitivnog broja. • Primer: -5610 = 11001000 • Kodiranje negativnih celih brojeva komplementom dvojke opisano je izrazom: • -X = not(X) + 1 • U slučaju reprezentacije celih brojeva sa znakom postoji samo jedan kod za 010 čiji je kod 0000, pa se jednim bajtom mogu reprezentovati brojevi od -128 do +127. Mašinski fakultet u Nišu Osnove programiranja

BCD (Binary Coded Decimal) kodiranje Decimalni broj NBC BCD Exces-3 Gray 0 0 0000

BCD (Binary Coded Decimal) kodiranje Decimalni broj NBC BCD Exces-3 Gray 0 0 0000 0011 0 1 1 0001 0100 1 2 10 0010 0101 11 3 11 0011 0110 10 4 100 0111 110 5 101 0101 1000 111 6 110 0110 1001 101 7 111 0111 1010 100 8 1000 1011 1100 9 1001 1100 1101 Mašinski fakultet u Nišu Osnove programiranja

Primer 8421 BCD kod Decimalno 8421 BCD 2 5 7 9 0010 0101 0111

Primer 8421 BCD kod Decimalno 8421 BCD 2 5 7 9 0010 0101 0111 1001 • BCD kodovi su manje ekonomičan od binarne reprezentacije broja. • Na primer, sa 8 bita je moguće predstaviti cele nenegativne brojeve u intervalu od 0 do 255, a u BCD kodu samo od 0 do 99. • U radu sa 8421 BCD kodom se javljaju problemi pri operacijama sabiranja i oduzimanja, pa se zbog toga često koristi Excess-3 kod. Grey-ov kod se uglavnom koristi kod računara i merne opreme koja je namenjena akviziciji podataka. Mašinski fakultet u Nišu Osnove programiranja

Reprezentacija realnih brojeva • Računari koriste racionalne (razlomljene) brojeve koji se u računarskoj tehnici

Reprezentacija realnih brojeva • Računari koriste racionalne (razlomljene) brojeve koji se u računarskoj tehnici nazivaju realni brojevi. • Reprezentacija sa pokretnim zarezom (floating point). • Sistem sa pokretnim zarezom se bazira na zapisu koji se naziva naučna notacija. • Primer: decimalni broj 2349, 625 se može prikazati kao – 23, 49625 * 102 – 234, 9625 * 101 – 23496, 25 * 10 -1 • Da bi se izbegle zabune brojevi u naučnoj notaciji se prikazuju u normalizovanom obliku, u kome celobrojni deo ima samo jednu cifru, a sve ostale cifre su iza zareza. • Normalizovan oblik 2, 349625 * 103 Mašinski fakultet u Nišu Osnove programiranja

Opšti slučaj decimalnog broja u normalizovanom obliku • ± M * 10 E •

Opšti slučaj decimalnog broja u normalizovanom obliku • ± M * 10 E • M – mantisa • E – eksponent • Mantisa se može razložiti na celobrojni deo C i decimalni deo D, pri čemu je celobrojni deo C jedna cifra koja mora biti u intervalu 1 ≤ C ≤ 9. Jedini izuzetak od ovog pravila je broj nula. • Broj cifara koje sadrži mantisa definišu preciznost kojom broj opisuje neku vrednost. Ove cifre se nazivaju značajne cifre. • Primer: vrednost izraza 1/3 se može zapisati kao 3, 33* 10 -1 ili kao 3. 3333 * 10 -1. • U prvom slučaju preciznost je 3 značajne cifre, a u drugom 5. Mašinski fakultet u Nišu Osnove programiranja

Realni brojevi se u binarnom brojnom sistemu • • • i - pozicija cifre

Realni brojevi se u binarnom brojnom sistemu • • • i - pozicija cifre levo od decimalnog znaka j - pozicija cifre desno od decimalnog znaka n - broj cifara celobrojnog dela broja m - broj cifara decimalnog dela broja ai - cifra na i-toj poziciji ulevo od decimalnog znaka aj - cifra na j-toj poziciji udesno od decimalnog znaka. Mašinski fakultet u Nišu Osnove programiranja

Težine cifara levo od decimalnog znaka Pozicija cifre levo od decimalnog znaka 1 2

Težine cifara levo od decimalnog znaka Pozicija cifre levo od decimalnog znaka 1 2 3 4 5 . . . Težina 2 -1 2 -2 2 -3 2 -4 2 -5 . . . Težina 1/2 1/4 1/8 1/16 1/32 . . . Težina 0. 5 0. 25 0. 125 Mašinski fakultet u Nišu Osnove programiranja 0. 0625 0. 03125 . . .

Konverzija decimalnog realnog broja u binarni • Posebno se konvertuju celobrojni i decimalni deo.

Konverzija decimalnog realnog broja u binarni • Posebno se konvertuju celobrojni i decimalni deo. • Celobrojni deo broja se konvertuje u binarni broj metodom koji se normalno koristi za cele brojeve. • Decimalni deo, koji ima opšti oblik 0, abcde. . . , se konvertuje prema sledećem algoritmu: – Decimalni broj 0, abcde se množi sa 2 i dobija se rezultat oblika p, qrstu – Cifra p postaje prva decimalna cifra binarne reprezentacije i ona se otklanja iz broja – Ostatak 0, qrstu se ponovo množi sa 2 kako bi se dobila sledeća decimalna cifra binarnog broja – Koraci 2 i 3 se ponavljaju sve dok ostatak ne bude nula ili dok se ne postigne željena preciznost. Mašinski fakultet u Nišu Osnove programiranja

Primer konverzije broja 0, 2875 Korak Množenje sa 2 Rezultat Binarna cifra 1 0,

Primer konverzije broja 0, 2875 Korak Množenje sa 2 Rezultat Binarna cifra 1 0, 2875 * 2 0, 575 0 2 0, 575 * 2 1, 15 1 3 0, 15 * 2 0, 30 0 4 0, 30 * 2 0, 60 0 5 0, 60 * 2 1, 2 1 6 0, 2 * 2 0, 4 0 7 0, 4 * 2 0, 8 * 2 1, 6 1 9 0, 6 * 2 1, 2 1 0, 287510 ~ 0, 0100100112 Mašinski fakultet u Nišu Osnove programiranja

Binarni oblik naučne notacije • Normalizovani oblik nekog broja u naučnoj notaciji se može

Binarni oblik naučne notacije • Normalizovani oblik nekog broja u naučnoj notaciji se može predstaviti i u binarnom brojnom sistemu • Opšti oblik broja je: • ± M * 2 E • Celobrojni deo mantise C, koji je u ovom slučaju binarna cifra, može da uzme samo vrednost C=1, jer zbog izvršene normalizacije prva cifra ne može da bude nula. • Ova činjenica je iskorišćena da se sa istim brojem bitova dobije binarna reprezentacija veće preciznosti. Mašinski fakultet u Nišu Osnove programiranja

Primer broja 2349, 62510 • U binarnom brojnom sistemu pre normalizacije izgleda 100100101101, 1012.

Primer broja 2349, 62510 • U binarnom brojnom sistemu pre normalizacije izgleda 100100101101, 1012. • Posle normalizacije 1, 001001011011012 * 21011. • Decimalni zarez je pomerena za 11 mesta, pa je vrednost eksponenta E = 1110 = 10112. • Jedina cifra celobrojnog dela 1, što je slučaj sa svim normalizovanim binarnim brojevima. Mašinski fakultet u Nišu Osnove programiranja

Format zapisa brojeva sa pokretnim zarezom 31 znak 30 23 eksponent Mašinski fakultet u

Format zapisa brojeva sa pokretnim zarezom 31 znak 30 23 eksponent Mašinski fakultet u Nišu 22 0 mantisa Osnove programiranja

Pozitivan ili negativan celobrojni eksponent • Za reprezentaciju vrednosti eksponenta predviđeno 8 binarnih cifara

Pozitivan ili negativan celobrojni eksponent • Za reprezentaciju vrednosti eksponenta predviđeno 8 binarnih cifara • Ako se jedna cifra odvoji za znak eksponentasmanjiće se vrednost najvećeg eksponenta koji je moguće reprezentovati na polovinu. • eksponent bi mogao da bude u intervalu ± 6410. • Zato se uvodi predvrednost eksponenta (bias) koja iznosi 127. • Ovaj broj se dodaje stvarnoj vrednosti eksponenta koja može da se kreće u intervalu -12710 ≤ E ≤ +12810. • U reprezentaciji eksponenta se upisuje u binarnom obliku pozitivan broj koji može da bude u rangu od 0 do 255, a stvarna vrednost eksponenta se dobija kad se od tog broja oduzme broj 12710. Mašinski fakultet u Nišu Osnove programiranja

Predvrednost eksponenta (bias) Stvarna decimalna vrednost eksponenta (E) Decimalna vrednost u zapisu eksponenta Binarna

Predvrednost eksponenta (bias) Stvarna decimalna vrednost eksponenta (E) Decimalna vrednost u zapisu eksponenta Binarna vrednost u zapisu eksponenta +6 133 10000101 +128 255 1111 0 127 01111111 -6 121 01111001 -127 0 0000 Mašinski fakultet u Nišu Osnove programiranja

Jednostruka tačnost • Interna reprezentacija mantise se sastoji od prvih 23 decimalnih cifara iz

Jednostruka tačnost • Interna reprezentacija mantise se sastoji od prvih 23 decimalnih cifara iz normalizovanog binarnog zapisa mantise. • Celobrojni deo mantise, koji je uvek jedinica, se odbacuje kao redundantan podatak. • Na taj način se povećava preciznost prezentacije na 24 cife. • Ova reprezentacija je poznata kao reprezentacija skrivene jedinice. • Ovakva interna reprezentacija mantise dozvoljava tačno prikazivanje prvih sedam značajnih cifara realnog broja u decimalnom obliku. Mašinski fakultet u Nišu Osnove programiranja

Dvostruka tačnost • • • Ukupno 64 bita Jedan bit se koristi za znak,

Dvostruka tačnost • • • Ukupno 64 bita Jedan bit se koristi za znak, 11 za eksponent i 52 za mantisu. predvrednost (bias) je u ovom slučaju 102310. Binarna preciznost mantise od 52 cifre omogućuje preciznost od 15 značajnih cifara u decimalnom brojnom sistemu. znak 63 eksponent 62 mantisa 52 51 0 mantisa Mašinski fakultet u Nišu Osnove programiranja

Oblasti brojeva Dužina internog zapisa u bitovima Preciznost mantise u bitovima Oblast brojeva (približno)

Oblasti brojeva Dužina internog zapisa u bitovima Preciznost mantise u bitovima Oblast brojeva (približno) Binarno Decimalno Jadnostruka preciznost 32 24 2 -126 do 2127 1, 18*10 -38 do 3, 40*1038 Dvostruka preciznost 64 53 2 -1022 do 21023 2, 23*10 -308 do 1, 79*10308 Mašinski fakultet u Nišu Osnove programiranja

Specijalni slučajevi • IEEE 754 standard identifikuje 5 kategorija brojeva sa pokretnim zarezom: nula,

Specijalni slučajevi • IEEE 754 standard identifikuje 5 kategorija brojeva sa pokretnim zarezom: nula, beskonačan broj, Na. N, denormalizovani broj i normalizovani broj. • Nula je izdvojena u posebnu kategoriju zato što po napred navedenim pravilima normalizacije nikad ne može biti normalizovana (ne javlja se celobrojna 1). Ona može bit pozitivna ili negativna. • Beskonačan broj se dobija kao rezultat operacije u kojoj se broj različit od nule deli sa nulom. I on može biti pozitivan ili negativan. • Na. N je skraćenica od Not a number. Ovakav “broj” se dobija kao rezultat loše definisanih operacija. Tipičan primer je operacija deljenja 0. 0 sa 0. 0 koja nema matematički definisan rezultat, pa se rezultat operacije ne smatra brojem. • Denormalizovani brojevi su uvedeni da bi mogla da se vrši interna prezentacija brojeva koji su manji od najmanjeg normalizovanog broja koji je moguće zapisati. Mašinski fakultet u Nišu Osnove programiranja

5 kategorija brojeva sa pokretnim zarezom Kategorija Eksponent Frakcija nula 00002 0 Beskonačan broj

5 kategorija brojeva sa pokretnim zarezom Kategorija Eksponent Frakcija nula 00002 0 Beskonačan broj 11112 0 Na. N (not a number) 11112 ≠ 0 Denormalizovani brojevi 00002 ≠ 0 Normalizovani brojevi ≠ 00002 ≠ 11112 ≠ 0 Mašinski fakultet u Nišu Osnove programiranja

Princip rada računara OPERATIVNA MEMORIJA SISTEMSKI PROGRAMI APLIKATIVNI PROGRAMI UPRAVLJAČKA JEDINICA MEMORIJSKI REGISTRI PODATAKA

Princip rada računara OPERATIVNA MEMORIJA SISTEMSKI PROGRAMI APLIKATIVNI PROGRAMI UPRAVLJAČKA JEDINICA MEMORIJSKI REGISTRI PODATAKA PODACI DEKODER ADRESA MEMORIJSKI ADRESNI REGISTRI REGISTAR NAREDBI KOD OPERACIJA ADRESNI DEO (OPERANDI) PROGRAMSKI BROJAČ DEKODER OPERACIJE GENERATOR UPRAVLJAČKIH SIGNALA TAKTNI GENERATOR ARITMETIČKO – LOGIČKA JEDINICA Mašinski fakultet u Nišu Osnove programiranja

Koraci izvođenja naredbe q Faza prihvatanja Ø Čitanje naredbe Ø Dekodiranje naredbe Ø Čitanje

Koraci izvođenja naredbe q Faza prihvatanja Ø Čitanje naredbe Ø Dekodiranje naredbe Ø Čitanje operanda Ø Određivanje adrese naredne naredbe q Faza izvršavanja - izvođenje naredbe q Faza odlaganja -zapisivanje rezultata Mašinski fakultet u Nišu Osnove programiranja

Mašinski jezik • Svaki procesor ima svoj mašinski jezik • Svi programski jezici se

Mašinski jezik • Svaki procesor ima svoj mašinski jezik • Svi programski jezici se pre izvršenja prevode na mašinski jezik Mašinski fakultet u Nišu Osnove programiranja

Mašinski jezik Primer Java programa: int counter = 0; counter = counter + 1;

Mašinski jezik Primer Java programa: int counter = 0; counter = counter + 1; Adekvatni zapis u mašinskom jeziku: 00010100010001000101010111110 0000011101010001111100001000001010 Mašinski fakultet u Nišu Osnove programiranja

Vrste računarskih jezika • • • Programski jezici (npr. Java, C++) Skript jezici (npr.

Vrste računarskih jezika • • • Programski jezici (npr. Java, C++) Skript jezici (npr. p. Hp, Pyton, Java. Script) Specifikacioni jezici (IDEF, dijagrami) Jezici upita (SQL) Markup jezici (HTML, XHTML, Te. X, SGML, XML) • Transformacioni jezici (XSLT - Extensible Stylesheet Language Transformations) Mašinski fakultet u Nišu Osnove programiranja

OSNOVNI POJMOVI • SINTAKSA JEZIKA: skup pravila koja definišu legalnu upotrebu jezika • SEMANTIKA:

OSNOVNI POJMOVI • SINTAKSA JEZIKA: skup pravila koja definišu legalnu upotrebu jezika • SEMANTIKA: značenje pojedinih konstrukcija • REZERVISANE REČI Mašinski fakultet u Nišu Osnove programiranja

Generacije programskih jezika • I generacija - Mašinski jezik • II generacija - Asembler

Generacije programskih jezika • I generacija - Mašinski jezik • II generacija - Asembler • III generacija – Proceduralno orijentisani – Problemski orijentisani – Objektno orijentisani • IV generacija (Aplikacioni jezici 4 GLs) • V generacija (Rešavanje problema upotrebom ograničenja 5 GL) • Prirodni jezici Mašinski fakultet u Nišu Osnove programiranja

VRSTE JEZIKA • Deklarativni jezici – Šta program treba da uradi – Primer SQL

VRSTE JEZIKA • Deklarativni jezici – Šta program treba da uradi – Primer SQL • Imperativni jezici – Kako program to treba da uradi – Primer Java, C++ Mašinski fakultet u Nišu Osnove programiranja

JOŠ JEDNA KLASIFIKACIJA • • • • Applicative (functional) languages Concurrent, distributed, and parallel

JOŠ JEDNA KLASIFIKACIJA • • • • Applicative (functional) languages Concurrent, distributed, and parallel languages Constraint and logic languages Data-flow languages Design languages Extensible languages Macro and assembly languages Microprogramming languages Multiparadigm languages Nondeterministic languages Nonprocedural languages Object-oriented languages Specialized application languages Very high-level languages Mašinski fakultet u Nišu Osnove programiranja

Asembler • Jezik zasnovan na mnemonicima • Svakom mnemoniku odgovara jedna instrukcija mašinskog jezika

Asembler • Jezik zasnovan na mnemonicima • Svakom mnemoniku odgovara jedna instrukcija mašinskog jezika • I danas se koriste kada je potrebno pisati sistemske programe Mašinski fakultet u Nišu Osnove programiranja

Asembler movl compare: cmpl cgt acddl bra end_of_loop: Mašinski fakultet u Nišu #0 x

Asembler movl compare: cmpl cgt acddl bra end_of_loop: Mašinski fakultet u Nišu #0 x 1, n #oxa, n end_of_loop #0 x 1, n compare Osnove programiranja

Proceduralno orijentisani • NAUČNI – FORTRAN (1954 -1957) FORmula TRANslator – APL (1968) A

Proceduralno orijentisani • NAUČNI – FORTRAN (1954 -1957) FORmula TRANslator – APL (1968) A Programming Language • POSLOVNI – COBOL (1959) Comon Busines Oriented Language – RPG (1964) Report Program Generator • VIŠENAMENSKI – BASIC (1965) – Pascal (1968) Blaise Pascal – Ada (1980) Augusta Ada Lovelance – C (1972) Mašinski fakultet u Nišu Osnove programiranja

Problemski orijentisani • GPSS - jezik za simulaciju sistema • APT - za NUMA

Problemski orijentisani • GPSS - jezik za simulaciju sistema • APT - za NUMA • Post. Script Mašinski fakultet u Nišu Osnove programiranja

Objektno orijentisani jezici • • Smalltalk C++ Java Eiffel Mašinski fakultet u Nišu Osnove

Objektno orijentisani jezici • • Smalltalk C++ Java Eiffel Mašinski fakultet u Nišu Osnove programiranja

RAZVOJ JEZIKA Mašinski fakultet u Nišu Osnove programiranja

RAZVOJ JEZIKA Mašinski fakultet u Nišu Osnove programiranja

JEZICI ČETVRTE GENERACIJE • "Application specific" jezici. • Neproceduralni jezici visokog nivoa izgrađeni oko

JEZICI ČETVRTE GENERACIJE • "Application specific" jezici. • Neproceduralni jezici visokog nivoa izgrađeni oko baza podataka. • Nazivaju ih i "report-generator" jezici jer opisuju format podataka i izveštaj da bi se generisao i preveo u neki drugi jezik (npr COBOL) • Poznatiji 4 GL su: SQL, FOCUS, Post. Script, Gaus, Mathematica Mašinski fakultet u Nišu Osnove programiranja

JEZICI PETE GENERACIJE • Prolog, OPS 5, Mercury • Povezani sa veštačkom inteligencijom (AI

JEZICI PETE GENERACIJE • Prolog, OPS 5, Mercury • Povezani sa veštačkom inteligencijom (AI - artificial intelligence) • Programiranje logike , modeliranje realnog sveta ili situacije • Experni sistemi • Sistemi zasnovani na znanju (KBS – Knowledge Based Systems) • Fuzzy logic, Neural networks Mašinski fakultet u Nišu Osnove programiranja

JEZICI VEŠTAČKE INTELIGENCIJE • IPL – Information Processing Language (1960) – vrlo primitivan •

JEZICI VEŠTAČKE INTELIGENCIJE • IPL – Information Processing Language (1960) – vrlo primitivan • LISP - list processing 1960 – fakti su predstavljani listama • PROLOG – programming in logic – jezik zasnovan nad produkcionim pravilima • CLIPS Mašinski fakultet u Nišu Osnove programiranja

ŽIVOTNI CIKLUS PROGRAMA • PROJEKTOVANJE – Algoritam – User interface – Arhitektura i organizacija

ŽIVOTNI CIKLUS PROGRAMA • PROJEKTOVANJE – Algoritam – User interface – Arhitektura i organizacija programa • RAZVOJ • IZVRŠENJE – Izvršni kod se učitava u RAM (loader) – Rezerviše se mesto za program i podatke • ODRŽAVANJE – Ispravljanje uočenih grešaka – Poboljšanje i proširenje funkcija programa Mašinski fakultet u Nišu Osnove programiranja

RAZVOJ PROGRAMA – – – Projektovanje aplikacije Pisanje izvornog koda (editor) Dokumentovanje programa Prevođenje

RAZVOJ PROGRAMA – – – Projektovanje aplikacije Pisanje izvornog koda (editor) Dokumentovanje programa Prevođenje u objektni kod (compiler - interpreter) Povezivanje sa podprogramima i bibliotečkim funkcijama (linker) – Testiranje – Izrada uputstva za korišćenje programa – Izrada poboljšanih i novih verzija programa Mašinski fakultet u Nišu Osnove programiranja

IZVRŠAVANJE PROGRAMA • Prevodioci – compiler • Interpreteri • Virtuelne mašine • WEB -

IZVRŠAVANJE PROGRAMA • Prevodioci – compiler • Interpreteri • Virtuelne mašine • WEB - čitači web stranica Mašinski fakultet u Nišu Osnove programiranja

NAJVAŽNIJI JEZICI U UPOTREBI • • • PASCAL C++ C# JAVA VISUAL BASIC HTML

NAJVAŽNIJI JEZICI U UPOTREBI • • • PASCAL C++ C# JAVA VISUAL BASIC HTML Mašinski fakultet u Nišu Osnove programiranja

PASCAL • Razvio ga je 1970 Nicklaus Wirth da bi efikasno učio studente programiranju

PASCAL • Razvio ga je 1970 Nicklaus Wirth da bi efikasno učio studente programiranju • Strukturno programiranje (top-down design) korišćenjem procedura Mašinski fakultet u Nišu Osnove programiranja

BASIC I PASKAL if X>5 then 100 IF X>5 THEN 200 ELSE 300 110

BASIC I PASKAL if X>5 then 100 IF X>5 THEN 200 ELSE 300 110 PRINT "VREDNOST X="; X 120 END 200 X=X*X + 5 210 GOTO 110 300 X=0 310 PRINT "X JE PREMALO" 320 GOTO 120 begin X : =sqr(X) + 5 writeln ('Vrednost X=', X) end else begin X: =0 writeln (X je premalo') end; Mašinski fakultet u Nišu Osnove programiranja

C++ • • Objektno orijentisan Objekti su definisani klasama Objekt je instanca neke klase

C++ • • Objektno orijentisan Objekti su definisani klasama Objekt je instanca neke klase Izvedene klase nasleđuju osobine svojih roditelja (Inheritance) • Polimorfizam Mašinski fakultet u Nišu Osnove programiranja

JAVA • 1995 • Objektno orijentisan • Interpretiran – Java prevodilac generiše kod za

JAVA • 1995 • Objektno orijentisan • Interpretiran – Java prevodilac generiše kod za Java Virtual Machine • Nezavisan od arhitekture • Multithreaded – izvršenje u više niti • Posebno pogodan za Internet aplikacije Mašinski fakultet u Nišu Osnove programiranja

C# • C# je komponentno orijentisan programski jezik (na srpskom se čita kao C

C# • C# je komponentno orijentisan programski jezik (na srpskom se čita kao C sharp. • Sličan je Javi u tom smislu što programerima omogućava da kôd pišu samo jednom a potom njegove delove iznova koriste za pravljenje različitih aplikacija. • Izveden je iz jezika C i C++ i Microsoft ga smatra najefikasnijim programskim jezikom za izgradnju Web usluga zasnovanih na proširivom jeziku za označavanje (Extensible Markup Language, XML). Mašinski fakultet u Nišu Osnove programiranja