OSNOVE RAČUNARSTVA

44
TEHNIČKO VELEUČILIŠTE ZAGREB STROJARSKI ODSJEK OSNOVE RAČUNARSTVA bilješke sa predavanja ak-god. 2004/2005.

description

OSNOVE RAČUNARSTVA bilješke sa predavanja ak-god. 2004/2005

Transcript of OSNOVE RAČUNARSTVA

Page 1: OSNOVE RAČUNARSTVA

TEHNIČKO VELEUČILIŠTE ZAGREB STROJARSKI ODSJEK

OSNOVE RAČUNARSTVA

bilješke sa predavanja

ak-god. 2004/2005.

Page 2: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 2

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

UVOD

Zakonitosti koje opisuju svijet oko nas spoznajemo kroz podatke i informacije i neprestano dograđujemo povećavajući tako količinu znanja.

Veliki broj međuzavisnosti u našoj okolini, velika brzina u kojoj se nižu događaji i promjene oko nas, te sve veći značaj naše interakcije s okolinom, zahtijevaju izgradnju pomagala čovjeku koje će mu povećati: sposobnosti sagledavanja, sposobnosti primanja i obrade podataka i informacija, sposobnosti zaključivanja i sposobnosti odlučivanja.

Računalo kao temeljno informacijsko pomagalo čovjeku, prema gore navedenim potrebama, razvijeno je tako da omogući primanje, uskladištenje, obradu i slanje podataka, informacija i znanja.

Digitalno računalo Digitalno računalo je stroj koji može rješavati probleme izvodeći dane mu instrukcije. Niz instrukcija koji opisuje kako se rješava pojedini zadatak naziva se PROGRAM.

Računalo se sastoji od elektroničkih sklopova koji mogu prepoznati i izvršiti organičeni skup instrukcija, u koji se prevode sve instrukcije programa koji se želi izvesti na računalu. Osnovne instrukcije vrlo su jednostavne. U biti nisu mnogo složenije od:

- zbrajanja dva broja;

- uspoređivanje broja s nulom;

- kopiranje podatka s jednog dijela memorije računala u drugi dio;

- skok na slijedeću instrukciju programa.

Primitivne instrukcije tvore jezik pomoću kojih možemo upravljati, odnosno komunicirati s računalom. Ovakav jezik nazivamo STROJNI JEZIK.

Virtualna arhitektura računala Pošto su instrukcije jednostavne, teško je i mukotrpno upotrebljavati ih, odnosno pisati programe u strojnom jeziku.

Problem se može rješiti na principjelno dva načina, ali oba zahtjevaju razvoj novog jezika, (skupa instrukcija) koji je bliži ljudima, odnosno lakši za upotrebu od ugrađenog strojnog jezika.

Novi skup instrukcija koji se razvija nazovimo L2, kao što ćemo označiti i strojni jezik oznakom L1. Ova se dva pristupa razlikuju u načinu na koji se programi pisani u jeziku L2 izvode na računalu koje u stvari može izvoditi samo instrukcije iz skupa L1.

Page 3: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 3

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Jedna metoda izvođenja programa napisanog u L2 jeziku je da se sve instrukcije prvo zamijene s ekvivalentnim nizom instrukcija u L1 jeziku. Prevodi se cijeli program iz jezika L2 u jezik L1. Računalo izvodi novi program napisan u L1 jer jedino to i može. Ovu metodu nazivamo PREVOĐENJEM. Program za prevođenje iz jezika L2 u L1 naziva se COMPILER.

RAČUNALO R1STROJNI JEZIK L1

Virtualno računalo R2STROJNI JEZIK L2

Virtualno računalo R3STROJNI JEZIK L3

Drugi pristup je da napišemo program u L1 jeziku kojemu će ulazni podaci biti instrukcije programa napisanog u L2. Program će čitati jednu po jednu instrukciju, svaku analizirati i odmah izvoditi ekvivalentni niz strojnih instrukcija jezika L1, za svaku instrukciju jezika L2. Ne generira se cijeli novi program u L1 jeziku. Metodu nazivamo inerpretacija, a program koji interpretira instrukcije INTERPRETER.

Prevođenje i interpretacija su slične metode i obje su u širokoj upotrebi. U obje metode instrukcije programa napisanog u L2 izvršavaju se izvođenjem ekvivalentnog niza instrukcija u jeziku L1. Razlika je što s kod prevođenja cijeli program L2 prevodi u L1. Time program napisan u L2 postaje nepotreban. Izvodi (izvršava) se samo program napisan u L1. Nasuprot tome, pri interpretiranju ne generira se novi program, već se svaka instrukcija programa L2 analizira, dekodira i odmah izvršava odgovarajući niz L1 instrukcija.

Kako ne bi uvijek razmišljali o prevođenju ili interpretaciji zamislimo da postoji računalo čiji je strojni jezik L2. Kada bi se takvo računalo moglo (dovoljno jeftino) realizirati ne bi postojala potreba za L1. Međutim čak ako to i nije moguće možemo zamisliti takvo računalo, hipotetičko računalo ili virtualno računalo, čiji jezik je L2. Činjenica da se u stvarnom računalu instrukcije L2 prevode ili interpretiraju u L1 nije od značaja za ovo razmišljanje, ali nam omogućuje proučavanje strukture računala kroz različite razine. Naime, da bi prevođenje ili interpretacija bili praktično provedivi jezici L2 i L1 se ne smiju "previše" razlikovati. Ovo na prvi pogled nije u skladu s osnovnom idejom L2, jer ovakvo ograničenje svakako uzrokuje određenu nepraktičnost za razvoj aplikacija. Međutim, ovakvo ograničenje praktične je prirode, kada bi se jezici L1 i L2 značajno razlikovali to bi otežalo programiranje programa za prevođenje odnosno interpretaciju.

Page 4: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 4

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Rekurzija se sama nameće kao rješenje problema, razviti ćemo jezik L3 koji će biti više prilagođen ljudima, a manje stroju. Ljudi mogu programirati u L3 baš kao da je to strojni jezik hipotetskog računala.

Razvoj novih jezika, "boljih" od njihovih predhodnika može ići bez ograničenja sve dok se ne postigne željeni cilj. Svaki jezik određuje jedno virtualno računalo. Ovo nam omogućuje proučavanje računala na različitim razinama, ovisno o našim interesima.

U ovakvom razmatranju važno je uočiti odnos između jezika i virtualnog računala. Svako računalo odrđeno je strojnim jezikom kojim se mogu opisati instrukcije koje računalo može izvršiti. Računalo definira jezik i obrnuto.

Računalo s n razina možemo razmatrati kao n računala s različitim strojnim jezicima, pri tome ne treba zaboraviti da se samo programi u strojnom (L1) jeziku mogu direktno izvršavati na računalu. Međutim osoba koja piše programe za n-tu razinu ne mora biti upoznata s detaljima prevođenja (ili interpretiranja) na razinama nižim od one koja je neophodna za korištenje računala za potrebe određene vrste poslova. Većinu korisnika zanima samo razina na kojoj rade, a sve niže od te, nisu predmet njihovog interesa. Ovako opisana virtualna struktura računala može se primjeniti i na izvedena računala.

Svrstavanje razina računala može se prikazati na slijedeći način:

Razina sklopova - program kao niz instrukcija ne egzistira

Mikroprogramska razina - Ne postoje dva računala s identičnim mikroprogramskim razinama, ali postoje zajedničke karakteristike kao i velike sličnosti. Na ovoj razini računala, odnosno njihovi se centralni procesori razlikuju u broju i načinu izvođenja instrukcija. No npr. dvadesetak osnovnih instrukcija procesora dovoljno je da se kreira upotrebljivo računalo. Svako računalo može izvršavati barem jedan mikroprogram, koji implicitno definira jezik na 2. razini.

Page 5: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 5

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Ştrojna razina -je stvarna razina strojnog jezika. Na ovoj razini veće su ličnosti nego različitosti među jezicima odnosnop arhitekturama različitih proizvođača računala/procesora. Ovakav je pristup subjektivan, pa ćemo zbog opće terminološke neusaglašenosti ovu razinu nazivati konvencionalnom strojnom razinom. Priručnici proizvođača računala, koji opisuju jezike ove razine (tipični naziv: Machine Language Reference Manual ...), de facto opisuju instrukcije virtualnog računala čije se instrukcije interpretiraju i izvršavaju na nižoj razini.

