HOME

Samenvatting van oordeel over het "Voorstel tot aanschaffing van een digitale informatieverwerkende machine voor de afdeling der elektrotechniek"

Show original manuscript
E.W.Dijkstra Archive: Samenvatting van oordeel over het "Voorstel tot aanschaffing van een digitale informatieverwerkende machine voor de afdeling der elektrotechniek" (EWD 91)
Samenvatting van oordeel over het "Voorstel tot aanschaffing van een digitale informatieverwerkende machine voor de afdeling der elektrotechniek".

De motivering stelt wel de behoefte aan beschikking over digitale apparatuur, maar laat na aan te tonen, dat deze behoefte niet door de reeds door de THE bestelde machine bevredigd zal kunnen worden en dat dus de aanschaf van een extra machine gerechtvaardigd is.

De motivering noemt wel een aantal toepassingsgebieden, waar een digitale machine bij ingeschakeld zou kunnen worden, maar geeft geen helder beeld van de daaruit voortvloeiende eisen, aan deze machine te stellen. In plaats daarvan bevat het voorstel een lijst van acht deugden van de voorgestelde machine, een IBM 360. Bij nadere inspectie vragen ten minste zes van deze acht wel om enige relativering.

De voorgestelde machine is conventioneel. Door een nodeloze explicietheid van de opdrachtcode deelt zij met haar voorgangers in onverminderde mate de onaangename eigenschap van "onprogrammeerbaarheid", zoals ook blijkt uit de mate, waarin vertaaltijden voor in alogorithmische talen geschreven programma's ten gevolge van optimalisatiepogingen gegroeid zijn. In uniprogrammering zijn deze optimalisatiepogingen al gebrekkig, in multiprogrammering, waar tijdens vertaling van een individueel programma de omstandigheden, waaronder dit programma later zal werken, zoveel minder bekend zijn, zijn ze nog heillozer.

Dit, en de beperkte middelen, waarmee de onderlinge synchronisatie tussen geprogrammeerde en zich buiten de centrale rekeneenheid afspelende processen geregeld moet worden, versterken mijn indruk, dat de ontwerpers zich onvoldoende bewust zijn geweest van de consequenties, die de veranderde werkomstandigheden met zich meebrengen. Zijn geschiktheid voor multiprogrammering en procescontrole - twee nauw verbonden doelstellingen - acht ik dan ook niet overtuigend : hij zal er met pijn en moeite, en mits men met niet te veel al tevreden is, wel voor gebruikt kunnen worden.

De in het voorstel geschatte personeelsformatie van slechts vier man komt mij hierom optimistich voor. Bij deze schatting gaat de afdeling er van uit "dat een toenemend aantal medewerkers zelf zal kunnen programmeren". Wanneer dit gaat impliceren -en daar ben ik bang voor- dat een toenemend aantal medewerkers hun tijd zal moeten besteden aan de toch irrelevante problemen, die rijzen, wanneer men een stuk gereedschap wil inzetten voor taken, waarvoor het eigenlijk niet het adequate stuk gereedschap genoemd kan worden, dan wil ik hierbij opmerken, dat ik uit educatieve overwegingen hier ernstige bezwaren tegen zou koesteren.

Tenslotte: de eigenschappen van de arithmetiek met drijvende komma tarten, zoals dat heet, elke beschrijving. Ik heb nochtans deze uitdaging niet onbeantwoord kunnen laten.

15 juni 1964                                                        E.W.Dijkstra


Aan de hooggeleerde heer
prof. dr.ir.A.A.Th.M.van Trier
voorzitter-beheerder van de
afdeling der electrotechniek

Zeer geachte Collega, aan Uw namens de afdeling der electrotechniek tot mij gerichte verzoek mijn oordeel te geven over het "Voorstel tot aanschaffing van een digitale informatie-verwerkende machine voor de afdeling der electrotechniek" voldoe ik volgaarne.

Mijn commentaar spruit voornamelijk voort uit een confrontatie van de in dit voorstel gegeven motivering met de gedane keuze. Wanneer ik tot de conclusie kom, dat de gegeven motivering weinig overtuigend is - een conclusie, waartoe het College van Curatoren dan dus ook zou kunnen komen -, dan verzoek ik U, ter voorkoming van misverstand, U er wel van bewust te zijn, dat dit niet hoeft te impliceren, dat ik tegen een effectuering van de voorgestelde aanschaffingen gekant zou zijn.

