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
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)
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 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
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++
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
Heksadecimalni zapis
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,ncgt end_of_loopacddl #0x1,n bra compare
end_of_loop:
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)
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++• Java• Eiffel
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
RAZVOJ JEZIKA
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
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
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
– 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
Dr Miroslav Trajanović Informacione tehnologije u mašinstvu 2003
IZVRŠAVANJE PROGRAMA
• Prevodioci – compiler• Interpreteri
• Virtuelne mašine• WEB - čitači web stranica
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++• 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 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).