Razina operacijskog sustava (OS) - je hibridna razina: dio interpretira OS, a djelomično se parsira na nižu razinu. Ova razina nije nužno ekvivalentna sa korisničkim sučeljem operacijskog sustava.

Općenito ne postoje fiksna pravila kada se kod interpretira, a kada se prevodi (jer to ovisi od projektanata računala), ali može se reći da se kod na niskim razinama uglavnom interpretira, a na višim prevodi.

Assemblerska razina – na kojoj postoji simbolički oblik strojnih instrukcija.

Razina programskih jezika (razvojnih okolina) – ovu razinu tvore simbolički jezici, podobni za rješavanje različitih problema (npr. BASIC, FORTRAN, PASCAL, C itd.). Programi pisani u takvim, visoko simboličkim jezicima prevode se pomoću programa-prevodioca (COMPILER-s) na niže razine, a ponekad se interpretiraju interpreterima (INTRPRETER-s).

Aplikacije - predstavljaju skupine razvijenih programa - aplikacija. Ovi programi prilagođeni su zahtjevima određenog područja primjene. To praktično znači da su u te programe ugrađena velika količina informacija o pojedinoj aplikaciji. Korisnik, koji se koristi tom razinom računala ne mora znati što se dešava na nižim razinama.

APLIKACIJE

ASSEMBLERI

PROGRAMSKI JEZICI

OPERACIJSKI SUSTAVI

STROJNA RAZINA

MIKROPROGRAMIRANJE

Ono što je za naše razmatranje značajno možemo sažeti na slijedeći način:

Računala su konstruirana i mogu se razmatrati kao serijski niz logičkih cjelina, a svaka se od njih osniva na pethodnu. Svaka cjelina predstavlja drugu razinu apstrakcije. Na ovaj način možemo zanemariti složene detalje koji nisu značajni za naša razmatranja.

Skup informacija, instrukcija, podataka i svojstava pojedinog računala nazivamo arhitekturom računala

Page 6: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 6

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

HW SW & višerazinska računala

- HW - sklopovi računala;

- SW - sastoji se od algoritama i njihove kompjuterske reprezentacije, odnosno programa koji čine programsku podršku.

Treba uočiti da se svaka operacija koja se rješava SW može rješiti i HW. Razlika između SW i HW bila je potpuno jasna samo na samim početcima razvoja računala, kada je HW mogao izvršiti nekoliko jednostavnih instrukcija (ADD, STORE, MOVE, JUMP), a sve ostalo je bio mukotrpno napisani SW. Danas ne postoje fiksna pravila što će se rješiti SW, a što HW. To ovisi o zahtjevima odnosno namjeni i ciljevima projektanta računalnog sustava. Zaključak dosadašnjih razmatranja može se zažeti u tvrdnju:

HW I SW LOGIČKI su EKVIVALENTNI.

DIJELOVI RAČUNALA - NAČIN RADA

von Neuman-ova arhitektura: tri osnovna dijela:

središnje jedinice za obradu, memorija i ulazno-izlazni sklopovi.

Središnja jedinica za obradu obrađuje podatke, upravlja i nadzire protokom podataka između pojedinih dijelova sustava, te usklađuje pravilan rad cijelog sustava.Memorija (spremnik) pohranjuje podatke i programe, te ih po potrebi stavlja na raspolaganje ostalim dijelovima sustava. Ulazno-izlazni sklopovi omogućuju prijenos podataka između računala i okoline.

Page 7: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 7

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Primjeri ovakve arhitekture u izvedbi: PDP -8, -11, PC

Prikaz načina rada jednostavnog procesora (SISD), FETCH-DECODE-EXECUTE –(dohvati – dekodiraj – izvedi)

Prepostavke primjera rada jednostavnog procesora s nekoliko registara:

U radnom spremniku je smješten strojni oblik programa kao niz instrukcija pohranjenih u uzastopne memorijske lokacije;

• u radnom spremniku nalaze se i svi ulazni podaci koje će program dohvaćati tijekom izvođenja

• program će rezultate pohranjivati na određeno mjesto u spremniku

Unutar procesora sadržaji se mogu interpretirati:

• kao instrukcije strojnog programa računala i

• kao osnovni tipovi podataka.

Procesor je automatski izvoditelj programa koji obavlja instrukcije onim redom kojim su one smještene u spremniku tj. adresira instrukcije s pomoću programskog brojila. Ako se taj redoslijed izvođenja treba narušiti (izvesti neke "skokove") onda se unutar instrukcije mora prisilno promijeniti sadržaj programskog brojila. Njegova osnovna svojstva su određena skupom registara i skupom instrukcija. Instrukcije mogu biti za premještanje sadržaja, za obavljanje aritmetičko-logičkih operacija, za programske skokove (bezuvjetni, uvjetni i skokovi u potprogram) i za upravljačka djelovanja.

Da bi ostvarili potprogram služe nam dvije posebne instrukcije skoka:

• instrukcija za poziv potprograma

Page 8: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 8

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

• instrukcija za povratak iz potprograma.

Pri pozivu potprograma treba prenijeti ulazne podatke, a potprogram pri završetku treba vratiti rezultate programu koji ga je pozvao.

Osnovni zadatak operacijskog sustava je da prije započinjanja nekog procesa u računalu se moraju stvoriti uvjeti za njegvo izvođenje i da se to izvođenje može opisati modelom koj se zasniva na opisu jednostavnog računala.

Ako u programsko brojilo upišemo adresu prve instrukcije programa, procesor će automatski početi izvoditi taj program.

Struktura registara procesora:

programsko brojilo (prog. counter PC), adresni registar (AR), instrukcijski reg. (IR), akumulator (ACC), podatkovni (data reg DR), status reg. (SR),

Simbolički tok programa rada CPU-a

1. DOHVATI instrukciju iz memorije, pohrani u IR.

2. Inkrementiraj PC.

3. DEKODIRAJ instrukciju

4. Ukoliko instrukcija treba operande, odredi adresu (-e) gdje su

5. dohvati podatke (ako ih ima, i stavi u ACC)

6. IZVEDI instrukciju

7. Spremi rezultat

8. nastavi na 1.

Page 9: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 9

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

VRSTE RAČUNALA Povijesno tijekom razvoja uvriježeno je razlikovanje slijedećih skupina računala:

Mikroračunala (engl. Microcomputers). To su računala najmanje snage, a u tu skupinu ubrajaju se npr. kućna i osobna računala. Kućna računala (engl. Home Computer) su najjeftinija i najjednostavnija vrsta računala koja se uglavnom koriste za igru i učenje. Danas se često, ne sasvim ispravno koristi termin Osobna računala (engl. Personal Computer) su veće snage i standardno se koriste i u poslovne svrhe. Napredak računalne tehnologije i time uzrokovan pad cijena omogućio je smanjivanje razlike u karakteristikama računala za poslovnu i kućnu uporabu, tako da praktički nema razlike između računala namjenjenih za "kućnu" upotrebu i računala namijenjenih za obrađivati podataka za potrebe malih tvrtki.

Radne stanice (engl. Workstations) su računala namijenjena opsežnijoj obradi podataka, a odlikuju se velikom brzinom obrade podataka, znatno većom radnom i ostalom memorijom od mikroračunala te odličnim mogućnostima grafičkog prikaza podataka. Radne stanice najčešće se rabe za obradu slikovnih podataka, npr. crteža, shema, nacrta itd. Danas se za takve namjene koriste osobna računala opremljena posebnim sklopovima za obradu grafičkih informacija.

Mala računala (Minicomputers) – sredinom 70 tih godina razvijena su računala koja su mogućnostima znatno nadmašivala tadašnja mikroračunala (omogućavala npr. višekorisnički, više programski rad), a cijenom (sukladno i nekim mogućnostima) su bili znatno ispod cijene tadašnjih mainframe računala. Pojava malih računala značajna je za naglo širenje računalne tehnologije 70tih i 80tih godina dvadestog stoljeća. Razvoj radnih stanica i osobnih računala premašio je karakteristike malih računala.