Het voorstel begint met een beroep op het inrichtingsplan van 18 juni 1963 van de groep Telecommunicatie-B, waarin gesteld wordt, dat "de afdeling der electrotechniek .... op een nader te bepalen tijdstip de beschikking (zal) moeten hebben over een digitale rekenmachine, die geschikt is voor besturingsfuncties.".

Na dit citaat vervolgt het voorstel met "Thans is de meningsvorming binnen de afdeling der electrotechniek zover gevorderd, dat U een concreet voorstel kan worden gedaan tot aanschaffing van.....etc.etc.", waarbij stilzwijgend ervan is uitgegaan, dat de behoefte, die met "de beschikking hebben over" is aangeduid, het beste door een nieuw aan te schaffen apparaat kan worden bevredigd. Zo rijst onmiddelijk de in het voorstel onaangeroerde vraag, in hoeverre de behoeften van de afdeling der electrotechniek mettertijd bevredigd zou kunnen worden onder gebruikmaking van de reeds door de THE bestelde digitale apparatuur. Van de daaropvolgende uitspraak uit het voorstel : "daarnaast hebben ook andere groepen van de afdeling er belang bij, dat over digitale apparatuur kan worden beschikt" zou ik dan ook willen opmerken, dat hij zonder nadere specificatie niet als argument kan dienen en daarom in deze vorm mij als misplaatst voorkomt.

In de volgende passage, lopend van "Bij het ontwerp van electrotechnische systemen...." (pagina 1, regel 14 van onderen) tot en met "...niet meer adequaat worden uitgevoerd." (pagina 2, regel 19 van boven) hoor ikeen lofzang op de general purpose rekenautomaat, die mij uit de aard der zaak als muziek in de oren klinkt. Maar ook deze uitspraak treft mij meer als een bevestiging van de toekomstverwachtingen, die vorig jaar geleid hebben tot de bestelling van een grote rekenautomaat, dan als een deugdelijke motivering voor de aanschaf van nog een nieuwe machine !

Het voorstel vervolgt echter met : "De afdeling meent - en zij wordt in deze mening gesteund door anderen en ervaringen van elders - dat van de aanwezigheid van een digitale machine van bescheiden omvang een zeer stimulerende invloed zal uitgaan op wetenschappelijk onderzoek en ontwikkelingswerk." Deze alinea, die de stap van "beschikken over" tot "aanschaf" zou moeten rechtvaardigen, is om diverse redenen nogal zwak. "De afdeling meent"..... en dan komt er niet, wat je zou verwachten, nl. een bondige aanduiding op grond waarvan de afdeling deze mening koestert, maar... een anonieme verwijzing naar anderen en ervaringen van elders, alsof de afdeling in de gefundeerdheid van haar eigen mening onvoldoende vertrouwen heeft. (Waarom immers anders dit beroep op anderen ?). Er is nog een reden, waarom dit beroep op elders beter weg had kunnen blijven. Het gaat immers uit van de veronderstelling, dat de situatie zoals die zich in het verleden elders heeft voorgedaan, voldoende overeenkomst met de toekomstige situatie aan de THE zal vertonen, een prognose, waarvan ik vurig hoop, dat zij onjuist zal blijken ! (Uit het verzoek van de onderafdeling der wiskunde, gedaan in de "Letter to the Manufacturers" om de offerten zo mogelijk niet tot de toen reeds gangbare marktartikelen te beperken, bleek wel, dat zij met die gangbare marktartikelen niet onverdeeld ingenomen was, met name omdat zij zich voorstelde een gevarieerdere en zo nodig promptere service te leveren, dan daarmee mogelijk was gebleken. Dit streven van de onderafdeling der wiskunde heeft nog niets in kracht ingeboet en het is dan ook wat moeilijk om in Uw beroep op ervaringen van elders een blijk, zo niet van wantrouwen, dan toch wel van twijfel ten aanzien van dit streven te proeven.)

