42
Kafli 6 Forritunarmál © 2007 Pearson Addison-Wesley. All rights reserved

Kafli 6 - notendur.hi.ishh/kennsla/tos/slides06_isl.pdf · vinnsla: framkvæmd margra verka á sama tíma – Raunveruleg samhliða vinnsla krefst margra örgjörva ... Microsoft

  • Upload
    hadieu

  • View
    220

  • Download
    1

Embed Size (px)

Citation preview

Kafli 6

Forritunarmál

© 2007 Pearson Addison-Wesley.All rights reserved

© 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-3

Mynd 6.1 Kynslóðir forritunarmála

© 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-8

Mynd 6.2 Þróun hugmyndafræði forritunarmála

© 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

Mynd 6.7Stýriskipanir og framsetning þeirra í C, C++, C# og Java

© 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-18

Mynd 6.9 Stýriflæði í kringum stef

© 2007 Pearson Addison-Wesley. All rights reserved 6-19

Mynd 6.10 Stefið ProjectPopulation skrifað íforritunarmálinu C

Mynd 6.11Framkvæmd ástefinu Demo og flutningur áviðföngum sem gildi (by value)

Mynd 6.12Framkvæmd ástefinu Demo og flutningur áviðföngum sem tilvísanir (by reference)

© 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-23

Mynd 6.14 Þýðingarferlið

© 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

Mynd 6.18Tvö mismunandi þáttunartré fyrir setninguna if B1 then if B2 then S1 else S2

© 2007 Pearson Addison-Wesley. All rights reserved 6-28

Mynd 6.19 Hlutbundin sýn áþýðingarferlið

© 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-32

Mynd 6.21 Klasi með smið

© 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-37

Mynd 6.23 Fæðing (spawning) þráða

© 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).