kafli 6 - notendur.hi.ishh/kennsla/tos/slides06_isl.pdf · vinnsla: framkvæmd margra verka á sama...
TRANSCRIPT
© 2007 Pearson Addison-Wesley. All rights reserved 6-2
Kafli 6: Forritunarmál
• 6.1 Sögulegt yfirlit• 6.2 Hefðbunding forritunarhugtök• 6.3 Stefjaeiningar (procedural units)• 6.4 Útfærsla forritunarmála• 6.5 Hlutbundin (object oriented) forritun• 6.6 Forritun samhliða verka• 6.7 Skilgreiningaforritun (declarative prog.)
© 2007 Pearson Addison-Wesley. All rights reserved 6-4
Önnur kynslóð: Smalamál (Assembly language)
• Minnisvæn (mnemonic) aðferð til að tákna vélarmálsforrit– Minnisvæn nöfn fyrir aðgerðakóða (op-codes)– Breytur (identifiers): lýsandi nöfn fyrir minnishólf,
valin af forritaranum
© 2007 Pearson Addison-Wesley. All rights reserved 6-5
Einkenni smalamáls
• Einkvæm samsvörun milli vélarmálsskipana og smalamálsskipana– Forritari verður að hugsa eins og tölvan
• Mjög vélarháð• Breytt yfir í vélarmál með forriti sem kallast
smali (assembler)
© 2007 Pearson Addison-Wesley. All rights reserved 6-6
Dæmi um smalamál
Vélarmál
156C166D505630CEC000
Smalamál
LD R5, VerdLD R6, FlutnKostnADDI R0, R5 R6ST R0, HeildarKostnHLT
© 2007 Pearson Addison-Wesley. All rights reserved 6-7
Þriðju-kynslóðar mál
• Notar æðri grunnaðgerðir (primitives)– Svipað sauðakóðanum úr Kafla 5
• Háð örgjörva (að mestu)• Dæmi: FORTRAN, COBOL• Hver grunnaðgerð samsvarar stuttri runu
vélarmálsskipana• Breytt yfir í vélarmál með forriti sem kallast
þýðandi (compiler)
© 2007 Pearson Addison-Wesley. All rights reserved 6-9
Mynd 6.3 Fall til að stemma af ávísanahefti smíðað úr einfaldri föllum
© 2007 Pearson Addison-Wesley. All rights reserved 6-10
Mynd 6.4 Uppbygging dæmigerðrar forritunareiningar
© 2007 Pearson Addison-Wesley. All rights reserved 6-11
Gagnatög
• Integer: Heiltölur• Real (float): Tölur með brothluta• Character: Tákn• Boolean: Satt/ósatt
© 2007 Pearson Addison-Wesley. All rights reserved 6-12
Breytuskilgreiningar
float Length, Width;int Price, Total, Tax;char Symbol;
© 2007 Pearson Addison-Wesley. All rights reserved 6-13
Mynd 6.5 Tvívítt fylki með tveimur línum og níu dálkum
© 2007 Pearson Addison-Wesley. All rights reserved 6-14
Mynd 6.6 Skipulag á fjöltaga (heterogeneous) fylkinu Employee
© 2007 Pearson Addison-Wesley. All rights reserved 6-16
Mynd 6.8 for lykkja og framsetning hennar í C++, C# og Java
© 2007 Pearson Addison-Wesley. All rights reserved 6-17
Stefjaeiningar
• Staðværar (local) eða víðværar (global) breytur• Formstikar (formal parameters) eða viðföng
(actual parameters)• Senda viðfang sem gildi (value) eða með
tilvísun (reference)• Stef (procedures) eða föll (functions)
© 2007 Pearson Addison-Wesley. All rights reserved 6-19
Mynd 6.10 Stefið ProjectPopulation skrifað íforritunarmálinu C
© 2007 Pearson Addison-Wesley. All rights reserved 6-22
Mynd 6.13 Fallið CylinderVolumeskrifað í forritunarmálinu C
© 2007 Pearson Addison-Wesley. All rights reserved 6-24
Mynd 6.15 Mynd af málskipan (syntax) if-then-else setningarinnar
© 2007 Pearson Addison-Wesley. All rights reserved 6-25
Mynd 6.16 Myndir sem lýsa málskipan einfaldra reiknisegða
© 2007 Pearson Addison-Wesley. All rights reserved 6-26
Mynd 6.17 Þáttunartré (parse tree) fyrir strenginn x + y x z byggt á málskipan úr Mynd 6.16
© 2007 Pearson Addison-Wesley. All rights reserved 6-29
Hlutir og klasar
• Hlutur (object): virk forritunareining sem inniheldur bæði gögn og forrit
• Klasi (class): form sem hlutir eru smíðaðir eftir
Hlutur er oft sagður vera tilvik (instance) af klasanum.
© 2007 Pearson Addison-Wesley. All rights reserved 6-30
Mynd 6.20 Skipulag klasa sem lýsir leysivopni í tölvuleik
© 2007 Pearson Addison-Wesley. All rights reserved 6-31
Innihald hluta
• Tilviksbreyta (instance variable): breyta innan hlutar– Geymir upplýsingar innan hlutarins
• Aðferð (method): fall eða stef innan hlutar– Lýsir virkninni sem hluturinn hefur
• Smiður (constructor): sérstök aðferð til að upphafsstilla nýtt eintak af hlutnum þegar hann er búinn til
© 2007 Pearson Addison-Wesley. All rights reserved 6-33
Heilleiki hlutar
• Hjúpun (encapsulation): aðferð til að takmarka aðgang að innri gerð hlutar– Falið (private) eða opið (public)
© 2007 Pearson Addison-Wesley. All rights reserved 6-34
Mynd 6.22 LaserClass skilgreiningin með hjúpun
© 2007 Pearson Addison-Wesley. All rights reserved 6-35
Önnur hlutbundin hugtök
• Erfðir (inheritance): hægt að skilgreina nýja klasa með áður-skilgreindum klösum
• Fjölbrigðni (polymorphism): leyfir aðferða-köllum að vera túlkuð af hlutnum sem fær kallið
© 2007 Pearson Addison-Wesley. All rights reserved 6-36
Forritun samhliða verka
• Samhliða (parallel) eða samtíma (concurrent) vinnsla: framkvæmd margra verka á sama tíma– Raunveruleg samhliða vinnsla krefst margra
örgjörva– Hægt að herma eftir henni með skiptivinnslu (time-
sharing) á einum örgjörva
© 2007 Pearson Addison-Wesley. All rights reserved 6-38
Aðgangsstýring gagna
• Gagnkvæm útilokun (mutual exclusion):aðferð til að tryggja að aðeins eitt ferli hafi aðgang að gögnum á hverjum tíma
• Gætir (monitor): gagnastak ásamt eiginleikanum að stjórna aðgangi að sjálfu sér
© 2007 Pearson Addison-Wesley. All rights reserved 6-39
Skilgreiningaforritun
• Uppleysing (resolution): sameining tveggja eða fleiri rökyrðinga til að búa til nýja rökyrðingu (sem er rökfræðileg afleiðing upphaflegu yrðinganna)– Dæmi: (P OR Q) AND (R OR ¬Q)
uppleysist í (P OR R)– Leysisetning (resolvent) = ný rökyrðing sem kemur út úr
uppleysingunni– Liðform (clause form) = rökyrðing þar sem grunnþættirnir
eru tengdir saman með rökaðgerðinni OR• Jöfnun (unification): gefa breytu gildi þannig að tvær
yrðingar verði “í samræmi”
© 2007 Pearson Addison-Wesley. All rights reserved 6-40
Mynd 6.24 Uppleysing rökyrðinganna (P OR Q) og (R OR ¬Q) sem gefur(P OR R)
© 2007 Pearson Addison-Wesley. All rights reserved 6-41
Mynd 6.25 Uppleysing yrðinganna (P OR Q), (R OR ¬Q), ¬R og ¬P
© 2007 Pearson Addison-Wesley. All rights reserved 6-42
Forritunarmálið Prolog
• Staðreynd (fact): Prolog setning sem setur fram staðreynd– Samanstendur af einni umsögn– Formið: umsagnarNafn(viðföng).
• Dæmi: foreldri(bill, mary).
• Regla (rule): Prolog setning sem setur fram reglu– Formið: niðurstaða :- forsenda.
• :- þýðir “ef”
– Dæmi: vitur(X) :- gamall(X).
– Dæmi: fljotari(X,Z) :- fljotari(X,Y), fljotari(Y,Z).