Tot zover de eerste twee regels van deze alinea ; ook de er in uitgesproken mening werpt een aanzienlijk vraagteken op. Uit het voorkomen van de nadere bepaling "van bescheiden omvang" valt wel te concluderen, dat de afdeling der electrotechniek de mate, waarin de aanwezigheid van een digitale machine wetenschappelijk onderzoek stimuleert, afhankelijk stelt van de omvang van deze machine, maar de lezer blijft geheel in het ongewisse over de aard van deze afhankelijkheid. Is de afdeling reeds geholpen met een machine van bescheiden omvang, maar zou zij met een grotere machine beter gebaat zijn, of is in haar toepassingen de bescheidenheid van de omvang der installatie juist een essentiele deugd ? Beide mogelijkheden zijn denkbaar,

Ook de volgende alinea vraagt om ophelderingen. Ten gunste van de IBM 360 wordt gezegd "dat dit systeem het resultaat is van een zeer geavanceerde ontwikkeling, zowel op technologisch gebied als op het gebied van de beginselen van informatieverwerking, die erin zijn toegepast." De beoordeling van de technologische merites - waarvan ik volgaarne aanneem, dat zij zeer groot zijn - valt buiten mijn competentie ; wanneer "de beginselen van informatieverwerking, die erin zijn toegepast" geacht kunnen worden terug te vinden te zijn in de manier, waarop de machine zich aan de programmeur voordoet, dan vraag ik mij in de eerste plaats af, welke deze beginselen dan wel zijn, en in de tweede plaats, waaraan zij dan wel het epitheton ornans "resultaat van een zeer geavanceerde ontwikkeling" - voorwaar geen zwakke term ! - aan mogen ontlenen. Bij de bestudering van "IBM System/360 Principles of Operation, form A22-6821-0" kreeg ik nl. niet de indruk van een moderne machine, integendeel. De voorstelling van zaken, dat het hier gaat om het resultaat van een zeer geavanceerde ontwikkeling acht ik, voorzover het de niet-technologische aspecten betreft, dan ook volledig misplaatst : zij treft mij meer als het product - en daarmee onderdeel - van een mythevorming, dat het hier om een achtste wereldwonder zou gaan, dan als een weloverwogen oordeel, getoetst aan de critische maatstaven een Nederlandse instelling van hoger onderwijs waardig.

Ten aanzien van de in het voorstel genoemde voordelen het volgende. ad 1) "grote snelheid waarmee de logische handelingen worden uitgevoerd".

Aangezien deze snelheid, als ik het goed begrepen heb, van model tot model sterk verschilt, is dit argument meer van toepassing, naarmate Uw afdeling de aanschaf van een snellere versie voorstelt. Welke versie Uw afdeling op het oog heeft staat in het voorstel merkwaardigerwijs niet vermeld. Uit de prijsopgave meen ik te mogen opmaken, dat U het oog heeft laten vallen op een van de langzaamste versies, wat ik ervaar als een verzwakking van dit argument. Onafhankelijk daarvan zij opgemerkt, dat de snelheid voor alle versies voor een niet onbelangrijk gedeelte te niet gedaan wordt door onbeholpenheid van de opdrachtcode. Het feit, dat het merendeel der opdrachten de zg. Condition Code onherroepelijk wel of niet zet, terwijl alleen de sprongopdrachten op de zetting vann deze condition code kunnen reageren, eist in dit opzicht een zware tol.

ad 2) "de mogelijkheid meerdere programma's gelijktijdig uit te voeren".

Terzijde zij ten eerste opgemerkt, dat het woord "gelijktijdig" de werkelijke gang van zaken te gunstig voorstelt, aangezien de Centrale Processing Unit op elk moment maar met 1 (en indien door communicatie geblokkeerd, met geen enkel) programma actief bezig is.

