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

JEZICI - masfak.ni.ac.rs

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

RAČUNARSKI JEZICI

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

Page 2: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

Vrste računarskih jezika

• Programski jezici (npr. Java, C++)• Skript jezici (npr. pHp, Pyton, JavaScript)• Specifikacioni jezici (IDEF, dijagrami)• Jezici upita (SQL)• Markup jezici (HTML, XHTML, TeX, SGML,

XML)• Transformacioni jezici (XSLT - Extensible

Stylesheet Language Transformations)

Page 3: JEZICI - masfak.ni.ac.rs

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 4: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

Generacije programskih jezika• I generacija - Mašinski jezik• II generacija - Asembler• III generacija

– Proceduralno orijentisani– Problemski orijentisani– Objektno orijentisani

• IV generacija (Aplikacioni jezici 4GLs)• V generacija (Rešavanje problema

upotrebom ograničenja 5GL)• Prirodni jezici

Page 5: JEZICI - masfak.ni.ac.rs

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 Java, C++

Page 6: JEZICI - masfak.ni.ac.rs

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 7: JEZICI - masfak.ni.ac.rs

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 8: JEZICI - masfak.ni.ac.rs

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 9: JEZICI - masfak.ni.ac.rs

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

Heksadecimalni zapis

Page 10: JEZICI - masfak.ni.ac.rs

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 11: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

Asembler

movl #0x1,n compare:

cmpl #oxa,ncgt end_of_loopacddl #0x1,n bra compare

end_of_loop:

Page 12: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

Proceduralno orijentisani• NAUČNI

– FORTRAN (1954-1957) 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 13: JEZICI - masfak.ni.ac.rs

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 - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

Problemski orijentisani

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

Page 15: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

Objektno orijentisani jezici

• Smalltalk• C++• Java• Eiffel

Page 16: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

RAZVOJ JEZIKA

Page 17: JEZICI - masfak.ni.ac.rs

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 18: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

JEZICI PETE GENERACIJE

• Prolog, OPS5, Mercury• 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 19: JEZICI - masfak.ni.ac.rs

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 20: JEZICI - masfak.ni.ac.rs

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 21: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

RAZVOJ PROGRAMA

– Projektovanje aplikacije– Pisanje izvornog koda (editor)– Dokumentovanje programa– Prevođenje u objektni kod (compiler - interpreter)– Povezivanje sa podprogramima i bibliotečkim

funkcijama (linker)– Testiranje– Izrada uputstva za korišćenje programa– Izrada poboljšanih i novih verzija programa

Page 22: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

IZVRŠAVANJE PROGRAMA

• Prevodioci – compiler• Interpreteri

• Virtuelne mašine• WEB - čitači web stranica

Page 23: JEZICI - masfak.ni.ac.rs

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 24: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

NAJVAŽNIJI JEZICI U UPOTREBI

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

Page 25: JEZICI - masfak.ni.ac.rs

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 26: JEZICI - masfak.ni.ac.rs

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 27: JEZICI - masfak.ni.ac.rs

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 28: JEZICI - masfak.ni.ac.rs

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 29: JEZICI - masfak.ni.ac.rs

Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003

C # • C# je komponentno orijentisan programski

jezik (na srpskom se čita kao C sharp, C sapovisilicom, povišeno C ili jednostavno cis).

• Sličan je Javi u tom smislu štoprogramerima omogućava da kôd pišu samojednom a potom njegove delove iznovakoriste za pravljenje različitih aplikacija.

• Izveden je iz jezika C i C++ i Microsoft gasmatra najefikasnijim programskim jezikomza izgradnju Web usluga zasnovanih naproširivom jeziku za označavanje(Extensible Markup Language, XML).