jezici · compare: cmpl #oxa,n cgt end_of_loop acddl #0x1,n bra compare end_of_loop: dr miroslav...
TRANSCRIPT
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
RAČUNARSKI JEZICI
Dr Miroslav TrajanovićMašinski fakultet u Nišu
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
OSNOVNI POJMOVI
• SINTAKSA JEZIKA: skup pravila koja definišu legalnu upotrebu jezika
• SEMANTIKA: značenje pojedinih konstrukcija
• REZERVISANE REČI
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
GENERACIJE JEZIKA• I generacija - Mašinski jezik• II generacija - Asembler• III generacija
– Proceduralno orijentisani– Problemski orijentisani– Objektno orijentisani
• IV generacija (Aplikacioni jezici 4GLs)– Produkciono orijentisani– Korisnički orijentisani
• Generatori aplikacija• Prirodni jezici
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
VRSTE JEZIKA
• Deklarativni jezici– Šta program treba da uradi– Primer SQL
• Imperativni jezici– Kako program to treba da uradi– Primer VB
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
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
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Mašinski jezik
• Svaki procesor ima svoj mašinski jezik• Svi programski jezici se pre izvršenja
prevode na mašinski jezik
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Mašinski jezik
000101000100010001000100001000101010111110 000001110101000111110000100010000010101010
Primer Java programa:
int counter = 0; counter = counter + 1;
Adekvatni zapis u mašinskom jeziku:
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
MAŠINSKI JEZIK
23fc 0000 0001 0000 0040 0cb9 0000 000a 0000 0040 6e0c 06b9 0000 0001 0000 0040 60e8
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Asembler
• Jezik zasnovan na mnemonicima• Svakom mnemoniku odgovara jedna
instrukcija mašinskog jezika• I danas se koriste kada je potrebno
pisati sistemske programe
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Asembler
movl #0x1,n compare:
cmpl #oxa,n cgt end_of_loop acddl #0x1,n bra compare
end_of_loop:
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Proceduralno orijentisani• NAUČNI
– FORTRAN (1954) 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)
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
RAZVOJ JEZIKA
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Proceduralno orijentisani
• JEZICI VEŠTAČKE INTELIGENCIJE– LISP (1959) LISt Processing– Prolog (1972) PROgramming in LOGic
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Problemski orijentisani
• GPSS - jezik za simulaciju sistema• APT - za NUMA• PostScript
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Objektno orijentisani jezici
• Smalltalk• C++• Eiffel
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
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 4GL su: SQL, FOCUS, PostScript, Gaus, Mathematica
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Kratka istorija 4GL• 1969. RAMIS, Princeton, New Jersey prvi 4GL, Dick Cobb
i Gerry Cohen• Bio je komercijalno raspoloživ• Bio je nadgradnja nad bazama podataka• Mogla je da se izda naredba tipa: • PRINT ACROSS MONTH SUM SALES BY DIVISION• Pisanje koda smanjeno 10:1 u odnosu na 3GL (COBOL)• 1975. NOMAD poboljšana verzija RAMIS-a donosio
autorima 100M $ do sredine 80.-tih. Samo na IBM mašinama
• FOCUS kopija NOMADA pod drugim imenom ($150M )• 1983. NOMAD2 interfejs ka SQL i DB
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
PRODUKCIONO ORIJENTISANI JEZICI
• IDEAL• NATURAL 2• ADL - Assertion Definition Language • SQL
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
ADL• ADL (Assertion Definition Language - Jezik dokaza
definicija) je formalna gramatika za opis ponašanja i kontrolu funkcionisanja interfejsa.
• ADL ima dve funkcije:– Translaciju formalne gramatike u prirodne jezike
kao što su Engleski ili Japanski– Automatsku translaciju formalne gramatike u test
kojim će se proveriti ponašanje interfejsa• Trenutna verzija ADL 2.1 podržava opis,
dokumentovanje i generisanje testova za interfejse pisane u C, C++, IDL and Java.
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
KORISNIČKI ORIJENTISANI JEZICI
• RAMIS II• FOCUS
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
JEZICI PETE GENERACIJE
• 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
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
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
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
Ž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
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
RAZVOJ PROGRAMA
– Pisanje izvornog koda (editor)– Dokumentovanje programa– Prevođenje u objektni kod (compiler -
interpreter)– Povezivanje sa podprogramima i
bibliotečkim funkcijama (linker)– Izrada uputstva za korišćenje programa
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
IZVRŠAVANJE PROGRAMA
• Prevodioci – compiler• Interpreteri
• Virtuelne mašine• WEB brouseri
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
CASE
Computer Aided Software Engineering• Alati za automatizovan razvoj softvera
• CASE alati– za projektovanje– za programiranje– za verifikaciju – za upravljanje projektima
• CASE radno okruženje (više CASE alata)
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
NAJVAŽNIJI JEZICI U UPOTREBI
• PASCAL• C++• JAVA• VISUAL BASIC• HTML
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
PASCAL
• Razvio ga je 1970 Nicklaus Wirth da bi efikasno učio studente programiranju
• Strukturno programiranje (top-down design) korišćenjem procedura
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
BASIC I PASKAL100 IF X>5 THEN 200 ELSE 300110 PRINT "VREDNOST X=";X120 END200 X=X*X + 5210 GOTO 110300 X=0310 PRINT "X JE PREMALO"320 GOTO 120
if X>5 thenbegin
X :=sqr(X) + 5writeln ('Vrednost
X=',X)end
elsebegin
X:=0writeln (X je premalo')
end;
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
C++
• Objektno orijentisan• Objekti su definisani klasama• Objekt je instanca neke klase• Izvedene klase nasleđuju osobine svojih
roditelja (Inheritance)• Polimorfizam
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
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
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
C # • C# je komponentno orijentisan programski
jezik (na srpskom se čita kao C s povisilicom, povišeno C ili jednostavno cis).
• 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).
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
CLI• CLI (Common Language Infrastructure)
je tehnologija koju je Microsoft razvio da bi programerima koji se bave razvojem omogućio da prave Web servise i druge aplikacije u nizu programskih jezika, uključujući one koje je razvio Microsoft i one koje su razvili drugi.
• Sadrži virtuelni izvršni sistem –i osnovnu klasu biblioteka koja definiše kako različite vrste podataka mogu da stupaju u interakcije.