Opti*ki mediji

Download Report

Transcript Opti*ki mediji

PROGRAMSKI JEZICI
PROGRAMSKI JEZICI
 Programski jezik - jezik koji razumije računalo.
 Podjela:
 strojni jezici,
 simbolički jezici niske razine,
 simbolički jezici visoke razine.
Sanda, 2012.
2
STROJNI JEZIK
 Jedini oblik programa koji
računalo doslovno "razumije“.
 Strojni jezik (engl. machine
language, machine code) je
binarni prikaz programa za
računalo.
Sanda, 2012.
3
STROJNI JEZIK
 Vezan uz građu računala, odnosno ovisan o središnjoj
jedinici za obradu (svaki procesor ima sebi svojstven
strojni jezik).
 Pisanje programa je složeno, zahtijeva
dobro poznavanje građe računala.
 Samo za usko specijalizirane stručnjake.
Sanda, 2012.
4
SIMBOLIČKI JEZICI
 Nastali
s ciljem olakšanja programiranja (čitljiviji i
lakši za razumijevanje od binarnog zapisa).
 Podjela:

simbolički jezici niske razine,
 simbolički jezici visoke razine.
Sanda, 2012.
5
SIMBOLIČKI JEZIK NISKE RAZINE
 Asembler (engl. assembler) - sibolički jezik niske razine.
 Svaka binarna naredba strojnog jezika predočena je
odgovarajućim simbolom (obično kratica engleskog
opisa naredbe pa se lako pamti) npr.:
 ADD
 SUB
 CMP
Sanda, 2012.
6
SIMBOLIČKI JEZIK NISKE RAZINE
 Asembler
- čitljiviji i lakši za razumijevanje ali još
uvijek vrlo težak za pisanje i ispravljanje.
 Program
napisan asemblerom treba prevesti u
binarni oblik da bi ga procesor “razumio” i mogao
izvršiti.
 Prevodi - program
prevoditelj.
Sanda, 2012.
7
SIMBOLIČKI JEZICI VISOKE RAZINE
 Programski
jezici kod kojih se veći ili manji skup
naredaba strojnog
jezika nadomješta jednom
naredbom višeg simboličkog jezika.
 Naredbe - mnogo više nalik govornom jeziku, lakše
za pamćenje i uporabu.
 Isti
program može se izvršavati na različitim
računalima (procesorima).
Sanda, 2012.
8
SIMBOLIČKI JEZICI VISOKE RAZINE
Sanda, 2012.
9
SIMBOLIČKI JEZICI VISOKE RAZINE
 U drugoj polovini dvadesetog stoljeća nastaju:
FORTRAN, COBOL, BASIC, PASCAL, C i mnogi drugi.
 Mogu se podijeliti:
 jezici opće namjene,
 jezici prilagođeni određenoj vrsti problema.
Sanda, 2012.
10
C JEZIK
 Jezik opće namjene, velikih mogućnosti, u načelu
neovisan o računalu na kojem se izvodi.
(autor: Denis M. Ritchie, 1973. godine)
 Postigao je velik uspjeh jer su njime razvijani različiti
operacijski sustavi i namjenski programi.
Sanda, 2012.
11
IZVORNI PROGRAM – IZVRŠNI PROGRAM
izvorni
program
prevoditelj
izvršni
program
 Izvorni program (engl. source code) - program napisan
simboličkim programskim jezikom.
 Prevode programi - jezični prevoditelji.
 Kao posljedica nastaje izvršni program (strojni oblik).
Sanda, 2012.
12
JEZIČNI PREVODITELJI
 Međusobno se razlikuju složenošću i djelotvornošću.
 Načelno se mogu podijeliti u dvije skupine:
 interpreteri (interpretatori, engl. interpreter),
 kompajleri (kompilatori, engl. compiler).
Sanda, 2012.
13
INTERPRETER
 Naredbe izvornog programa prevodi u strojni oblik u
trenutku izvođenja programa.
 Naredba se prevede pa izvrši. Nakon toga se prevede
sljedeća naredba i izvrši i tako redom.
Sanda, 2012.
14
INTERPRETER
Prednosti:
Nedostaci:
 trenutno otkrivanje
određene vrste
pogrešaka i interaktivno
ispravljanje.
• relativno sporiji rad,
• nužnost isporuke
izvornoga kôda programa
korisniku,
• na računalu korisnika
programa mora biti
prisutan i interpreter.
15
KOMPAJLER
 Sve naredbe izvornog programa prevodi i analizira
odjednom. Rezultat rada je izvršni tj. strojni oblik
programa.
 Za razliku od interpretera, kod kompajlera su izvorni i
izvršni program potpuno odvojeni i pri izvođenju
neovisni.
Sanda, 2012.
16
KOMPAJLER
Prednosti:
• korisniku se najčešće predaje samo izvršna inačica
programa,
• na računalu korisnika programa ne mora biti prisutan
kompajler,
• pošto je izvršni program za čovjeka nečitljiv i nerazumljiv
(oblik: com ili exe) ovakav način rada štiti trud
programera od neovlaštenih prepravaka ili krađe dijelova
programa.
Sanda, 2012.
17
PRENOSIVI PROGRAMI
 Prenosivi (engl. portable) programi - programi koji se
bez izmjena mogu izvoditi na različitim korisničkim
računalima neovisno o sklopovlju i operacijskom
sustavu.
 Potreba za programima takve vrste raste s pojavom
Interneta.
Sanda, 2012.
18
JAVA
 Java - snažan, objektno orijentiran programski jezik
opće namjene.
 Omogućava stvaranje potpuno prenosivih programa
koristeći dva programa prevoditelja:
 Java kompajler,
 Java prividno računalo.
Sanda, 2012.
19
JAVA KOMPAJLER – JAVA BYTECODES
 Java kompajler - program koji se nalazi na računalu
programera koji piše i prevodi izvorni program.
 Prevođenjem nastaje oblik programa koji se ne može
izravno izvršiti ni na jednom stvarnom računalu ali se
može proslijediti svakom računalu bez obzira na vrstu
računala i operacijski sustav (potpuno je prenosiv).
 Taj se međukorak do konačnog strojnog oblika naziva
Java bytecodes.
Sanda, 2012.
20
JAVA PRIVIDNO RAČUNALO
 Java bytecodes
je "strojni oblik programa" za Java
prividno ili virtualno računalo.
 Java prividno računalo je program prevoditelj, mora se
nalaziti na računalu na kome se program želi izvršiti.
 Za svaku vrstu procesora - posebno Java prividno
računalo (engl. Java virtual machine, Java engine).
 Rezultat rada Java prividnog računala je strojni oblik
programa koji računalao ”razumije” i može ga izvršiti.
Sanda, 2012.
21
JAVA PROGRAM
Sanda, 2012.
22
OBJEKTNO ORIJENTIRANI PROGRAMI
 Zamisao uporabe gotovih komponenti pri gradnji
računalnih sustava primjenjiva je i pri izradi programa.
 Zadatak se u tu svrhu dijeli na manje dijelove koji se
neovisno rješavaju i provjeravaju.
 Gotovi dijelovi programa nazivaju se objekti (engl.
object), a programi koji rabe objekte objektno
orijentirani programi (engl. OOP, object oriented
programs).
Sanda, 2012.
23