Velika računala (engl. Mainframe) su računala najveće snage od svih do sada spomenutih i rabe se kada ostale vrste računala ne mogu zadovoljiti potrebnu brzinu obrade podataka. Relativno visoka cijena ograničava uporabu velikih računala samo na velike tvrtke. Zamjenjuju ih umreženi računalni sustavi bazirani na tehnologiji osobnih računala.

Superračunala (engl. Supercomputers) su najsnažnija računala koja se često odlikuju posebnim tehnološkim rješenjima i namjenskom arhitekturom. Proizvode se pojedinačno, a cijena im je vrlo visoka.

Granice između pojedinih područja nisu oštro izražene, a s razvojem tehnike pomiču se i granice pojedinih područja. Tako npr. snagu koju danas posjeduju osobna računala što ih ubrajamo u mikroračunala prije dvadesetak godina posjedovala su mala računala.

Glede prenosivosti računala se mogu podijeliti na mirujuća i na prijenosna (engl. Portable, Laptop, Notebook, PAD - Personal Digital Assistent).

Prijenosna računala predviđena su za česti transport, pa su i građena na odgovarajući način. Ta su računala malih dimenzija (često stanu u torbu za spise), lagana i jednostavno prenosiva. Prijenosna računala opremljena su baterijama kako bi se mogla upotrebljavati na mjestima gdje nije pristupačan priključak za gradsku mrežu (zrakoplov, vlak i sl.).

Page 10: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 10

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

PROGRAMSKA PODRŠKA

Sistemska - namijenjena je pokretanju računala i zatim što djelotvornijem iskorištenju. Unosi se u računalo da bi ono uopće funkcioniralo, te da bi se mogućnosti računala što efikasnije iskoristile. Obuhvaća:

Operacijske sustave

Pomoćne programe operacijskog sustava

Interpretere i prevodioce (Compilers)- Programske prevodioce odnosne razvojne okoline

Aplikacijska – obuhvaća programsku podršku pomoću koje primjenjujemo računalo u svim aspektima našeg djelovanja: omogućuje korištenje računala u svakodnevnim poslovima korisnika: razvoj novih programa i aplikacija, učenje, projektiranje, dopisivanje, upravljanje procesima, financije, uprava, zabava itd.

Programski prevodioci Poznatiji :

BASIC (1964.)

Algol 58, 60, 68 (ALGOrithmic Language 1958.)

PASCAL (Niklaus Wirth) 1971.-

FORTRAN (FORmula TRANslator, IBM 1954.-)

COBOL (Common Business Oriented Language, CODASYL 1959.)

PL/1 (IBM sredina 1960-tih)

ADA (razvoj započeo 1975., dovršen 1995.)

Visual Basic, Delphi (Borland)

C ( Dennis M. Ritchie 1970.)

C++ (Bjarne Stroustrup )

SmallTalk, Java (SUN)

PHP (Hypertext Preprocessor) – skriptni jezik

Aplikativna programska podrška - primjeri Programi za obradu teksta: MS Word, WordPerfect, TeX, HTML(Hiper Text Markup Language), ….

Programi za obradu crteža i slika: CorelDraw, Freehand, Corel Photo Paint, Paintbrush, Paint Shop Pro, MS Photo Editor, Photoshop

Page 11: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 11

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Programi za prijelom i uređivanje publikacija: Adobe Illustrator, ...

Programi za posluživanje baza podataka: Clarion, dBase, Ingres, Informix, MS Access, Oracle, Paradox,…..

Tablični kalkulatori: Lotus 123, MS Excell

Antivirus programi: Norton Anti virus, Sophos, ….

Internet alati: Internet explorer, Netscape, MS FrontPage,….

Programi za modeliranje i konstruiranje: AutoCAD, CATIA, IDEAS, PRO/Engineer, Solidworks,…..

Programi za rješavanje matematičkih zadaća: MATCAD, Mathematica, Matlab, ….

Operacijski sustavi Operacijski sustav je skup programa koji omogućuje korištenje računala. Operacijski sustav (OS) djeluje kao okolina unutar koje se izvode postojeći programi i razvijaju novi.

Sve do nedavno gotovo svaki proizvođač računala razvijao je svoj operacijski sustav prilagođen arhitekturi i namjeni cjelokupnog računalnog sustava i njegove složenosti. Bez obzira na raznolikost operacijski sustavi međusobno su vrlo slični.

Osnovni zadaci operacijskog sustava su:

• komunikacija s korisnikom,

• raspoređivanje procesorskog vremena,

• upravljanje U/I funkcijama (kontrola repova),

• raspoređivanje rada ostalih uređaja računala:

• dodjela radne memorije,

• kontrola i pozivanje programa s vanjskih uređaja,

• nadzor i organizacija struktura podataka,

• ispitivanje pogrešaka,

• održavanje aktivnosti sustava.

Obzirom na način rada i broj korisnika operacijske sustave možemo podijeliti na slijedeći način:

• jednokorisničke operacijske sustave,

• višekorisničke operacijske sustave.

Page 12: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 12

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Jednokorisnički operacijski sustavi obrađuju zahtjeve koji dolaze od jednog korisnika. To su jednostavni OS koji nemaju ugrađene mehanizme zaštite korisnika ili sustava od neautoriziranog korištenja.

Višekorisnički OS moraju obrađivati zahtjeve koji dolaze iz različitih izvora i upravljati uređajima računala na temelju tih zahtjeva. Npr. nekoliko korisnika može tražiti pristup nekom uređaju u isto vrijeme. OS mora odrediti redoslijed izvršavanja zahtjeva i omogućiti njihovo izvođenje.

Daljnji razvoj omogućio je kreiranje OS kod kojih više programa može istovremeno raditi, odnosno postavljati zahtjeve OS. To su višezadaćni OS. Iako se kod ovih OS u jednom trenutku izvodi samo jedan program u CP-u (central procesor), paralelno izvođenje više programa omogućeno je zbog različite brzine različitih uređaja, te zbog toga .to se U/I operacije na različitim perifernim uređajima mogu odvijati paralelno.

Pitanje redoslijeda izvršavanja različitih programa, odnosno problem dodjele procesorskog vremena rješava se na dva načina:

na temelju sistemskih prekida, najčešće realiziranih na temelju nekih događaja u tijeku izvođenja programa, npr. U/I zahtjev (event driven OS). Događajem se smatra svaka promjena stanja u izvođenju programa, pri tome nije važno tko ili što je uzrokovalo promjenu. Događaj može uzrokovati zahtjev korisnika, korisnički program ili operacijski sustav,

dodjelom određenog djelića vremena CP svakom programu u sustavu. Svaki program registriran u računalu dobiva određeni dio vremena CP. Ovakvi se OS nazivaju timesharing. OS. OS nadzire kružnu izmjenu programa u izvođenju, uz optimalizaciju korištenje mogućnosti računala.

Kombinacijom navedenih načina

Kod višekorisničkih sustava nužan je mehanizam zaštite korisnika i podataka od neautoriziranog korištenja, kao i zaštite OS od korisnika. Redoslijed izvršavanja programa može se regulirati i dodjelom različitih prioriteta različitim korisnicima, za što je u pravilu zadužen sistem inženjer.

Datoteke Podaci se u računalu pohranjuju u datoteke. Datoteka (file) sadrži skup podataka, zapisan na nekom uređaju za pohranu podataka (perifernoj memoriji - disk, disketa, traka, CD). Sadržaj datoteke može biti program napisan u nekom od programskih jezika (tekstualni zapis), ili program u strojnom jeziku (binarnom kodu), tj. izvršni oblik programa, podaci potrebni za izvođenje programa, podaci potrebni za razne evidencije, tekstovi, crteži itd. Datoteka se dijeli na slogove. Slog je u pravilu najmanja količina informacije kojoj se može pristupiti u jednoj ulazno/izlaznoj operaciji.

Organizacija datoteka (File structure) jedna je od važnijih osobina upravljačkog sustava. Način pristupa sadržaju datoteka prije svega određen je internim mehanizmima

Page 13: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 13

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

upravljačkog sustava, ali i programima kojim se datoteke kreiraju. Obzirom na način zapisa podataka, možemo razlučiti datoteka po:

