69 - PR 2012_Programski Jezici

Embed Size (px)

DESCRIPTION

programski jezici

Citation preview

  • *Programski jeziciPregled i osnovne karakteristike

  • *AlgoritamAlgoritam je niz nedvosmislenih koraka koji se mogu izvriti i koji definiu proces koji se moe zavriti neformalna definicjaNe postoji formalna definicijaerova teza neformalna definicija poklapa se sa formalnom

  • *Primjeri algoritamaNai zapreminu valjkaAko je R poluprenik osnove i H visina, tada je zapremina valjka jednakaV=R*R*H*PI, gdje je PI=3.14 Ludolfov brojNa stolu je N listova papira, na svakom listu po jedan broj. Nai najmanji broj.U lijevu ruku uzmimo jedan list (oznaimo ga sa L), a desnom rukom uzimamo redom listove sa stola (oznaimo ih sa D) i uporeujemo L i D. Ako je D
  • *Primjeri algoritama IIAko je u banku uloeno x eura sa godinjom kamatom od y procenata, odrediti niz iji je i-ti element iznos na raunu na kraju i-te godine, i=1,...,10. Prvi element niza a[1] je x+x*y/100Ponavljaj devet puta radnju, redom za i=1,2,...,9: a[i+1] = a[i]+a[i]*y/100Drugo rjeenje: ponavljaj deset puta, redom za i=1,2,...,10: a[i] = x(1+y/100)iNai najmanji element niza sa N elemenataNeka je M najmanji element i neka je jednak prvom elementu niza;Neka i oznaava tekui element niza, i=2,...,n; ako je i-ti element niza manji od M, tada M dobija vrijednost i-tog elementa; ako i-ti element niza nije manji od M, prei na sledei elementPoslije uporeivanja sa svim elementima, M je najmanji element niza

  • *Primjer: procedura swap koja zamjenjuje dvije uzastopne vrijednosti v[k] i v[k+1] u nizu vAlgoritamska ema ili pseudo kod

    t v[k]v[k] v[k+1] v[k+1] t

  • *Pseudo kod procedure Swap/* Zadatak: Zameniti vrijednosti ulaznih argumenata procedure. */PROCEDURA Swap(UI Arg1 Def_Tip,UI Arg2 Def_Tip) Argp Def_Tip// Pomona promenljiva za zamenuPOETAK PROCEDURE SwapArgp Arg1Arg1 Arg2Arg2 ArgpKRAJ PROCEDURE Swap

  • *ta se deava?

  • *Logika ema raunara

  • *

  • *

  • *

  • *

  • *

  • *

  • *Zadaci kontrolne jediniceMogunost dohvatanja podataka iz memorijeLogika za nizanje (reanje) instrukcija Logika za generisanje signala koji kontroliu protok informacija izmeu razliitih komponenti datapath-aLogika za kontrolu koje operacije mogu izvravati funcionalne jedinice datapath-a

  • *Zadaci datapath-aPosjeduje funcionalne jedinice (na primjer sabira) i memorijske lokacije (registre);Veze izmeu komponenti tako da se mogu odraditi pojedine funkcijeMogunost uitavanja podataka iz memorije i smjetanja podataka u memoriju

  • *

  • *

  • *

  • *

  • *IstorijatMainski jezik Primjer: sabiranje dvije vrijednosti koje su smjetene u memoriji(1) uitaj prvu vrijednost iz memorije u registar; (2) uitaj drugu vrijednost iz memorije u drugi registar; (3) aktiviraj kolo za sabiranje tako da ulazi budu dati registri, a izlaz neki trei registar. (4) Smjesti rezultat u neku memorijsku lokaciju. (5) Stop.

  • *Primjer mainskog kodabinarni i heksadecimalni zapis datog algoritma:0001010101101100 156C0001110011001110 166D0101000001010110 50560011000001101111 306E1100000000000000 C000

  • *Asemblerski jezikDeskriptivna imena za memorijske lokacije, registre i kodove operacija - mnemoniciPrimjer: LD Load, ST Store, HLT -HaltLD R5, PriceLD R6, TaxADDI R0, R5 R6ST R0, TotalHLT

  • *AsemblerProgram koji prevodi programe napisane u mnemonikoj formi u mainski jezik je asemblerJezici druge generacijeMane: konstrukcije su i dalje na niskom nivou, razvoj programa se mora zasnivati na sitnim koracima mainskog jezika, mainska zavisnost

  • *Trea generacija Elementarne konstrukcije (primitivi) od kojih treba izgraditi program nisu obavezno i konstrukcije pomou kojih se moe dizajnirati programKonstrukcije su vieg nivoa i nisu mainski zavisne

  • *Konstruisanje programskog jezika izbor konstrukcija od kojih se moe izgraditi program. Svaka takva konstrukcija je dizajnirana tako da se moe izraziti kao niz konstrukcija nieg nivoa (npr. mainskog jezika)assign Total the value Price + Tax ne zavisi od maineassign Promjenljiva the value Izraz

  • *Programski prevodioci: prevoenje programa iz konstrukcija vieg nivoa u programe na mainskom jezikuKompajleri (Grace Hopper)Interpreteri instrukcije se izvravaju istovremeno sa prevoenjem

  • *Paradigme programiranja evolucija

  • *Paradigme programiranjaImpertivna (proceduralna) - niz instrukcija koje obrauju podatke tj. program je implementacija algoritma koji rjeava problemPrimjeri jezika: Pascal, Cobol, C, Fortran, Algol, APL, itd.

  • *Opi oblik imperativnog programa

  • *Deklarativno programiranjePrimjena generalnog algoritma za rjeavanje problema; prevoenje problema u formu koja je dostupna algoritmu; osnovni nedostatak: razvoj opteg algoritma; veina jezika su usko specijalizovaniPrimjer jezika: Prolog, Goedel

  • *Funkcionalno programiranjeProgram se sastoji od funkcija, koje su izgraene od elementarnih funkcijaPrimjer: LISP - aritmetika sredina (Divide (Sum Numbers) (Count Numbers))Najmanji element liste: (First (Sort List))

  • *Funkcionalno programiranje

  • *Funkcionalna paradigma modularan pristup projektovanjuPrirodan pristup izgradnji programa - od ve postojeih cjelinaPrimjeri jezika: LISP, Haskell, Scheme, MLesto se koristi za matematike sisteme, npr. dokazivae teorema i logike sisteme

  • *Objektno-orijentisano programiranjeJednice programa su aktivni objektiPosljedica modularnog pristupa svaki objekat je definisan u posebnoj zaokruenoj jedinici i moe se kasnije koristitiObjekti komuniciraju predajom poruka message passingTrenutno dominantna paradigma programiranja i uopte razvoja softvera

  • *Primjer: lista je pasivan objekat u proceduralnim jezicima, jer se kontrolie pomou programa; U OO paradigmi, lista je objekat koji se satoji od same liste i kolekcije procedura za manipulaciju listom (dodavanje elementa, brisanje, sortiranje, detektovanje da li je lista prazna); program koji pristupa listi ne mora da sadri navedene procedurePrimjer: C++, SmallTalk, Eiffel, Java

    ************************************