18
Programski jezici

Programski jezici - Megatrend Univerzitet

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programski jezici - Megatrend Univerzitet

Programski jezici

Page 2: Programski jezici - Megatrend Univerzitet

2/18

Programski jezici

● Mašinski● Visokog nivoa● Objektno-orijentisani● Funkcionalni

Page 3: Programski jezici - Megatrend Univerzitet

3/18

Mašinski jezik: binarni brojevi0000 – 00001 – 10010 – 20011 – 30100 – 40101 – 50110 – 60111 – 71000 – 81001 – 91010 – 101011 – 11...

Page 4: Programski jezici - Megatrend Univerzitet

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 Univerzitet

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 Univerzitet

6/18

Assembler

Page 7: Programski jezici - Megatrend Univerzitet

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 Univerzitet

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 Univerzitet

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 Univerzitet

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 Univerzitet

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 Univerzitet

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 Univerzitet

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 Univerzitet

14/18

Stek memorija

Page 15: Programski jezici - Megatrend Univerzitet

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 Univerzitet

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 Univerzitet

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 Univerzitet

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).