obliku zapisa:

formatirane - sa sadržajem zapisanim u nekom od standardnih kodova za prikaz alfanumeričkih znakova,

neformatirane - sadržaj je zapisan u binarnom kodu;

načinu pristupa slogovima:

sekvencijalne datoteke - moguće su samo sekvencijalne ulazno/izlazne operacije;

direktne datoteke - slogu se pristupa direktno bez obzira na njegovu poziciju u datoteci pomoću adrese sloga (indeksa);

Page 14: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 14

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

OPERACIJSKI SUSTAVI - MS Windows Na vježbama u učionicama CADLaba radit će se sa slijedećim operacijskim sustavima tvrtke Microsoft.

Windows 2000

Windows 2000 Professional

Windows 2000 Server

Windows 2000 Advanced Server

Windows 2000 Datacenter Server

Windows XP

Professional Edition

Home Eition

Media Center Edition

Pretopstavka je da se studenti snalaze u okolišu MS indows operacijskih sustava. Na vejžbama će se obrađivati samo elementarni pojmovi u mjeri koja omogućuije izvođenje nastave.

Microsoft Windows je grafičko okruženje, koje omogućuje korisniku “istovremeni” rad s više aplikacija, a rješava i probleme segmentiranja memorije koji su se javljali u DOS-u. Grafičko okruženje bitno olakšava komunikaciju korisnika s računalom jer se ona odvija putem simbola čiji izgled sugerira funkciju.

Prijava i prekid rada:

Prije početka rada korisnik mora unijeti dodijeljeno mu korisničko ime (User name) i lozinku (Password) u prikazani prozor. Rad će biti moguć samo ako se unese ispravna kombinacija korisničkog imena i lozinke.

Osnovni pojmovi Nakon unošenja ispravnog korisničkog imena i lozinke, korisniku se prikazuje Windows okruženje koje korisnik može prilagođavati po vlastitom nahođenju.

Page 15: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 15

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Rad unutar Windows okruženja odvija se na Desktop-u (radnoj plohi). Na toj površini nalaze se elementi grafičkog okruženja kao što su Menus (Izbornici), Windows (Prozori) i Icons (Ikone). Svaka aplikacija nakon pokretanja radi unutar prozora, a svaki se prozor može reducirati na ikonu.

Iako postoje razlike između prozora pojedinih aplikacija, svi prozori imaju neke zajedničke elemente.

Title bar linija naslova, mjesto na kojem piše naziv aplikacije i ime datoteke koja se

u tom trenutku obrađuje. Menu bar linija izbornika. Pokazuje dostupne izbornike u aplikaciji. Control menu nalazi se u gornjem lijevom kutu svakog prozora. Naredbe u tom izborniku

omogućuju pomicanje zatvaranje i promjenu veličine aktivnog prozora. Maximize povećavanje prozora na maksimalnu veličinu (cijeli ekran) Minimize smanjivanje prozora na minimalnu veličinu (ikona) Rub prozora omogućuje promjenu veličine aktivnog prozora u raznim smjerovima,

ovisno u kojem se području djeluje.

Page 16: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 16

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Srcroll bar omogućuje jednostavno pregledavanje sadržaja prozora u slučajevima kad

on ne stane u prozor. Budući da je vidljivi dio sadržaja često tek manji dio, izuzetno je bitno omogućiti brzo pomicanje kroz sadržaj. Pritišćući strelice za odgovarajući smjer, ili pomičući pokazivač položaja vrlo je jednostavno doći do željenog mjesta.

Upotreba izbornika

Izbornik sadrži skup operacija koje je moguće izvršiti u programima Windows okruženja. Operacije su grupirane u skupine prema namjeni. Grupiranje operacija provedeno je na slièan naèin u svim aplikacijama èime je bitno olakšano snalaženje u izbornicima. U Windows okruženju koriste se slijedeće konvencije u označavanju opcija u izbornicima.

Konvencija Značenje

Prigušena (ili nevidljiva) opcija Opciju nije moguće koristiti u tom trenutku. Opcija iza koje stoji (...) Nakon izbora otvara se okvir za dijalog, u kojem se dodatno

biraju opcije. Opcija ispred koje stoji (√) Označava aktivnu naredbu ili opciju Opcija iza koje stoji kombinacija tipki Koristeći tu kombinaciju moguće je aktivirati opciju bez

ulaska u izbornik. Opcija iza koje stoji (4) Aktiviranjem opcije otvara se nova razina izbornika s

dodatnim naredbama

Kontrolni izbornik (Control menu)

Nalazi se na svakom prozoru, s tim da sadržaj ovisi o aplikaciji.

Restore Vraćanje prozora na izvornu veličinu

Page 17: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 17

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Move Pomicanje prozora.

Size Promjena veličine prozora.

Minimize Smanjivanje prozora na veličinu ikone

Maximize Povećavanje prozora na maksimalnu veličinu

Close Zatvaranje prozora ili prekid aplikacije

Switch to Otvaranje liste aktivnih aplikacija.

Dialog box

Prva vrsta okvira ima međusobno isključive opcije (radio button), što znači da je uvijek aktivna samo jedna opcija.

Druga mogućnost su kvadratići (check boxes) pomoću kojih se uključuju, odnosno isključuju željene opcije.

Prozori s listom

Page 18: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 18

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Pokretanje aplikacija

Jedan od mogućih načina pokretanja aplikacije je pritisak na Start button, potom na Programs, nakon čega se otvara lista mogućih aplikacija. Istoje moguće napraviti dvostrukim pritiskom na Shortcut ikonu na Desktopu.

Page 19: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 19

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

OPERACIJSKI SUSTAV UNIX

UNIX je višekorisnički, višeprogramski OS. Prva verzija razvijena je 1969 u Bell laboratories 1969. godine. Od tada ovaj se OS (u različitim verzijama i pod raznim nazivima) primjenjuje na velikom broju hardwerskih platformi. Naglo širenje UNIX-a vezano je uz porast popularnosti samostalnih radnih stanica. Osnovni razlozi za popularnost UNIX-a su: Portabilnost - UNIX je u cijelosti realiziran u programskom jeziku C, što omogućuje instalaciju na velikom broju računala. Izvorni kod je poznat i dostupan - proizvođačima procesora je povoljnije preuzeti gotov i poznati OS od razvijanja vlastitog. UNIX zadovoljava sve zahtjeve koji se postavljaju pred bilo koji OS pružajući korisniku mogućnosti koje on mobe zahtijevati. U osnovi UNIX se sastoji od dva dijela:

• jezgre OS - KERNEL, koja omogućuje rad različitih uređaja računala, nadgleda komunikaciju, te dodjelu memorije i redoslijed izvršavanja programa, i

• komunikacijske ljuske ( SHELL ) koja služi kao komandni interpreter, s kojom korisnik interaktivno komunicira.

Pod kontrolom ljuske korisnik koristi postojeće uslužne programe, komunicira s OS i razvija nove aplikacije. Iako UNIX izvorno nije namijenjen krajnjim korisnicima računalka

već programerima upravljačkih sustava, informatička zajednica brzo ga je prihvatila. Razvoj UNIX-a divergirao je u različitim smjerovima, pa se ubrzo pojavio problem kompatibilnosti programskih proizvoda razvijanih pod različitim verzijama OS. Problem relativno složene komunikacije na se radnim stanicama se rješavao razvojem standardnih elemenata korisničkiih sučelja s prozorima, pri kojima se koriste grafički simboli - ikone, za pozivanje programa kojima se izvode standardne funkcije. Ovakva sučelja (danas opće prihvaćena) omogućuje jednostavniji rad i brže uhodavanje korisnika.

Neke inačice operacijskog sustava: ULTRIX (1984.), AIX (IBM 1990.), Solaris – SUN OS - (Sun Microsystems 1991.) , Linux (Linus Torvald 1991.)

Page 20: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 20

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

RAZVOJ PROGRAMSKE PODRŠKE

Faze razvoja programa: Analiza problema

Postavljanje modela

Izrada algoritma

Izrada dijagrama toka

Kodiranje programa

Prevođenje programa

Testiranje programa

Dokumentiranje programa

Eksploatacija i održavanje programa

