Uvod u programiranje

Download Report

Transcript Uvod u programiranje

Uvod u programiranje:
Programski jezici
Programski jezik C++
1
29.1.2015
Program, algoritam
 Program je niz instrukcija koji ostvaruje neki algoritam.
 Algoritam je svaki jasan precizan,uređen i nedvosmislen niz
koraka koji u konačnom vremenu dovodi do rješenja nekog
problema – ukoliko problem ima rješenje; odnosno u konačnom
vremenu daje odgovor da problem nema rješenje – ukoliko je to
doista tako.
Programski jezik C++
2
29.1.2015
Naredbe - program
 Računar može riješiti postavljeni zadatak samo ako dobije
uputstvo (niz naredbi) kako to učiniti.
 Kombinacijom naredbi nastaje program.
 Programer pišući program niže naredbe u smislenom
redoslijedu. Naredbe moraju biti u obliku u kojem će ih računar
razumjeti.
Programski jezik C++
3
29.1.2015
Programski jezik – ključne riječi i
sintaksa
 Programski jezici su jezici kojima se pišu računarski programi.
 Svaki programski jezik koristi vlastiti, ograničeni skup riječi koje
imaju posebna značenja a nazivamo ih ključnim riječima.
 Za svaki su programski jezik propisana pravila slaganja ključnih
riječi u naredbe. Takva se pravila nazivaju sintaksa.
 Ako se ne zadovolji propisana sintaksa, program će biti
neispravan i neće se moći izvršiti.
Programski jezik C++
4
29.1.2015
Strojni (mašinski) jezik
 Prvi računari bila su vrlo složeni za korištenje. Njih su koristili isključivo
stručnjaci koji su bili osposobljeni za komunikaciju s računarom. Ta
komunikacija se sastojala od dva osnovna koraka: davanje
instrukcija računaru i čitanje rezultata obrade.
 I dok se čitanje rezultata vrlo brzo učinilo koliko-toliko snošljivim
uvođenjem štampača na kojima su se rezultati ispisivali, unošenje
instrukcija - programiranje - se sastojalo od mukotrpnog unosa niza
nula i jedinica. Ti nizovi su davali računaru upute kao što su: "saberi
dva broja", "premjesti podatak s neke memorijske lokacije na drugu i
slično.
 Programski jezik koji omogućava ovu komunikaciju naziva se strojni
(mašinski) jezik.
Programski jezik C++
5
29.1.2015
Strojni (mašinski) jezik
 U užem smislu strojni jezik računara (engl. machine language,
machine code) je binarni prikaz programa za računar. To je
ujedno i jedini oblik programa koji računar “razumije” te se
svaki drugi oblik programa mora prije izvođenja prevesti u
strojni oblik.
 Program napisan u strojnom jeziku za jednu vrstu računara, tj.
jedan tip procesora, nije primjenljiv na drugoj vrsti procesora.
Svaki procesor ima sebi svojstven strojni jezik. Program napisan
u strojnom jeziku nazivamo izvršni program ili izvršni kod
budući da ga računar može neposredno izvršiti.
Programski jezik C++
6
29.1.2015
Asembler
 Pisanje instrukcija u binarnom kodu dosta je nepraktično pa su
razvijeni simbolički jezici u kojima su binarne instrukcije
zamijenjene mnemoničkim oznakama.
 Programer unosi program napisan u mnemoničkim oznakama u
tekstualnu datoteku pomoću editora teksta i zatim poziva
program koji mnemoničke oznake prevodi u binarne instrukcije
strojnog jezika.
 Program koji vrši konverziju naziva se asembler (eng.
assembler) a sam se programski jezik naziva asemblerski jezik ili
jednostavno asembler.
Programski jezik C++
7
29.1.2015
Asembler, nastavak
 Program napisan u asemblerskom jeziku nazivamo izvorni
program (eng. source code).
 Pisanje programa time postaje dvostepeni proces koji obuhvata:
1. pisanje izvornog programa i
2. prevođenje izvornog programa u izvršni program.
 Programer se tako oslobađa mukotrponog pisanja binarnih
instrukcija te se dobiva do određene mjere strojna neovisnost
izvornog programa.
Programski jezik C++
8
29.1.2015
Primjer
 Sljedeći primjer pokazuje dio izvršnog koda (strojni jezik) i
njemu ekvivalentan izvorni, asemblerski kod. (Radi se o
asembleru za Intelov mikroprocesor 8086):
Programski jezik C++
9
29.1.2015
Programiranje na asembleru
 Pisanje programa u asemblerskom jeziku daje programeru
potpunu kontrolu nad svim komponentama računara.
 Programer stoga mora poznavati arhitekturu računara za kojeg
piše program te kontrolirati sve operacije koje računar izvršava.
Program napisan u asembleru mora biti preveden u binarni
oblik odgovarajućim programom prevoditeljem da bi ga
procesor “razumio”. Oni su ešto čitljiviji i lakši za razumijevanje
od binarnog zapisa, ali ih je još uvijek teško pisati i ispravljati.
 I oni ovise od vrste i unutrašnje građe računara pa se u načelu
mogu izvršavati samo na procesoru za koji su pisani.
Programski jezik C++
10
29.1.2015
Viši programski jezici
 Izvorni program napisan u asembleru nije prenosiv između
računara različite arhitekture. Zbog svih tih razloga za većinu
programerskih zadataka koriste se viši programski jezici.
 Viši programski jezici (C, Pascal, FORTRAN, C++, Java, Perl,
Python,. . . ) razvijeni su kako bi se prevladali nedostaci
asemblerskog jezika.
 Oni oslobadaju programera potrebe poznavanja arhitekture
računala, omogućavaju prenosivost programa izmedu računara
različitih arhitektura te brže i jednostavnije programiranje.
Programski jezik C++
11
29.1.2015
Viši programski jezici
 Programi napisani u višem programskom jeziku moraju prije
izvodenja proći postupak prevodenja u izvršni kod što je zadatak prevodioca (eng. compiler).
 Naredbe višeg programskog jezika prilagođene su tipu
podataka s kojima programski jezik manipuliše i operacijama
koje nad podacima treba vršiti. To je osnovna razlika naspram
asemblera koji je prilagoden načinu funkcioniranja
mikroprocesora i pridodatih logičkih sklopova.
Programski jezik C++
12
29.1.2015