Om tot de kern van dit punt te komen : het is sinds jaar en dag bekend, dat de mogelijkheid tot interruptie een nodige voorwaarde is om een soepel werkend systeem voor multiprogrammering te realiseren, het is, eveneens sinds jaar en dag, bekend, dat de mogelijkheid tot interruptie opzichzelf een onvoldoende voorwaarde is om de potentiele vruchten van multiprogrammering metterdaad te plukken. Het genoemde IBM-document is hier, dacht ik, wel wat misleidend ; ik citeer "By storing the current PSW (=Program Status Word) during an interruption the state of the CPU can be preserved...." (pg.15, rechterkolom, 5de regel van onder) en "If, at the conclusion of the interruption routine, there is an instruction to make the old PSW the current PSW the system is restored to the state prior to the interruption and the interrupted routine continues." (pg.16, linkerkolom, 5de regel van onder). Helaas is overschakelen van het ene programma naar het andere een aanmerkelijk omvangrijkere taak, aangezien de CPU is uitgerust met 16 enkelwoords- en 4 dubbelwoordsregisters, zodat 96 bytes gered moeten worden, voordat het andere programma kan doorgaan. (Ik ga er op dit moment aan voorbij, dat ook in uniprogrammering de aanwezigheid van een dergelijk groot aantal onderling gelijkwaardige speciale registers niet een onvermengde zegen is : zodra men probeert ze te gebruiken, blijkt het een tweesnijdend zwaard te zijn.) Voorts is het, om de vruchten van multiprogrammering te kunnen plukken, wel wenselijk, dat programma's herplaatsbaar zijn, en wel herplaatsbaar in een wat sterkere zin, dan waarin door deze machine voorzien wordt. Bij punt 7 kom ik hier op terug.

ad 3) "ruime en flexibele communicatiemogelijkheden".

Het is in dit verband speciaal het multiplexor channel, dat fascinerende mogelijkheden schijnt te bieden. Hoe bruikbaar het is, hangt echter af van nadere specificaties, die ik in het geciteerde IBM-document niet heb kunnen vinden. Mondeling is mij meegedeeld - of dit juist is, zou geverifieerd kunnen worden - dat in geval van congestie over het multiplexor channel bij niet stopbare inputapparaten informatie verloren gaat. En congestie is (zie de zg. burst mode) geen exceptie. De eerste vraag is of de CPU kan controleren, dat zulk informatie verlies niet is opgetreden. De tweede vraag is : wanneer er wel stopbare inputapparaten aan het multiplexor channel gekoppeld zijn, kan dan de terugkoppeling tussen channel en apparaat gerealiseerd worden, die in het geval van congestie in het kanaal het apparaat stopt ? Indien niet beide vragen bevestigend beantwoord worden, lijkt mij de bruikbaarheid van het multiplexor channel ernstig geschaad.

Voorts heeft het mij bij het multiplexor channel bevreemd, dat de interrupties van dit kanaal, hoewel er een groot aantal onderling asynchrone apparaten via dit kanaal kan worden aangesloten, tesamen slechts met ÈÈn enkel zg. "mask bit" tegengehouden, dan wel toegelaten worden. De mask bits zijn immers een mogelijkheid om selectief op interrupties te reageren, men zou ze bv. willen gebruiken om tijdens de behandeling van interrupties van gemiddelde prioriteit de CPU wel af te schermen tegen interrupties van lagere, maar niet tegen interrupties van hogere prioriteit. Als nu aan het multiplexor channel maar 1 apparaat zit, waarvan met de interruptie met hoge prioriteit wil honoreren, terwijl de overige interrupties via het multiplexor channel niet de minste haast hebben, dan zie ik hier een conflictsituatie ontstaan.

Bij de selector channels, die voor zover het informatietransport betreft, sequentieel bedreven worden, doet zich deze moeilijkheid niet voor. Hier is echter de vraag of de "command chaining" het soulaas brengt, dat ermee beoogd wordt. Twee vragen zijn bij mij gerezen, waarop ik in de mij ter beschikking staande documentatie het antwoord niet heb kunnen vinden. Indien aan een selector channel een ketting commands is gegeven en het kanaal is met de uitvoering van deze ketting begonnen, kan dan deze ketting nog met nieuwe schakels uitgebreid worden, maw. kunnen de commands continue toegevoerd worden ? Als dit niet het geval is - en daar ben ik een beetje bang voor - zou ik ernstig teleurgesteld zijn. De tweede vraag, die rijst, betreft de PCI-flag (Program Controlled Interruption), die in een CCW (Channel Command Word) mag voorkomen. Indien in een keten van commands meer dan 1 CCW de PCI-flag bevat, is het dus mogelijk, dat de tweede "interrupt condition" ontstaat, voordat de eerste gehonoreerd is. Het geciteerde document (pag 100, rechterkolom, regel 18 van boven) vervolgt : "The PCI-conditions are not stacked ; that is, if another CCW is fetched with a PCI-flag before the interruption due to the PCI-flag of the previous CCW has occurred, only one interruption takes place." Mijn vraag is, of de CPU kan achterhalen, dat deze ene interruptie voor twee (of meer) telt ; zo nee, dan lijkt me de faciliteit zo goed als onbruikbaar.

