programski jezici -...
TRANSCRIPT
![Page 1: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/1.jpg)
Programski jezici
![Page 2: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/2.jpg)
2/18
Programski jezici
● Mašinski● Visokog nivoa● Objektno-orijentisani● Funkcionalni
![Page 3: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/3.jpg)
3/18
Mašinski jezik: binarni brojevi0000 – 00001 – 10010 – 20011 – 30100 – 40101 – 50110 – 60111 – 71000 – 81001 – 91010 – 101011 – 11...
![Page 4: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/4.jpg)
4/18
Aritmetičko logička jedinica
● Operandi: A i B● Rezultat: C● Operacije:
add, sub, mul, div, cmp, etc.
![Page 5: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/5.jpg)
5/18
Assembler
MOV AX, BX; AX := BXADD DX, CX; DX := DX + CXSUB DX, AX; DX := DX – AXINC AX; AX := AX + 1NOP
![Page 6: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/6.jpg)
6/18
Assembler
![Page 7: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/7.jpg)
7/18
Programski jezici visokog nivoa
● Bliski ljudskom načinu razmišljanja● Mogu se koristiti reči koje
ljudi koriste u svakodnevnom životu● Mogu se praviti procedure i funkcije● Primeri: C, Pascal, Cobol, Fortran
![Page 8: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/8.jpg)
8/18
Programski prevodioci
● Prevode programski jezik višeg nivoa(uključujući objektno-orijentisane)u mašinski jezik
● Moguće je parcijalno prevođenjeizvornih fajlova
![Page 9: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/9.jpg)
9/18
Tok izvršavanja naredbi procesora
● Procesor iz memorije uzima naredbusa adrese PC (program counter)i izvršava je
● Nakon naredbe, izvršava sledeću– Ukoliko je naredba bila naredba skoka,
sledeća naredba se nalazi na adresikoja je data prethodnom narebom;
– Inače, sledeća naredba je odmah iza trenutne.
● Proverava se da li je došlo do prekida
![Page 10: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/10.jpg)
10/18
Promenljive● Naziv za određenu memorijsku lokaciju● Mogu biti različitih prostih tipova:
– int
– float
– boolean
– string
● Mogu biti složenih tipova:– Nizovi
– Strukture
![Page 11: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/11.jpg)
11/18
Funkcionalni jezici
● Sve su funkcije● Primeri: Lisp, Prolog, ML● Primer Prolog koda:
parent(charles1, james1).parent(elizabeth, james1).parent(charles2, charles1).parent(catherine, charles1).parent(james2, charles1).parent(sophia, elizabeth).parent(george1, sophia).
Query: parent(charles1, george1).
![Page 12: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/12.jpg)
12/18
Naredbe
C++ program:
int main(){int a, b, c;
cin >> a;
cin >> b;
c = (a + b) * 1.2;
cout << c << endl;
}
![Page 13: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/13.jpg)
13/18
Funkcije
● Kod koji se poziva iz glavnog programa
ili drugih funkcija● Može imati argumente sa kojima se poziva● Može imati povratnu vrednost● Primer poziva:
c = f(a, b);
![Page 14: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/14.jpg)
14/18
Stek memorija
![Page 15: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/15.jpg)
15/18
Objektno orijentisano programiranje
● Jezici još bliži ljudskom načinu razmišljanja● Omogućavaju enkapsuliranje
informacija i funkcija pojedinih objekata● Moguće je nasleđivanje funkcionalnosti
(primer: vozilo → automobil i vozilo → kamion)
![Page 16: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/16.jpg)
16/18
Objektno orijentisano programiranje● Definišu se klase
– Klase mogu imati funkcije (metode)
– Klase mogu imati promenljive (polja)
● Promenljive tipa klasa se nazivaju objektima
class Student { // Klasa
int godina; // promenljiva
string ime; // promenljiva
};
![Page 17: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/17.jpg)
17/18
Objektno orijentisani jezici
● Neki od najčešće korišćenihprogramskih jezika su:– C++
– Java
– Python
● Svaki definiše svoju sintaksu i funkcionalnosti
![Page 18: Programski jezici - megatrend.edu.rsmegatrend.edu.rs/student/wp-content/uploads/2019/11/03_programir… · 7/18 Programski jezici visokog nivoa Bliski ljudskom načinu razmišljanja](https://reader036.vdocuments.site/reader036/viewer/2022062303/5fd47ba10ae6416c13178742/html5/thumbnails/18.jpg)
18/18
Funkcionalni jezici
● Sve su funkcije● Primeri: Lisp, Prolog, ML● Primer Prolog koda:
parent(charles1, james1).parent(elizabeth, james1).parent(charles2, charles1).parent(catherine, charles1).parent(james2, charles1).parent(sophia, elizabeth).parent(george1, sophia).
Query: parent(charles1, george1).