Ciljevi razvoja programa: Postići visokokvalitetne programe s predvidivim ponašanjem, tj. pouzdane programe.

Mjera pouzdanosti je broj pogrešaka (bugova) ugrađenih u program.

Oblikovati programe koji se lako modificiraju

Razlozi održavanja su : uklanjanje naknadno otkrivenih pogrešaka, usklađivanje s promjenama zahtjeva, usklađivanje s tekućim promjenama operacijskog sistema, ugradnja novih funkcija sistema, modifikacije starih ili generiranje novih izvještaja itd.

Problemi održavanja su: visoka cijena, blokiranje računarskih resursa potrebnih razvoju, programi nisu nikad do kraja testirani, modifikacijama se unose nove pogreške u sistem programa, pogreške se uočavaju tokom eksploatacije programa obično u najnezgodnije vrijeme, dokumentacija o programima, ako je uopće ima, se ne ažurira.

Pojednostavniti programe i proces njihovog nastajanja

Korištenje najnovijih dostignuća kako u pogledu modernih tehnika projektiranja, tako i u izboru adekvatnih programskih jezika.

Postići bolju kontrolu procesa razvoja programa

Korištenje takvih pomagala, po mogućnosti grafičkih koja osiguravaju nedvosmislenu komunikaciju među akterima u razvoju novog sistema.

Programska dokumentacija tokom procesa razvoja:

orijentirana prema naručiocu,

Page 21: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 21

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

orijentirana prema korisniku,

orijentirana prema stručnjaku za programiranje,

pregledna dokumentacija (EPP, globalne informacije i sl.)

Poteškoće u izradi programske dokumentacije: standardi, dokumentacijsko sučelje, održavanje dokumentacije, pouzdanost dokumentacije, provjera dokumentacije.

Ubrzati razvoj sistema

Korištenje CASE alata i generatora programa.

Sniziti cijenu koštanja razvoja sistema

Na cijenu koštanja direktno utječe trajanje izrade kao i broj angažiranih stručnjaka, te se smanjenjem trajanja izrade smanjuje i cijena produkta. Pri tome ne smije stradati pouzdanost, dokumentiranost, pristupačnost za korištenje.

ALGORITMI I PROGRAMI U početku algoritmom se nazivaju samo pravila računanja s brojevima, kasnije i pravila obavljanja ostalih zadataka u matematici

u XX stoljeću, pojavom računala, pojam se proširuje na računarstvo, a zatim i na druga područja

Precizan opis svih pravila i postupaka potrebnih za postizanje željenog rezultata.

Značajke algoritma Precizno opisan način rješenja nekog problema

Jednoznačno određuje što treba napraviti

Moraju biti definirani početni objekti koji pripadaju nekoj klasi objekata na kojima se obavljaju operacije

Kao ishod algoritma pojavi se završni objekt(i) ili rezultat(i).

Konačni broj koraka; svaki korak opisan instrukcijom

Obavljanje je algoritamski proces

Uporabljiv, ako se dobije rezultat u konačnom vremenu.

Program - Opis algoritma koji u nekom programskom jeziku jednoznačno određuje što računalo treba napraviti.

Programiranje - naučiti sintaksu nekog proceduralnog jezika i steći osnovna intuitivna znanja glede algoritmizacije problema opisanog riječima.

Algoritmi + strukture podataka = PROGRAMI (Wirth)

Page 22: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 22

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Temeljni problemi programiranja: • kako osmisliti algoritme • kako strukturirati podatke • kako formulirati algoritme • kako verificirati korektnost algoritama • kako analizirati algoritme • kako provjeriti (testirati) program

Postupci izrade algoritama nisu jednoznačni te zahtijevaju i kreativnost. Ne postoje čvrsta pravila za definiranje algoritama. Od prvih programskih jezika nastoje se razviti metode i alati za formaliziranje algoritama. Napori urodili različitim metodologijama prikaza problema i modela koji se koriste pri razvoju složenih programskih sustava.

Razvoj i prikaz algoritma preduvjet je izrade programa. Algoritmi se mogu prikazati na različite načine:

• opisno, rečenicama, • grafički, dijagramom toka, • u nekom jeziku koji je blizak čovjeku (pseudokod), ili • nekim strogo formaliziranim programskim jezikom.

Međutim, program koji je zaista u računalu i po kojemu se izvodi neki konkretan postupak, uvijek je samo u binarnom (strojnom) obliku .

Stoga postoji potreba, da se na određeni uobičajeni način prikaže program tako da ima logičku ispravnost, ali i da je blizak i razumljiv čovjeku. To je pseudokod koji nije ovisan niti o računalu niti o programskom jeziku, a značajan je stoga jer program napisan pseudokodom predstavlja zapravo model programa i najvažniji je rezultat rada u programskom inženjerstvu.

Page 23: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 23

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Simboli dijagrama toka

Operacija (općenito). Prikazuje se jedna operacija ili više njih, ako je rezultat operacija promjene vrijednosti, oblika ili mjesta nekih informacija.

Aritmetička odluka (grananje). Instrukcija aritmetičke odluke izračunava aritmetički izraz na osnovu kojega se donosi odluka. Moguće su tri akcije ovisno o tome da li je vrijednost izraza manja, veća ili jednaka nuli

Logička odluka (grananje). Prikazuje se operacija koja ispituje istinitost nekog izraza, nakon čega program odabire jedan put.

Ulaz podataka

Izlaz podataka

Ulaz/Izlaz podataka

Crta toka odvijanja operacija programa prikazuje veze među simbolima u dijagramu. Radi jasnoće mogu se na crtama toka postaviti strelice usmjerene na simbol koje se kasnije izvodi. Prioritetni su smjerovi: a) odozgo prema dolje, b) slijeva udesno

Granično mjesto: početak (start), zaustavljanje (stop), prekid i slično.

Povezivanje raznih dijelova u dijagramu toka. Izlaz iz nekog dijela dijagrama toka i ulaz u drugi dio, koji su međusobno povezani uz pomoć tog simbola, moraju imati istu oznaku. Više se izlaza može povezati s jednim jedinim ulazom

Page 24: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 24

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Primjer upotrebe simbola dijagrama toka općeg programa obrade podataka:

Osnovni elementi programa

Programi se mogu promatrati i kao niz operacija koje se izvode na objektima - podacima. Tipovi objekata koje podržava pojedini programski jezici međusobno se razlikuju. Osnovni tipovi zajednički su većini programskih jezika koji se najčešće koriste, a razlike u definiranju (deklaracijama) istih tipova podataka i varijabli u različitim programskim jezicima nisu velike.

Temeljna svrha programa je obrada podataka pomoću računala, tako da je ishodišno pitanje opis i strukturiranje podataka.

Page 25: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 25

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Vanjski podaci, koji su definirani zadatkom, nisu jedini, jer niz podataka nastaje za vrijeme obrade, postoje u memoriji i kasnije se nigdje ne vide. Zato možemo postaviti tri osnovne skupine podataka odnosno varijabli koje će postojati:

• ulazni podaci,

• izlazni podaci,

• unutarnji podaci programa.

Svaki podatak koji se obrađuje u nekom programu treab definirati i povezati tj. strukturirati u povezane cjeline (strukture podataka) kako bi jednostavno radili s njima.

Prema svojstvima pojedinih atributa koji opisuju entitete, podaci mogu biti tipa: cjelobrojni, realni broj, logička varijabla, znakovno polje ....

Sa stajališta struktura, podatke možemo povezati u: nizove (koji predstavljaju matematičke vektore i matrice), skupove, slogove, datoteke ....

Računalu je potrebno dati potpunu definiciju podataka kako bi se kontrolirale operacije nad njima: aritmetičke operacije dopuštene su nad brojevima, skupovne operacije nad elementima skupa itd.

Tip podataka (objekata) određuje i dozvoljene vrijednosti koje pojedini objekt može poprimiti, kao i skup dozvoljenih operacija. To ujedno ima i utjecaja na način pohrane podataka.

Varijable u programskim jezicima određene su imenom i različitim atributima koje ih određuju.

Treba jasno razlikovati:

− ime varijable,

− adresu varijable ,

− podatak koji se pohranjuje.

Mogućnosti deklariranja imena:

− s ograničenjima,