ad 4) "directe toegang tot het kerngeheugen, capaciteit van het kerngeheugen, mogelijkheid van bescherming van delen van het kerngeheugen".

In hoeverre "directe toegang tot het kerngeheugen" na punt 3 nog iets nieuws toevoegt, ontgaat mij. Hoe men "capaciteit van het kerngeheugen" als facet kan noemen, ontgaat mij eveneens : elk kerngeheugenheeft een zekere capaciteit ! De voorgestelde aanschaf omvat een kerngeheugen van "16000 tekens" (hiermee is bedoeld "16384 bytes" ?). Betekent de speciale vermelding "capaciteit van het kerngeheugen" dat de onderafdeling der electrotechniek haar keuze op de IBM 360 heeft laten vallen omdat deze leverbaar was met een geheugen van deze, door haar ideaal geachte omvang ? Of is hier eigen-omvang" bedoeld en houdt de afdeling reeds thans ernstig met de mogelijkheid rekening, dat de voorgestelde aanschaf in een later stadium als "stepping stone" (of in goed Nederlands : "als hefboom") tot een grotere installatie zal fungeren. In het voorstel zou wat grotere klaarheid in dit opzicht dunkt me wel gewenst zijn ; ik stel me zo voor, dat ook het College van Curatoren wel zal willen weten, of deze aanschaf beschouwd moet worden als hoofdzakelijk een eenmalige investering, dan wel of het met de fiattering van deze aanschaf zich voor latere jaren de (misschien kostbare) plicht tot uitbouw van de installatie op de hals heeft gehaald.

Ten aanzien van de genoemde "mogelijkheid van bescherming van delen ven het kerngeheugen" (mogelijkheid tot bescherming van informatie in delen van het kerngeheugen geeft het iets duidelijker weer) wil ik graag beginnen met de opmerking, dat ik de wijze, waarop dit in de IBM 360 met behulp van de zg. "Protection Key" gerealiseerd is, de leukste manier vindt, die ik ooit gezien heb. Het feit, dat deze methode met drastische uitbreiding van het kerngeheugen verenigbaar is weegt ongetwijfeld zwaarder dan de er uit voortvloeiende beperking, dat het aantal ten opzichte van elkaar beschermde processen aan een bovengrens van 15 gebonden is. Mijn appreciatie voor de wijze van verwezenlijking neemt niet weg, dat ik van de bruikbaarheid maar weinig overtuigd ben. Ten eerste gaat de geheugenbescherming in eenheden van 2048 bytes, met een slechts acht maal zo groot geheugen een tamelijk grove "korrel". Ten tweede - en dit is een aspect, waardoor de machine me als ouderwets treft - beoogt de geheugenbescherming om de ene programmmeur te beschermen tegen de fouten van een ander. Het is veel belangrijker dat de programmeur beschermd wordt tegen de fouten van zichzelf ; met de controle, dat hij anderen gehinderd heeft, is hij zelf heel weinig gebaat, zolang hij nog onbedoeld zijn programma kan hebben overschreven, in zijn getallenmateriaal kan springen etc. Indien van elke geheugenselectie vaststaat, dat hij heeft plaatsgevonden binnen de (deel)informatie-eenheid in kwestie, impliceert dit a fortiori, dat de programmeur anderen niet gehinderd heeft en de ingebouwde geheugenbescherming, die zich beperkt to uitsluiting van interferentie tussen programma's, komt niet eens meer aan bod. Het feit, dat de "Protection Feature" facultatief is, is voor mij, gezien de repercussies van zijn aanwezigheid (nl. niet meer homogeen geheugen) een groot raadsel. ad 5) "Schijven-geheugen van grote capaciteit".

