SICP / CYMRAEG

SICP · Yr ail argraffiad · Scheme

3 Modiwlaredd, Gwrthrychau, a Chyflwr

Harold Abelson a Gerald Jay Sussman gyda Julie Sussman · Cyfieithiad Cymraeg

Mεταβάλλον ὰναπαύεται
(Hyd yn oed wrth newid, y mae'n aros yn llonydd.)
—Heraclitus

Po fwyaf y mae pethau'n newid, mwyaf y maent yn aros yr un fath.
—Alphonse Karr

Cyflwynodd y penodau blaenorol yr elfennau sylfaenol y gwneir rhaglenni ohonynt. Gwelsom sut y cyfunir gweithdrefnau cyntefig a data cyntefig i adeiladu endidau cyfansawdd, a dysgasom fod haniaethu'n hanfodol er mwyn ein helpu i ymdopi â chymhlethdod systemau mawr. Ond nid yw'r offer hyn yn ddigon i ddylunio rhaglenni. Mae cyfuno rhaglenni'n effeithiol hefyd yn gofyn am egwyddorion trefnu a all ein harwain wrth lunio dyluniad cyffredinol rhaglen. Yn benodol, mae arnom angen strategaethau i'n helpu i strwythuro systemau mawr fel eu bod yn fodiwlaidd, hynny yw, fel y gellir eu rhannu'n “naturiol” yn rhannau cydlynol y gellir eu datblygu a'u cynnal ar wahân.

Un strategaeth ddylunio bwerus, sy'n arbennig o addas ar gyfer adeiladu rhaglenni i fodelu systemau ffisegol, yw seilio strwythur ein rhaglenni ar strwythur y system sy'n cael ei modelu. Ar gyfer pob gwrthrych yn y system, adeiladwn wrthrych cyfrifiadurol cyfatebol. Ar gyfer pob gweithred yn y system, diffiniwn weithrediad symbolaidd yn ein model cyfrifiadurol. Ein gobaith wrth ddefnyddio'r strategaeth hon yw na fydd ymestyn y model i gynnwys gwrthrychau newydd neu weithredoedd newydd yn gofyn am unrhyw newidiadau strategol i'r rhaglen, ond ychwanegu'r cyfatebiaethau symbolaidd newydd i'r gwrthrychau neu'r gweithredoedd hynny. Os ydym wedi llwyddo i drefnu ein system, yna wrth ychwanegu nodwedd newydd neu ddadfygio hen un, dim ond ar ran leol o'r system y bydd angen inni weithio.

I raddau helaeth, felly, ein canfyddiad o'r system sydd i'w modelu sy'n pennu sut yr ydym yn trefnu rhaglen fawr. Yn y bennod hon byddwn yn ymchwilio i ddwy strategaeth drefnu amlwg sy'n deillio o ddwy “olwg ar y byd” go wahanol ar strwythur systemau. Mae'r strategaeth drefnu gyntaf yn canolbwyntio ar wrthrychau, gan ystyried system fawr yn gasgliad o wrthrychau ar wahân y gall eu hymddygiad newid dros amser. Mae strategaeth drefnu arall yn canolbwyntio ar y ffrydiau gwybodaeth sy'n llifo yn y system, yn debyg iawn i'r ffordd y mae peiriannydd trydanol yn edrych ar system prosesu signalau.

Mae'r dull sy'n seiliedig ar wrthrychau a'r dull prosesu ffrydiau ill dau yn codi materion ieithyddol arwyddocaol mewn rhaglennu. Gyda gwrthrychau, rhaid inni ystyried sut y gall gwrthrych cyfrifiadurol newid ac eto gadw ei hunaniaeth. Bydd hyn yn ein gorfodi i roi heibio ein hen fodel amnewid o gyfrifiannu (1.1.5) o blaid model amgylchedd o gyfrifiannu sy'n fwy mecanistaidd ond yn anos ei drin yn ddamcaniaethol. Mae anawsterau ymdrin â gwrthrychau, newid a hunaniaeth yn ganlyniad sylfaenol i'r angen i fynd i'r afael ag amser yn ein modelau cyfrifiadurol. Mae'r anawsterau hyn yn cynyddu ymhellach pan ganiateir i raglenni weithredu'n gydamserol. Gellir manteisio i'r eithaf ar y dull ffrydiau pan ddatgysylltwn yr amser a efelychir yn ein model oddi wrth drefn y digwyddiadau sy'n digwydd yn y cyfrifiadur yn ystod gwerthuso. Byddwn yn cyflawni hyn gan ddefnyddio techneg a elwir yn werthuso gohiriedig.