− bez ograničenja.

Page 26: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 26

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Vrste podataka - Deklaracije

Deklariranje varijabli i vrijeme kada se povezuju različiti atributi podataka važni su parametri snage, fleksibilnosti i efikasnosti nekog programskog jezika..

Općenito što je vrijeme povezivanja ranije (npr. za vrijeme prevođenja) moguće je generirati efikasniji kod. Nasuprot tome ukoliko je povezivanje kasnije fleksibilnost je veća.

Npr. izraz : y =y + 1

Naizgled trivijalno, ali treba povezati:

1. ime varijable i deklaraciju varijable,

2. deklaraciju i adresu,

3. adresu i vrijednost.

Konstante – primjeri dfeklariranja konstanti Npr. const pi=4.14159265; (pas)

parni = 2;

slovo = 'z';

ili ime : integer :=20; (ada)

ime : constant integer :=20;

Određivanje tipa podatka /varijable Tip je najvažniji atribut objekta..

Skalari su jednostavni podaci. PJ omogućuju i strukture podataka, npr. polja.

numerički:

cjelobrojni, realni (FP), kompleksni

logički ( Boolean)

znakovni (character)

Ugrađeni tipovi u nekim PJ

Page 27: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 27

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

F77 Pascal C Ada

INTEGER integer int integer

REAL real float float

LOGICAL Boolean Boolean CHARACTER char char character

DOUBLE PRECISION double long_float

Ključne značajke jezika: deklarcije obavezne ili neobavezne, ograničenog dosega unutar programske jedinice (procedure, modula, bloka) ili ne?

Pored klasičnih tipova podataka u novijim jezicima koriste se kazala (Pointers).

Kazala kao vrijednost imaju adresu, tj. referencu na neki drugi objekt.

Posebna vrijednost nil (null).

Npr. u PJ c:

int ci, *cipoint, zbroj;

ci = 34;

cipoint = &ci;

zbroj = ci +5;

zbroj = cipoint + 5

Page 28: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 28

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

VRSTE (TIPOVI) PODATAKA PAS BAS FOR COB C/C++

LOGICAL + ~ + - +

INTEGER + + + + +

CHARACTER + + + + +

ENUMERATED + - - - +

REAL + + + + +

SKALARNI

COMPLEX - - + - -

CHARACTER STRING + + + + ~

DIMENSION

ARRAY

+ + + + +

SET + - - - -

STATIČKI

STRUKTURIRANI

RECORD + - - + +

CHARACTER STRING - + - - -

SET - - - - -

ARRAY - - - - -

QUEUE - - - - -

SEQUENTIAL FILE + ~ + + +

RELATIVE FILE - ~ + + +

PROMJENJIVE DULJINE

INDEXED FILE - - - + -

LIST - - - - -

TREE - - - - -

DINAMIČKI

VARIJABILNO STRUKTURIRANI

INTER + - - - +

Izrazi i naredbe Izrazi se sastoje od jednog ili više opreanada, čije se vrijednosti kombiniraju s operatorima.

PJ se razlikuju po vrstama operatora i izraza.

Npr. +, -, *, **, div (A60, Pas)

bitno: način izvođenja izraza, odnosno hijerarhija operatora.

Vrste izraza:

Logički (Boolean)

Page 29: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 29

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Numerički

Naredbe za pridruživanje

ILS = IDS gdje je ILS izraz lijeve strane i IDS izraz desne strane

i = i + izraz ; ovo je klasična naredba pridruživanja vrijednosti izraza (nakon izračunavanja) s desne strane znaka "=" adresi s lijeve strane "="

i+=izraz ; isti izraz kao i gore (C)

Posljednji primjer pokazuje skraćenje pisanja, ali i probleme s razumijevanjem napisanog npr:

Primjer Vrijednosti adresa (a,b)

nakon izvođenja naredbi

1. naredba 1

naredba 2

a=1

b=++a

(a=b=2)

2. naredba 1

naredba 2

a=1

b=a++

(b=1,a=2)

Pojavljuje se i mogućnost višestrukog pridruživanja npr:

A, B, C = IDS (PL1)

a:=b:=c:= IDS (algol60)

ili složene naredbe:

begin N1;N2;...end (Pas)

Page 30: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 30

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

A < B

a = a + 1

D AN EPonavljanje i upravljanje - kontrola izvođenja naredbi

Usporedbe - logički izrazi

− prva (povijesna) varijanta s numeričkim izrazom čija se vrijednost uspoređuje s 0:

IF (n.izraz) n1,n2,n3

− logički izraz mogući rezultat: TRUE ili FALSE.

IF (l.izraz) naredba

− današnji oblici logičkih izraza:

− if uvjet then naredba

A = B

n a r e d b a 1

D AN E

n a r e d b a 2

− if uvjet then naredba1 else naredba2

− if uvjet then if uvjet then naredba else naredba

Page 31: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 31

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

odnosno u realizaciji npr: IF (e1) THEN prvi blok naredbi ELSE IF(e2)THEN drugi blok naredbi END IF

IF (e1) THEN prvi blok naredbi ELSE IF (e2) THEN drugi blok naredbi ELSE IF (e3)THEN treci blok naredbi ELSE cetvrti blok naredbi END IF

Page 32: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 32

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

case naredba - za selekciju grupe naredbi između nekoliko mogućih grupa:

case I of

CO1:N1;

CO2:N2;

CO3:N3;

.

COn:Nn

end

gje je I izraz, CO1,CO2,...COn oznake case slučajeva, a N1... Nn naredbe

Petlje Petlje omogućuju ponavljanje grupe naredbi unutar programa. Korištenje brzine rada računala manifestira se upravo u petljama. Ponavljanje izvođenja prekida se

− nakon što je petlja izvedena onoliko puta koliko je to bilo određeno, ili

− ako je u toku izvođenja petlje zadovoljen uvjet koji je prethodno postavljen

najstariji oblik vrlo restriktivne fortranske DO petlje

DO ozn INDEX= POCVRIJEDNOST, ZAVVRIJEDNOST, KORAK

N1

...

ozn Nn

petlja se ponavlja sve dok INDEX ne poprimi ZAVršnuVRIJEDNOST. Vrijednosti se testiraju na kraju petlje.

u suvremenim jezicima najčešća je while petlja

while uvjet do naredbe;

uvjet se provjerava na početku izvršavanja petlje, za razliku od naredbe repeat gdje se testiranje obavlja na kraju petlje, pa se ovakva petlja, kao i DO petlja izvršava najmanje jednom:

Page 33: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 33

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

repeat naredbe until uvjet;

općenitiji oblik koji uključuje while i repeat kao posebne slučajeve je loop petlja koja može imati više izlaza:

loop

naredbe

exit when uvjet

....

end loop

for petlja se razlikuje od loop petlje jer se ona izvršava (slično kao i DO petlja) određeni broj puta, s testiranjem vrijednosti indeksa na početku petlje:

for index := poc_vrijednost to zavrsna_vrijednost do naredbe

U Pascalu for petlja ima implicitni inkrement ±1.

Page 34: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 34

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Potprogrami i funkcije

Važno svojstvo programskog jezika je mogućnost razbijanja problema na manje, jednostavnije zadatke i njihovo pojedinačno rješavanje unutar programskih cijelina - potprograma. Na taj način olakšava se razvoj, testiranje, održavanje i praćenje programa.

U principima implementacije potprograma među programskim jezicima male su razlike. Razlike se očituju u:

- načinu prevođenja (mogućnost nezavisnog prevođenje i testiranja potprograma kao što to omogućuje Fortran, za razliku od npr. Pascala gdje se potprogrami deklariraju unutar glavnog programa);

- načinu prijenosa argumenata (povrijednosti, ili po adresi);

- po vrsti (procedure-potprogrami čiji poziv je zasebna naredba unutar neke programske cijeline, ili funkcije koje su dio nekog izraza i njihovo referenciranje vraća vrijednost).

Osnovna je funkcija potprograma "sakrivanje" nevažnih detalja programskog riješenja. KoriiŠtenje potprograma omogućuje pregledniji uvid u tok programa, tako da je pažnju lakše posvetiti problemu "Što radi" za razliku od "kako to radi".

Page 35: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 35

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

