33
Dr Miroslav Trajanovi ć Informacione tehnologije u mašinstvu 2003 RAČUNARSKI JEZICI Dr Miroslav Trajanović Mašinski fakultet u Nišu

JEZICI · 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

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JEZICI · 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

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

RAČUNARSKI JEZICI

Dr Miroslav TrajanovićMašinski fakultet u Nišu

Page 2: JEZICI · 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

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

Page 3: JEZICI · 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

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

Page 4: JEZICI · 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

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

Page 5: JEZICI · 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

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

Page 6: JEZICI · 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

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

Page 7: JEZICI · 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

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:

Page 8: JEZICI · 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

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

Page 9: JEZICI · 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

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

Page 10: JEZICI · 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

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:

Page 11: JEZICI · 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

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)

Page 12: JEZICI · 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

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

RAZVOJ JEZIKA

Page 13: JEZICI · 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

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

Page 14: JEZICI · 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

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

Problemski orijentisani

• GPSS - jezik za simulaciju sistema• APT - za NUMA• PostScript

Page 15: JEZICI · 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

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

Objektno orijentisani jezici

• Smalltalk• C++• Eiffel

Page 16: JEZICI · 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

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

Page 17: JEZICI · 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

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

Page 18: JEZICI · 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

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

PRODUKCIONO ORIJENTISANI JEZICI

• IDEAL• NATURAL 2• ADL - Assertion Definition Language • SQL

Page 19: JEZICI · 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

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.

Page 20: JEZICI · 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

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

KORISNIČKI ORIJENTISANI JEZICI

• RAMIS II• FOCUS

Page 21: JEZICI · 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

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

Page 22: JEZICI · 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

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

Page 23: JEZICI · 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

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

Page 24: JEZICI · 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

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

Page 25: JEZICI · 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

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

IZVRŠAVANJE PROGRAMA

• Prevodioci – compiler• Interpreteri

• Virtuelne mašine• WEB brouseri

Page 26: JEZICI · 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

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)

Page 27: JEZICI · 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

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

NAJVAŽNIJI JEZICI U UPOTREBI

• PASCAL• C++• JAVA• VISUAL BASIC• HTML

Page 28: JEZICI · 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

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

Page 29: JEZICI · 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

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;

Page 30: JEZICI · 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

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

Page 31: JEZICI · 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

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

Page 32: JEZICI · 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

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

Page 33: JEZICI · 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

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.