Professional Documents
Culture Documents
UvodPJ 2008 PDF
UvodPJ 2008 PDF
JEZICI
Uvod
u
programske jezike
Dr Milica Vučković
Fakultet organizacionih nauka,
Beograd, 2007.
Broj programskih jezika
Veliki broj različitih programskih jezika je
razvijen i implentiran (preko 8000
programskih jezika - podatak iz 2006 )
LOAD
LOADr1,br1,b
niži programski jezik LOAD
LOADr2,hr2,h
(asemblerski jezik) MUL
MULr1,r2
r1,r2
DIV
DIV r1,#2
r1,#2
RET
RET
0001001001000101001001001
0001001001000101001001001
izvršni mašinski kod 110110010101101001 ...
110110010101101001...
• Strukturne apstrakcije
• Proceduralne apstrakcije
• Apstrakcije podataka
• Bazne apstrakcije
apstrahovanje memorijskih ćelija, interne reperezentacije
primirtivnih tipova podataka i implementacije operacija nad
vrednostima tipova
• Strukturne apstrakcije
- Struktuirani tipovi podataka (apstrahovanje kolekcija
međusobno povezanih podataka – niz, zapis, lista)
- Kontrolne strukture (sekvenca, selekcija, iteracija)
• Apstrakcije podataka
sakrivanje interne reprezentacije korisničkih tipova podataka
pomoću skupa operacija (javni interfejs) preko kojih se stanja
objekata tipa jedino mogu menjati
koncept se u savremenim višim PJ implementira preko klase
• Veštačka inteligencija
logički i funkcionalni jezici
• Sistemsko programiranje
operativni sistem UNIX napisan u C
• Internet i Web
veoma aktuelan domen; ovo distribuirano i
heterogeno okruženje uticalo je na razvoj
novih jezika koji su posebno pogodni za
njega
primer: XML (eXtensible Markup Language)
Fakultet organizacionih nauka,
Beograd, 2007.
von Neumann-ova komjuterska
arhitektura
Impertivni jezici baziraju se na von Neumann-ovom modelu
Primer:Pascal
a := b + c
Asembler
LOAD r1, b
LOAD r2, c
ADD r1, r2
STORE a, r1
- proste aplikacije
- glavna briga efikasnost koda
- stariji programski jezici FORTRAN, COBOL)
- Strukturno programiranje
prva metoda programiranja, sistematičan pristup
razvoju razumljivih i korektnih programa
razvijen pj Pascal koji je u potpunosti podržavao
koncepte strukturnog programiranja
- Proceduralne apstrakcije
• Kraj 70-tih:
Apstrakcija podatka (Apstraktni tip podatka)
• Sredina 80-tih:
Objektno-orjentisano programiranje
• 1995 do danas:
Web, Distribuirane aplikacije
Fakultet organizacionih nauka,
Beograd, 2007.
Vrste jezika (Jezičke paradigme)
• Program: funkcija
• Funkcionalni jezici:
LISP, Scheme, Haskell
- Primer:
otac(Petar, Milan)
cinjenica ima značnje “Petar je Milanov otac”
- Primer:
roditelj(X, Y) :- otac(X,Y)
“Osoba X je roditelj osobe Y AKO je X otac
osobe Y”
?- otac(petar,milan)
yes
?- otac(petar,X)
milan
Fakultet organizacionih nauka,
Beograd, 2007.
Logički jezici
• Ključna operacija: unifikacija (izjednačavanje)
Unifikacijom se izjednačavaju vrednosti
promenljivih odnosno konstanti na istoj poziciji
istog predikata.
?- otac(petar,X)
milan
• Logički jezici:
Prolog (PROgramming in LOGic),
Datalog
• Objektno-orjentisana paradigma
• O-O jezici:
Simula, Smalltolk, C++, Java, C#
Fakultet organizacionih nauka,
Beograd, 2007.
Ostale vrste jezika
• “Script” jezici
• Najraniji: komandni jezici (shell)
• Web script jezici: JavaScript, PHP
• “Markup” jezici
• HTML (HyperText Markup Language)
• XML ( eXtensible Markup Language )
• Upitni jezici
• Jezici za specifikaciju i modelovanje
• UML (Unified Modeling Language)
Language
• Sintaksa
• Semantika
• Sintaksa
definiše pravila za pisanje korektnih
programa u programskom jeziku
sintaksa jezika se opisuje pomoću
gramatike
• Semantika
značenje jezika
• Leksička specifikacija
• Sintaksna specifikacija
• Tokeni u PJ su:
9 Identifikatori
9 Ključne reči
9 Operatori
9 Numeričke konstante
9 Specijalni znaci (zagrade, separatori, ..)
. . .
if Ključna reč
N ::= α
N - neterminal
α - sekvenca terminala i neterminala
num ( <expr>
expr )
*
<expr>
expr <op> <expr>
expr
num + num
• Kompajleri
• Interpreteri
- brzo izvršavanje
- sporija obrada grešaka koje se javljaju u toku
izvršavanja programa
- FORTRAN, C, COBOL, ADA
- sporo izvršavanje
- brz razvoj programa i laka obrada grešaka
koje se javljaju u toku izvršavanja programa
- LISP, APL, SNOBOL,
- Web script jezici: JavaScript, PHP
PHP SQL
Web-Browser WWW Script commands
Response Response Database
Reply Output
Execution
Native
Native JIT
JIT
Code
Code Compiler
Compiler
JIT Compiler
Native Code
• Čitljivost
• Lakoća učenja i pisanja
• Pouzdanost
• Cena
• Kontrolne strukture
• Programersko okruženje