PROGRAMSKI JEZICI - PJ

Osnovna namjena programskog jezika: omogućiti razvoj kvalitetnih programskih proizvoda.

Konstrukcija PJ treba omogućiti jednostavno kreiranje, pisanje, testiranje, mijenjanje i dokumentiranje programa. Da bi bolje razumjeli konstrukciju jezika razmotriti ćemo neke karakteristike jezika:

− ekspresivnost,

− jednostavnost,

− Implementacija, korektnost, standardi),

− detekcija grešaka i ispravljanje.

Način izražavanja problema, odnosno ekspresivnost PJ određuje da li će se pri rješavanju problema korisnik-programer služiti terminima koji su bliski problemskom području ili terminima računala na kojem se problem rješava. U prvom se slučaju korisnik lakše koncentrira na problem koji obrađuje. Takav jezik treba podržati konvencionalnu notaciju za opis algoritma i podataka, kao i ideje strukturalnog programiranja. Ostali aspekti ekspresivnosti jezika su i: vrste operatora i opernada koje PJ dozvoljava, te jasnoća programskog koda, odnosno čitkost.

Jednostavnost podrazumijeva da PJ omogućuje koncizno i jasno izražavanje problema.

Lakoća implementacije jezika, kao i način na koji će se iz PJ generirati strojni kod od velikog su značaja za uspjeh PJ. Veliki PJ zahtijevaju velike prevoditelje (compilers), koji mogu postavljati restrikcije čak i na vrste primjenljivih računala. Implementacija utječe i na korektnost PJ u smislu zadovoljavanja standardnih specifikacija PJ. Naime dokazivanje korektnosti nekog programskog prevoditelja opsežan je posao koji pretpostavlja postojanje preciznih definicija o mogućim konstrukcijama PJ. Teško je osigurati potpune semantičke definicije, korisne za širu populaciju programera. Česti su neformalni opisi, koji se mogu različito tumačiti. Standardi koje mora zadovoljavati neki PJ često kasne za implementacijom. Rezultat - problemi s portabilnošću programa. Iznimka: Ada. Postoji standardni set test programa. Svaki program koji pretendira da postane Ada prevoditelj vrednuje se tim testovima

Testiranje programa je jedini način dokazivanja njegove valjanosti. Dobra konstrukcija PJ omogućuje ranije otkrivanje grešaka, ili smanjivanje njihovog broja. Najbolje je ako se greške otkriju u toku prevođenja. Što se kasnije otkriju pogreške, to su veći troškovi njihovog uklanjanja, a nerijetko se narušava i struktura programskog koda. (Npr.: deklaracije)

Page 36: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 36

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Leksički elementi Leksički elementi, česti naziv za skup konvencija koje određuju način pisanja programa u pojednimom PJ.

Znakovni skup (Character set): dvije alternative:

svi znakovi koji se mogu koristiti,

samo oni koji su neophodni, a nalaze se na najčešćim U/I uređajima. (Npr. stari FORTRAN sa 64 znaka , bušilice ).

Ključne i rezervirane riječi (Identifers and reserved words) Ključne riječi - riječi koje u određenim konstrukcijama imaju definicijom PJ određeno značenje. Mgu se koristiti i izvan takvih konstrukcija (npr. za označavanje varijabli: FORTRAN - GO TO , DO ...)

Rezervirane riječi - sve češće u modernim jezicima, (ali uvedene već s COBOLOM) upotrebljavaju se samo u skladu s definicijama. Ponekad se pišu i drugim tipom slova (npr. masno ili nagnuto). Problemi s perifernim uređajima.

Komentari C FORTRAN comment ...... Algol ; (* ............Pascal *) š ...........ć /* c i PL/I */ " Ada

Praznine i kraj linije - instrukcije jezici s čvstim formatom instrukcije ( raspored kolona ...) EOL - FORTRAN . - COBOL

jezici sa slobodnim formatom instrukcije ( često ; terminira instrukciju)

Sintaksa i semantika sintaksa - forma;

semantika - značenje.

Page 37: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 37

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Sintaksa se jednoznačno može definirati različitim mehanizmima npr: BNF ili sin. dijagramima.

Semantika: najčešće je određena opisno, što ne osigurava jednoznačnost. Trenutno se koriste tri komplementarna pristupa definiranju semantike: operacijski, denotacijski i aksiomatski.

Razvoj i karakteristike nekih PJ

Prvi jezici - kodirane instrukcije, numerički potom simbolički.

Page 38: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 38

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Fortran '56 - '58 Backus, jedan od autora. Osnovna ideja: PJ za znanstvene aplikacije, dobar prevoditelj, efikasan strojni kod.

značajke: • komentari • naredbe pridruživanja sa složenim izrazima s desne strane = • jednostavnost definiranja petlje • simboličko pozivanje potprograma i funkcija • formatirani I/O • HW neovisnost (standardizacija kaasnije)

Primjer:

C PROGRAM ZA IZRACUNAVANJE SREDNJE VRIJEDNOSTI C NIZA I BROJA CLANOVA NIZA S VRIJEDNOSCU VECOM OD C SREDNJE VRIJEDNOSTI C DIMENSION A(99) INTEGER BROJ READ(5,5) N 5 FORMAT(I2) READ(5,10) (A(I),I=1,N) 10 FORMAT(6F10.5) SUMA=0.0 DO 15 I=1,N 15 SUMA=SUMA + A(I) SRED=SUMA/FLOAT(N) BROJ=0 DO 20 I =1,N IF(A(I).LE.SRED)GO TO 20 BROJ = BROJ + 1 20 CONTINUE WRITE(6,25)SRED,BROJ 25 FORMAT(' SREDNJA VRIJEDNOST=',F6.2,/,14X'BROJ=',I2) STOP END

Uočiti: deklaracije, polje, formatizirani U/I.

Page 39: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 39

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Algol Međudržavni komitet osnovan s ciljem da definira jezik opće namjene (IAL). Ciljevi: standardna matem. notacija, mogućnost opisivanja procesa u publikacijama, mehaničko prevođenje u strojni kod. Algol '58 prvi proizvod, zatim Algol '60 (izvještaj Naur).

Neke značajke: • BNF notacija, uvedena za definiranje sintakse PJ; • strukture, varijable valjane samo unutar bloka u kojem su deklarirane; • varijabilna veličina polja za vrijeme prevođenja; • više naredbi za kontrolu odvijanja programa (for npr.) • rekurzivne procedure.

Kasniji slijednici Algola (npr. Algol W) uvode nove tipove varijabli (slogove, bits, ...), case naredbu, pojednostavljuje se konstrukcija for i while naredbe, jednostavne string funkcije. Algol 68 (IFIP) ideja univerzalnog PJ u praksi nije zauzela mjesto koje se očekivalo

Veliki utjecaj na teoriju PJ, ali mnogo manji u praksi. Fortran je došao ranije, programeri inertni, novi jezik veći-teži za učenje, teža inplementacija-sporiji strojni kod. Primjer programa:

begin comment ovo je ALGOL 60 verzija prije prikazanog

programa za odredjivanje srednje.....; integer n; read(n); begin real array aŠ1:nĆ; integer i, broj; real suma, sred; for i:=1 step 1 until n do read (aŠiĆ); suma:=0.0; for i:=1 step 1 until n do suma:=suma + aŠiĆ; sred:=suma/n; broj:=0; for i:=1 step 1 until n do if aŠiĆ > sred then broj:=broj+1; ( end

write "SRVR=",sred,"BROJ=",broj);

end

Uočiti: nema deklaracija implicite, polje, kontrolu programa.

Page 40: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 40

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

COBOL je treći veliki jezik razvijen kasnih '50. Namijenjen isključivo za poslovne aplikacaijei manipulacije s velikim količinama podataka. Razvoj jezika čvrsto je kontrolirao CODASYL, što je doprinjelo njegovoj standardizaciji. Za korsnike poslovnih aplikacija standard jezika je od velike važnosti. Kasnije ga je IBM pokušao nadomjestiti PJ RPG (Report Program Generator), koji međuitim nije imao takav uspjeh.

Page 41: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 41

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

