Académique Documents
Professionnel Documents
Culture Documents
programskih jezika
jezika
PROGRAMSKI
• Veliki broj različ
različitih programskih jezika je
JEZICI razvijen i implentiran
preko 8000 programskih jezika ( podatak iz
Uvod 2006 )
u programske jezike
Fortran,
Fortran, Cobol,
Cobol, Simula,
Simula, Pascal,
Pascal,
Algol,
Algol Modula Delphi PHP,
, Modula--2, Delphi,
, PHP, Visual
Dr Milica Vuč
Vučković
ković Basic, Lisp,
Lisp, Prolog,
Prolog, Smalltalk,
Smalltalk, Java,
JavaScript,
JavaScript, C, C++, C# , ... ...
Fakultet organizacionih nauka, Fakultet organizacionih nauka,
Beograd, 2007. Beograd, 2007.
Znač
Značajni uticaji na razvoj programskih
Apstraktni nivoi programskih jezika
jezika
class
classTrougao
Trougao{{
• Apstraktni nivoi jezika viši programski jezik
......
float
floatp()
p()
• Aplikacione oblasti return
returnb*h/2;
b*h/2;
}}
• Komjuterske arhitekture
LOAD
LOADr1,b
r1,b
• Jezič
Jezičke paradigme LOAD
LOADr2,h
r2,h
niž
niži programski jezik MUL
MULr1,r2
r1,r2
• Implementacioni modeli (asemblerski jezik) DIV
DIV r1,#2
r1,#2
RET
RET
izvrš 0001001001000101001001001
0001001001000101001001001
zvršni maš
mašinski kod
110110010101101001...
110110010101101001...
110110010101101001...
1
von Neumann-
Neumann-ova komjuterska arhitektura von Neumann-
Neumann-ova komjuterska arhitektura
• Kraj 70-
70-tih:
Apstrakcija podatka (Apstraktni tip podatka)
podatka)
2
Imperativni jezici Funkcionalni jezici
• sintaksa:
sintaksa: P1(P2(P3 (X)))
X))) • Program:
Program: skup tvrđenja i pravila
• Funkcionalni jezici: • formalni opis reš
rešenja preko skupa
LISP, Scheme,
Scheme, Haskell logič
logičkih tvrđenja
Logič
Logičko tvrđenje izraž
izražava osobinu o nekom
• Primer LISP
LISP programa objektu; na osnovu tvrđenja program dedukuje
defun factorial (n) druga tvrđenja
(cond ((equal n 1) 1) • Zasniva se na predikatskom rač
računu
(* n (factorial (-
(- n 1))) ) prvog reda
Logič
Logički jezici Logič
Logički jezici
• Sintaksa programa:
programa:
Primer Prolog programa:
Odgovor :- specifikacija pravila muskarac(aleksandar).
a : - b, c, d muskarac(goran).
zena(ana).
a je tač
tačno, ako je (b
(b i c i d) tač
tačno zena(vesna).
• Ključ
Ključna operacija: unifikacija roditelji(goran,vesna,aleksandar).
(izjednač
izjednačavanje)
avanje) roditelji(ana,vesna,aleksandar).
• Logič
Logički jezici: sestra(X,Y):- zena(X),
Prolog (PROgramming
(PROgramming in LOGic),
LOGic), roditelji(X,M,Z),
roditelji(Y,M,Z).
Datalog
Fakultet organizacionih nauka, Fakultet organizacionih nauka,
Beograd, 2007. Beograd, 2007.
3
Objektno-
Objektno-orjentisani jezici Objektno-
Objektno-orjentisani jezici
• “Script”
Script” jezici
• Najraniji: komandni jezici (shell)
• Web script jezici: JavaScript,
JavaScript, PHP
• Sintaksa
• “Markup”
Markup” jezici
• HTML (HyperText
(HyperText Markup Language)
Language) • Semantika
• XML ( Extensible Markup Language )
• Upitni jezici
• Jezici za specifikaciju i modelovanje
• UML (Unified Modeling Language)
Language
Fakultet organizacionih nauka, Fakultet organizacionih nauka,
Beograd, 2007. Beograd, 2007.
• Sintaksa
definiš
definiše pravila za pisanje korektnih • Leksička specifikacija
programa u programskom jeziku
• Sintaksna specifikacija
• Semantika
definiš
definiše pravila koja programima
napisanim na datom programskom
jeziku daju značznačenje,
enje, tj. definiš
definiše
efekat izvrš
izvršenja programa
Fakultet organizacionih nauka, Fakultet organizacionih nauka,
Beograd, 2007. Beograd, 2007.
4
Primer prevođenja teksta programa u niz
Leksič
Leksička specifikacija tokena
• Za opis atomskih sintaksnih jedinica
(tokena)
tokena) koristi se leksič
leksička specifikacija if Ključ
Ključna reč
reč
(regularni izrazi)
izrazi)
if (x > 20)
20) ( Otvorena zagrada
x Identifikator
• Tokeni u PJ su: break;
Identifikatori > Operator
Ključ
Ključne reč
reči 20 Num. konstanta
Operatori ) Zatvorena zagrada
Numerič
Numeričke konstante
Specijalni znaci (zagrade, separatori, ..) break Ključ
Ključna reč
reč
. . . ; Separator
Fakultet organizacionih nauka, Fakultet organizacionih nauka,
Beograd, 2007. Beograd, 2007.
Leksič
Leksički analizator Sintaksa specifikacija PJ
5
BNF notacija Parsna stabla
if-
if-instrukcija
instrukcija u C mož
može se opisati pomoć
pomoću
sledeć
sledećeg pravila • Atraktivna karakteristika gramatika
gramatika je
da opisuju
opisuju hijerarhijsku sintaksnu
<if- instrukcija> -> if ( <logicki-
<if-instrukcija izraz> ) <instrukcija>
logicki-izraz> instrukcija> strukturu jezika.
jezika.
[ else <instrukcija> ]
• Takve hijerarhijske strukture nazivaju se
<if-instrukcija>: apstrakcija koja se definiš
<if-instrukcija definiše parsnim stablima.
stablima.
strelice: definicija apstrakcije, tj. pravilo
Tekst desno od strelice:
koja se sastoji iz tokena i neterminala (refenci na druge
apstrakcije)
apstrakcije)
6
Implementacione metode: Struktura
Implementacione metode:
metode: Kompajleri
kompajlera
ompajlera
• Kompajleri:
Kompajleri: programi koji prevode programe
napisane u izvornom kodu u izvrš
izvršni kod
Implementacione metode:
metode: Interpreteri Imlementacione metode: Interpreteri
• Interpreter:
Interpreter: program napisan u
izvornom kodu interpretira se pomoć
pomoću
drugog programa – interpretera
(softverska simulacija maš
mašine)
7
Implementacione metode: hibridni Implementacione metode:
metode: Just-
Just-in-
in-time
implementacioni sistem sistemi
Compilation
Source
Source Language
Language MSIL
MSIL
Code
Code Compiler
Compiler Metadata
Metadata
Neki od .NET jezika (C#,
VB.NET, J#, …)
Execution
Native
Native JIT
JIT
Code
Code Compiler
Compiler
Implementacione metode:
metode: .NET izvrš
izvršni
model
Programerska okruž
okruženja
Source
code
VB C# C++ Programersko okruž
okruženje je kolekcija
Compiler Compiler Compiler alata koja se koristi u razvoju softvera
Managed Assembly Assembly Assembly – kolekcija mož
može da sadrž
sadrži samo tekst-
tekst-editor,
IL Code IL Code IL Code
code linker i kompajler
– ili to mož
može da bude kolekcija integrisanih
Common Language Runtime
alata, tako da se svakom pristupa preko
JIT Compiler uniformnog korisnič
korisničkog interfejsa
Native Code
Programerska okruž
okruženja .NET Framework – novo razvojno i izvrš
izvršno
okruž
okruženje
Primeri
• UNIX – starije prog.
prog. okruž
okruženje;
enje; grafič
rafički korisnič
korisnički C#.NET VB.NET C++.NET JScript.NET ...
interfejs bio je glavni nedostatak. Common Type System - CTS Common Language Specification - CLS
• JBuilder – prog.
prog. okruž
okruženje koje uključ
uključuje Tehnologija za razvoj aplikacija
(Web Service, Web Forms, Windows Forms, Console Applications)
kolekciju integrisnih alata za razvoj Java aplikacija;
Class Libraries – Data and XML classes
pristup alatima preko grafič
grafičkog korisnič
korisničkog interfejsa (ADO.NET, SQL, XSLT, XPath, XML, ...)
8
Kriterijumi za ocenu PJ Čitljivost i razumevanje programa
• Čitljivost Faktori koji utič
utiču na čitljivost:
• Lakoć
Lakoća učučenja i pisanja
• Jednostavnost
• Pouzdanost
jasne jezič
jezičke konstrukcije, svaka sa jedinstvenim
• Cena znač
značenjem
• Kontrolne strukture
• Tipovi i strukture podataka
Lako uč
učenje i pisanje programa u PJ Pouzdanost programa
Cena Znač
Značaj izuč
izučavanja koncepata PJ