Behalve de opmerking, dat de combinatie van capaciteit, nog gehaalde accesstijden en prijs mij treft als een indrukwekkende prestatie, geen commentaar.

ad 6) "automatische correctie van tijdelijk machinefouten".

Dit suggereert mij, dat de machine incidentele fouten automatisch corrigeert, en wel allemaal, feilloos en onder alle omstandigheden. Als dit waar zou zijn, ben ik benieuwd te vernemen, hoe dit in zijn werk gaat. Ik kan het me nl. bv. moeilijk voorstellen welke correctieprocedure zonder speciale voorzorgen in de programma's in staat is de juiste waarde van een willekeurige byte te reconstrueren, wanneer deze abusievelijk onjuiste pariteit zou blijken te bezitten. Bij een lezing over de IBM 360 kreeg ik veel meer de indruk, dat hier in de eerste plaats sprake was van een diagnostisch hulpmiddel bij de localisatie van fouten en dat slechts in bijzondere omstandigheden correctie mogelijk is. Voorts spreekt de mij ter beschikking staande documentatie wel over pariteitsbits, maar bv. nergens over een zichzelf controlerende arithmetiek. Als inderdaad feilloze correctie van alle enkelvoudig optredende tijdelijke machinefouten niet onder alle omstandigheden gegarandeerd kan worden, moet ik U verzoeken de mogelijkheden van de zg. "machine check" iets genuanceerder te omschrijven.

ad 7) "mogelijkheid van programma herplaatsing".

Het betreft hier de weinig interessante mogelijkheid de definitieve plaats van een programma pas te beslissen op het moment, dat het programma in het geheugen wordt opgenomen, zonder dat deze beslissing bijwerking van de adressen in de (binaire) programmatext vergt. Dit is alleen van interesse, wanneer men de binaire text, los van hun uitvoering, een zelfstandig bestaan laat leiden, dwz. wanneer men van "Load and Go" geen standaardpraktijk kan maken. Als dit zo is - en bij geruchte heb ik vernomen, dat in de begeleidende software het concept van geprecompileerde programma(gedeelte)s nog steeds is gehandhaafd - is dit een veeg teken ten aanzien van de (automatische) programmeerbaarheid van de machine (wat, gezien het grote aantal expliciet benoemde registers, minder een verrassing dan wel een bevestiging van een reeds gekoesterd bang vermoeden is).

Veel erger is, dat datgene, dat met "mogelijkheid van programma herplaatsing" wel gesuggereerd wordt en in multiprogrammering absoluut noodzakelijk is, wil men het kerngeheugen enigermate efficient gebruiken, in de IBM 360 in het algemeen niet mogelijk is : is eenmaal de plaats, die een programma en zijn onderdelen in het kerngeheugen zullen innemen, gekozen, dan is tijdens de uitvoering van dit programma deze keuze niet meer herroepbaar. Door dit ernstig gebrek aan flexibiliteit - dat o.a. impliceert, dat bij elk programma van te voren een majorant opgegeven moet worden van de maximale geheugenbehoefte, zoals die in de loop van de uitvoering misschien maar even optreedt - krijgt men de hele rompslomp van "job scheduling" (en waarschijnlijk ook van segmentering) weer opgedrongen en gaat een belangrijk deel van de potentiele charmes van multiprogrammering verloren. De IBM 360 presenteert zich in dit opzicht als een uiterst conventionele machine met alle nadelen van dien. ad 8) "relatief lage prijs".

Als - dankzij de revolutionaire fabricagetechnieken - de prijs in verhouding tot "het informatieverwerkend vermogen" vergeleken bij vroeger inderdaad significant gedaald is, dan geeft dit ernstig te denken. Tot voor kort beschreef de afdeling der electrotechniek haar behoeften in termen van een (conventioneel) geconstrueerde machine van circa f500 000,--. Nu doet zij plotseling het voorstel tot aanschaffing van een machine, die meer dan anderhalf maal zo duur is, en bovendien relatief goedkoop zou zijn. Over deze plotselinge, zeg, verdubbeling van de behoefte aan beschikking over digitale apparatuur rept het voorstel met geen woord, hoewel dit voor een ieder, die enigszins met de voorgeschiedenis op de hoogte is, toch wel een vreemde zaak moet zijn.