PL/I Iz dosadašnjih prikaza očita je podjela jezika po područjima primjene. Kako su problemi programiranja zajednički čini se prihvatljivom ideja razvoja PJ opće namjene. Jedan od takvih pokušaja je i PL/I. Razvijan s tendencijom objedinjavanja najboljih osobina tadašnjih jezika (npr. iz Fortrana: nezavisno prevođenje pp, formatirani I/O, transfer parametara, common; iz Algola: blokovske strukture; iz Cobola: heterogene strukture podataka, I/O slogova,...). PL/I se trebao lako učiti, s mogučnošću kasnijih proširivanja, male ovisnosti o HW i pri tome omogućiti programerima potpunu kontrolu stanja računala, odnosno potpuni pristup svim funkcijama OS. Ovakav pristup nužno je zahtjevao veliki PJ. Kako bi zadovoljili zahtjev laganog učenja uveden je novi pojam koji je zanačajno utjecao na razvoj kasnijih jezika i aplikacija - DEFAULT. Naime autori su uvidjeli da u jeziku postoji veliki broj pojmova, specifikacija, opcija i varijabli kojima je trebalo pridružiti određene vrijednosti. Kako za korištenje jezika nije bilo nužno da svi programeri - korisnici jezika znaju sve mogućnosti jezika, svakoj je specifikaciji, opciji, varijabli itd. postavljena je određena vrijednost. Korisnik je mogao te vrijednosti (default values) mijenjati, ali ako je propustio to uraditi za neki pojam, podrazumijevala bi se predodređena vrijednost pojma.

Primjer programa:

SREDNJA : PROCEDURE OPTIONS (MAIN); /* PL/I verzija programa za izracun. srednje vrijednosti niza i broja clanova niza s vrijednoscu ....*/ GET LIST(N) IF N > 0 THEN BEGIN; DECLARE SRED, A(N) DECIMAL FLOAT, SUM DEC FLOAT INITIAL(0), BROJ FIXED

INITIAL(0); GET LIST (A); DO I = 1 TO N; SUM = SUM +A(I); END; SRED = SUM/N; DO I = 1 TO N; IF (A) > SRED THEN BROJ = BROJ +1; END; PUT LIST (' SRED=',SRED,' BROJ VECIH OD

SRED',BROJ); END SREDNJA;

Uočiti: eksplicitne i implicitne deklaracija s inicijalizacijom varijabli, manipulaciju s poljem (get list).

Page 42: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 42

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Basic Razvojem tehnologije promijenio se načIn rada i korištenja računala. Interaktivni terminali omogučili su razvoj interaktivnih programskih sustava. Interpreteri su dobili potpuno novi značaj. Basic, razvijen s ciljem da omogući jednostavno korištenje računala početnicima, kao prvi PJ s kojega se kasnije prelazi na "ozbiljnije" jezike. Daleko je nadmašio planove autora. Razvojem mikroprocesora počeo se široko primjenjivati, te je u sebi sadržavao i mali OS. Današnje verzije Basica potpuni su PJ u svakom pogledu.

10 REM program u staroj verziji basica 20 DIM a(99) 30 INPUT n 40 FOR i = 1 TO n 50 INPUT a(i) 60 LET z = z + a(i) 70 NEXT i 80 LET s = z / n 90 FOR i = 1 TO n 100 IF a(i) < s THEN 130 110 LET k = k + 1 130 NEXT i 140 PRINT "srednja vrijednost s=", s 150 PRINT "broj vrijednosti vecih od s:", k 160 STOP

170 END

Uočiti: nema deklaracija, varijable inicijalizirane s nulom, u prvim verzijama Basica ime varijable je bilo ograničeno na jedno slovo.

Page 43: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 43

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

Programski jezik C C je programski jezik novijeg vremena. Razvijen iz PJ BCPL (jezik striktno namijenjen za razvoj i OS), Vrlo kompaktan, također je PJ koji je nadmašio očekivanja autora. Razvijan s ciljem da bude efikasan i HW nezavisan alat za implementaciju OS ( UNIX se razvijao paralelno s PJ C i implementiran je u C-u), postao je alat velikog broja programera koji se ne bave poslovima održavanja ili razvoja OS-a. Široko područje primjene omogućuju elementi visokih simboličkih jezika (strukturne kontrolne naredbe, rekurzija, slogovi, dinamičke strukture podataka), kao i mogućnost operacija prije C-a karakterističnim za assemblere i macro jezike (npr. operacije s adresama, pristup svakom bitu). Pošto su ispunjeni osnovni ciljevi razvoja C se proširio na praktički sve platforme, prvenstveno zbog relativno jednostavne implementacije. Ipak, jasnoća koda nije jača strana programa pisanih u C-u.

Primjer

main() /* C verzija programa za odredjivanje srednje vrijednosti i broja elemenata vecih od sr. vr...*/ { float a[100], sred, suma; polje a ima 100 elemenata – a[0] ... a[99] */ /* int n,i,broj; scanf("%d",&n); for (i=0;i<n;i++)scanf("%f",&a[i]); suma=0.0 for (i=0;i<n;i++) suma+=a[i]; sred=suma/n; broj=0; for (i=0;i<n;i++) { if(a[i]>sred broj++; } printf("Srednja vrijednost sred=%f\n",sred); printf("Brojeva vecih od srednje vr.:%d\",broj); }

Uočiti: strukturu programa, kontrolu for petlje, načine pribrajanja.

Page 44: OSNOVE RAČUNARSTVA

Katedra za osnove konstruiranja

TVZ SO Osnove računarstva bilješke predavanja ak god. 2004/05 44

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I B R O D O G R A D N J E

SADRŽAJ UVOD ..................................................................................................................................................... 2

Digitalno računalo............................................................................................................................... 2 Virtualna arhitektura računala............................................................................................................. 2

DIJELOVI RAČUNALA - NAČIN RADA............................................................................................ 6 Prikaz načina rada jednostavnog procesora ........................................................................................ 7

VRSTE RAČUNALA ............................................................................................................................. 9 PROGRAMSKA PODRŠKA................................................................................................................ 10

Programski prevodioci ...................................................................................................................... 10 Aplikativna programska podrška - primjeri .......................................................................................... 10

Operacijski sustavi ............................................................................................................................ 11 Datoteke ............................................................................................................................................ 12

OPERACIJSKI SUSTAVI - MS Windows........................................................................................... 14 Osnovni pojmovi............................................................................................................................... 14

Operacijski sustav UNIX....................................................................................................................... 19 RAZVOJ PROGRAMSKE PODRŠKE ................................................................................................ 20

Faze razvoja programa:..................................................................................................................... 20 Ciljevi razvoja programa:.................................................................................................................. 20

ALGORITMI I PROGRAMI ................................................................................................................ 21 Značajke algoritma............................................................................................................................ 21 SIMBOLI DIJAGRAMA TOKA..................................................................................................... 23

Osnovni elementi programa .................................................................................................................. 24 Vrste podataka - Deklaracije............................................................................................................. 26 Konstante – primjeri dfeklariranja konstanti..................................................................................... 26 Određivanje tipa podatka /varijable .................................................................................................. 26 Izrazi i naredbe.................................................................................................................................. 28 Naredbe za pridruživanje .................................................................................................................. 29 Ponavljanje i upravljanje - kontrola izvođenja naredbi..................................................................... 30 case naredba - za selekciju grupe naredbi između nekoliko mogućih grupa: ................................... 32 Petlje ................................................................................................................................................. 32 Potprogrami i funkcije ...................................................................................................................... 34

PROGRAMSKI JEZICI - PJ................................................................................................................. 35 Leksički elementi .............................................................................................................................. 36 Znakovni skup (Character set): ......................................................................................................... 36 Ključne i rezervirane riječi (Identifers and reserved words)............................................................. 36 Komentari ......................................................................................................................................... 36 Praznine i kraj linije - instrukcije ...................................................................................................... 36 Sintaksa i semantika.......................................................................................................................... 36 Razvoj i karakteristike nekih PJ........................................................................................................ 37 Fortran............................................................................................................................................... 38

Algol...................................................................................................................................................... 39 COBOL ................................................................................................................................................. 40

PL/I ................................................................................................................................................... 41 Basic.................................................................................................................................................. 42 Programski jezik C............................................................................................................................ 43