Ten aanzien van de in sectie 3 van het voorstel opgesomde toepassingsgebieden zou ik het volgende willen opmerken. Over de aard en omvang van de hieruit voortvloeiende machinebelasting is - althans voor een buitenstaander als ik - moeilijk een beeld te vormen ; het wordt daardoor weinig duidelijk, dat de machine, die de THE reeds in bestelling heeft, niet als het hiervoor aangewezen stuk gereedschap beschouwd moet worden. De indruk van de toepasbaarheid van deze laatste machine wordt nl. door de "lofzang" alleen nog maar versterkt.

Tenslotte : een in dit voorstel slechts terloops genoemde faciliteit, nl. de drijvende komma faciliteit, vraagt wel om enig commentaar.

1. Door de krapte aan bits in de enkelwoords drijvende arithmetiek is deze nauwelijks interessant : er is een compromis uit de bus gekomen, waarin zowel het bereik, als de relatieve preciesie nog kleiner zijn dan bv. in de IBM 1620.

2. Zodra men op dubbele lengte overgaat komen alle bits van het tweede woord aan de mantisse ten goede, maaar het te kleine exponentbereik blijft onverminderd als bezwaar kleven.

3. De representatie van de drijvende getallen is zo gekozen, dat de uitwerking van de transferfuncties van en naar vaste komma representatie (vooral in de ene richting) nodeloos ingewikkeld zijn.

4. Een en ander wordt nog versterkt, doordat de communicatie tussen de registers met drijvende en die met vaste komma slechts via het geheugen mogelijk is.

5. Met het oog op de byte-scandering hebben de ontwerpers zich laten verleiden, om de exponent op basis 16 te betrekken. Hierdoor fluctueert de relatieve prciesie, waarmee getallen gerepresenteerd kunnen worden, een factor 16. Een van de grootste voordelen van de drijvende binaire komma (waar deze fluctuatie slechts een factor 2 is) is hiermee verloren gegaan. Het numerieke ongerief van de drijvende decimale komma is in de IBM 360 dus nog een keer versterkt !

6. De opdrachtcode bevat opdrachten, die hun drijvende resultaat niet "nanormeren". Indien deze ingevoerd zijn in de gedachte, dat hiermee een preciesiecontrole kan worden uitgevoerd, dan berust dit op een vergissing (zie bv. Wilkinson). Indien zij ingevoerd zijn met snelheidswinst als oogmerk (de niet na-normerende opdrachten kunnen nl. sneller uitgevoerd worden), dan hebben de ontwerpers zich hier "pound foolish and penny wise" betoond. De non-unieke getalvoorstelling zal elders nl. een aanzienlijke prijs vergen : in de drijvende arithmetiek, die nu ook ongenormeerde getallen als operand moet accepteren - deze prijs kan klein zijn - maar zeker, doordat de kans op prgrammafouten hierdoor aanzienlijk gestegen is.

7. De arithmische bewerkingen op drijvende getallen leveren niet een fatsoenlijk afgerond resultaat, maar een domweg afgekapt. 8. Doordat negatieve getallen in het zg. tweecomplementensysteem gerepresenteerd worden, leidt dit afkappen voor positieve getallen tot verkleining, voor negatieve getalen tot vergroting van de absolute waarde. Elementaire relaties als

- (a * b) = (-a) * b

zijn in deze onreine arithmetiek dus niet meer gewaarborgd. Over de commutatieviteit van de vermenigvuldiging en de optelling zwijgt de documentatie......

Kortom, de drijvende arithmetiek van de IBM 360 is een sprekend voorbeeld van het soort wanproduct, dat een ongebreideld opportunisme pleegt voort te brengen.

Dit, waarde collega, was mijn commentaar op het voorstel. De tijd heeft mij ontbroken om kort te zijn ; voor de lengte van dit commentaar bied ik mijn verontschuldigingen aan.

Met collegiale groeten,
Uw





E.W.Dijkstra

transcribed by Sam Samshuijzen
revised Sun, 19 Dec 2004