Datorn — redskap eller tyrann?
EN DATORANEKDOT som får många att skratta och andra att rysa lyder på detta sätt: Flera stora nationer kommer överens om att länka samman sina mest avancerade datorer för att få hjälp med att lösa sina invecklade problem. De ofantliga informationsreservoarerna är sammankopplade till ett uppbåd av kraftfulla behandlingsenheter. För att testa kombinationen inmatas ”den yttersta frågan” i det integrerade systemet: ”FINNS DET EN GUD?”
Bandrullar snurrar och indikatorlampor blixtrar, medan den mest sofistikerade datorstruktur som någonsin uttänkts avsöker väldiga databanker och sammanställer och analyserar fakta, medan den låter alla resurser få inflytande på frågan. Efter några minuter upphör all verksamhet, sånär som på ett utbrott av aktivitet på skrivmaskinen, medan den skriver ut slutresultatet av milliarder logiska avgöranden. Inför de nedtystade åhörarnas förfärade ögon lyder det kortfattade svaret: ”DET FINNS EN NU!”
En människas reaktion på denna historia beror — liksom när det gäller skönhet — i hög grad på hennes egen uppfattning. Din personliga erfarenhet av datorer kan göra att du känner oupphörlig beundran för deras förmågor. Om du befinner dig vid spektrums andra ytterlighet, kan du i stället reagera med vämjelse blandad med oroande fruktan.
För somliga är datorn det mekaniska snille som på ett ögonblick kan underrätta en om att platser är reserverade för en tusenmilafärd, bistå en advokat med att finna tillämpliga uppgifter för ett svårt fall och i stunder av avkoppling tjäna som en farlig motståndare i schack eller luffarschack. För andra är datorn den blinda och för fel benägna maskin som trasslar till deras banktillgodohavande, fortsätter att kräva dem för en sedan länge betald räkning och i sitt ”minne” lagrar nedsättande upplysningar om dem, vilka den övriga världen kan få reda på genom att trycka på en knapp.
Hur betraktar du datorn? Skulle du vilja ta en närmare titt på detta elektroniska under som har så många användningsmöjligheter?
Varför har datorn konstruerats?
Under historiens gång har människan försökt utöka sina egna förmågor för att öka farten på eller eliminera arbete som innebär upprepning. I många år har mängder av fysiska arbetsuppgifter — plöjning, förflyttning, tillverkning — utförts av mekaniska arbetsbesparande anordningar. Men intellektuella processer — hur ofta de än upprepades — ansågs länge ligga utanför automationens område.
Låt oss som exempel tänka på en fabrikant som behöver få en kolumn med siffror adderade för att få reda på vad han för tillfället har i lager. Till att börja med var denna uppställning och uträkning en helt och hållet intellektuell process. När sedan additionsmaskinen och de moderna räknemaskinerna kom till, utfördes själva räkningen automatiskt, även om inmatningen av data förblev manuell. Operatörens fysiska rörelser blev den långsammaste delen i processen. Uttråkning och slarv lade sina bördor till proceduren.
Skulle man kunna konstruera en maskin som kunde ”läsa” talen, åstadkomma samma verkan som nedtryckandet av siffertangenterna, avgöra om den skulle addera eller subtrahera och sedan skriva ut slutsumman? Det kunde man göra! Data som inmatats med hjälp av hålkort eller magnetband eller som rentav ”avlästs” direkt från ett källdokument av en optisk teckenläsare kunde matas direkt in i en dator. Men hur skulle en maskin kunna veta vad den skulle göra med detta?
Lagrade programbegrepp var lösningen. Additionsmaskinen eller räknemaskinen kunde bara utföra en eller två operationer för varje tangent som trycktes ner, men en dator med ett lagrat program eller ”minne” kunde ha en hel serie instruktioner som ledde in den på många oberoende vägar, alltefter dess analys av införda data. Allteftersom datorminnets kapacitet och hastighet ökades blev möjligheterna häpnadsväckande.
Vidare tillämpning av datorns förmåga
Medan du tänker på denna möjlighet, kan du då i dina tankar föreställa dig vara fabrikant? Du kan tänka så här: ”Om maskinen kan addera vår produktion och subtrahera vad vi säljer, varför kan vi då inte låta den hålla reda på vårt lager och ’tala om’ för oss när antalet blir lågt? Eller ännu bättre: Låta den tala om för oss, när vi kommer under 200 i fråga om våra artiklar som går snabbt och under 20 i fråga om dem som går långsamt? Men vänta! Vi har högsäsong vissa tider på året. Ge datorn uppgifter om förra årets försäljning och låt den tala om för oss vad vi kan förvänta varje vecka. Vi vet vad varje avdelning i vårt företag behövde förra året. Med dessa upplysningar skulle den här maskinen kunna planera automatiska utsändningar av samma mängder i år. Kan den ’läsa’ en order, bryta ner den i underkomponenter och tala om för oss när vi skall börja produktionen för att kunna leverera i tid? Kan den ... ?”
Naturligtvis kan den det. Och datorn gör detta och mycket mera för många koncerner i vår tid. Möjligheterna begränsas bara av den tillgängliga tiden, av datorsystemets förmåga och utrustning och av användarens fantasi och rörlighet.
Snabb — och blir ännu snabbare
För att belysa moderna datorers snabbhet kan vi föreställa oss en kontorist som har problemet att addera 100.000 sjusiffriga tal. Utskrivna med enkelt radavstånd på ett skrivpapper med 10 spalter per sida skulle dessa tal fylla omkring 150 sidor. Om den här hårt arbetande personen använder en räknemaskin och på en sekund hinner slå in sju siffror och trycka ner additionstangenten, skulle han behöva arbeta nästan 28 timmar. Hur nedslående skulle det inte vara, om en dator började med uppgiften samtidigt! Innan människan tryckt ner additionstangenten för det första talet skulle datorn redan hålla på med att skriva ut resultatet!
Den snabba datorn arbetar likt vilken som helst maskin — utan att tröttna eller bli uttråkad och med kuslig exakthet, om den är rätt programmerad. Men hur förhåller det sig med kostnaderna? I början av 1950-talet var kostnaden för datorbearbetning mellan 6 och 7 kronor för 100.000 beräkningar — i dag är kostnaden mindre än fem öre för samma arbete. Nya minnen med ”magnetiska bubblor” kan erbjuda en tusenfaldig fysisk minskning av storleken på datorns minnesbank, och teknikerna ser framför sig ett fullständigt datorminne på ett centimeterlångt metallblad!
Blir du förfärad av detta? Känner du det på samma sätt som en viss forskare, som drog slutsatsen att inom några hundra år är vårt enda hopp att datorerna skall vara villiga att hålla oss som sällskapsdjur? Kommer datorer att bli tyranner över oss? När vi söker få fram ett svar, är det sannerligen tid att gå igenom deras begränsningar.
Datorernas begränsningar
Hur imponerande datorns förmågor än är, så är den fortfarande en maskin. I Encyclopædia Britannica förklaras det mycket passande: ”Datorn kan inte visa omdöme eller ge prov på sunt förnuft, och den måste minutiöst instrueras i programmet beträffande hur den skall ta itu med varje möjligt fall.” Ja, programmeraren måste stå för fantasin och förmågan att göra slutledningar, när han utvecklar instruktioner som skall styra datorns arbete. Det är med datorn som med varje annan maskin — den kan inte göra vare sig mera eller mindre än följa den bestämda väg som lagts ut för den av programmeraren. Datorn kan avgöra (om den är konstruerad för att göra det) om ett visst påstående är oriktigt enligt datorspråkets regler. Men den kan inte avgöra om påståendet är logiskt riktigt eller oriktigt för att uppnå det önskade resultatet.
En stor del av en programmerares arbete kallas att ”köra in” program, dvs. upptäcka, lokalisera och rätta logiska fel som datorn inte kan uppfatta. Detta gör man genom att testa programmet med hjälp av särskilt iordningställda data och jämföra det resultat man får med på förhand bestämda korrekta resultat. Det är nu troligt att du kan förstå att ett datorsystems totala beroende av programmeraren är resultatet av maskinens fullständiga brist på omdöme. Detta elektroniska under är, som en viss programmeringsinstruktör träffande kallade det, ”en mycket snabb idiot”!
Datorn kommer att följa instruktionerna blint utan något samvete som besväras av något som är oriktigt. En programmerare kan således göra att en dator är ”fördomsfull” genom att variera dess åtgärder alltefter vissa kombinationer av bokstäver i första och/eller sista namnet på den person vars uppgifter behandlas i datorn. Dörren står också öppen för en skrupelfri programmerare att styra datorn till sin egen personliga fördel. I New York Times för 3 juli 1977 framhölls det att brottslighet grundad på datorer nu beräknas belöpa sig till 300 millioner dollar om året och att den genomsnittssumma som stjäls är 500.000 dollar för varje tillfälle.
Det är tydligt att en dator inte kan göra mera än en människa eller göra saker bättre; den kan bara göra vissa ting snabbare. Det är intressant att lägga märke till att tidskriften Natural History hade följande att säga i en jämförelse mellan människan och datorn: ”Om vi skulle öka vår tids datorer proportionerligt i storlek, skulle en maskin som motsvarar människohjärnan i minneskapacitet ha en effektförbrukning på 1 milliard watt — hälften av vad Grand Coulee-dammen ger — och uppta det mesta av utrymmet i Empire State Building. Kostnaden för den skulle ligga i närheten av 10 milliarder dollar. Maskinen skulle besitta en häpnadsväckande artificiell intelligens, men den skulle bara vara en klumpig efterbildning av människohjärnan.” I denna tidskrift hette det också: ”På nästan varje punkt är världens kraftfullaste elektroniska hjärnor hopplöst otillräckliga i jämförelse med den till omkring halvannan liter uppgående grå massa som bor i det mänskliga kraniet.”
Till skillnad från människan kan datorn inte medge någon avvikelse, hur liten den än skulle vara, från vad den är programmerad att göra. Skulle du vilja förstå detta bättre? För att klargöra detta kan en del av ett enkelt datorprogram räcka till.
Datorprogrammet
Datorprogrammet förser datorn med alla instruktioner beträffande arten av de data som kommer in och arbetsreglerna och talar om på vilket sätt resultatet skall lämnas ut. Vi återvänder till vårt exempel med fabrikanten och skriver en del av ett program som skall justera hans inventeringsbesked efter en dag av försäljning och produktion. Programmeringsspråket är COBOL, som står för den engelska benämningen Common Business Oriented Language (probleminriktat språk lämpat för administrativ databehandling). Datauppgifterna ser ut så här:
GAMLA HUVUDREGISTRET (GÅRDAGENS LAGER)
Antal Minsta
Lagernr Benämning i lager antal
00012 GUMMIPACKNING 00700 150
00150 GÅNGJÄRN 01201 200
00201 MÄSSINGSHANDTAG 00320 030
00208 TRÄSKRUV 00980 500
00301 FÖNSTERBRÄDA 04300 090
00404 SPIK 15600 999
TRANSAKTIONER (DAGENS UPPGIFTER)
Lagernr Såld/Tillverkad Antal
00012 TILLVERKAD 0120
00150 TILLVERKAD 0032
00201 TILLVERKAD 0088
00201 SÅLD 0035
00208 TILLVERKAD 1134
00301 TILLVERKAD 0078
00301 SÅLD 0012
00404 TILLVERKAD 1234
Ovanstående datauppgifter kan definieras i datorprogrammet på följande sätt (lägg märke till att varje X eller 9 reserverar plats för en bokstav eller siffra):
01 HUVUDLAGERPOSTER. 01 TRANSAKTIONSUPPGIFTER.
05 LAGERNR PIC XXXXX. 05 TRANS-LAGERNR PIC XXXXX.
05 BENAMNINGa PIC X(15). 05 SALD-TILLVERKADb PIC XXXX.
05 ANTAL-I-LAGER PIC 99999. 05 ANTAL PIC 9999.
05 MINSTA-ANTAL PIC 999.
Efter en jämförelse av varje transaktion med motsvarande post i huvudregistret behöver följande instruktioner uttryckta på COBOLc tilläggas:
IF SALD-TILLVERKADd IS EQUAL TO ’TILLVERKAD’
(om) (är lika med)
ADD ANTAL TO ANTAL-I-LAGER.
(addera) (till)
IF SALD-TILLVERKADe IS EQUAL TO ’SALD’
(om) (är lika med)
SUBTRACT ANTAL FROM ANTAL-I-LAGER.
(dra ifrån) (från)
Det nya huvudregistret (för lageruppgifter) har, efter tillägg av transaktionerna (dagens uppgifter), följande utseende:
Antal Minsta
Lagernr Benämning i lager antal
00012 GUMMIPACKNING 00820 150
00150 GÅNGJÄRN 01233 200
00201 MÄSSINGSHANDTAG 00373 030
00208 TRÄSKRUV 02114 500
00301 FÖNSTERBRÄDA 04366 090
00404 SPIK 16834 999
Datorn kan inte omedelbart styras genom detta engelskliknande programspråk (som skrivs i klartext), utan det måste först översättas till ett för maskinen läsbart språk genom ett särskilt program som kallas ”kompilator”. (Kompilatorn genererar en maskinkod som egentligen bara består av ettor och nollor.) Nu är det möjligt för ett datorprogram att använda orden ”TRANSLAGERNR” och ”ANTAL”, men dessa ord har absolut ingen egen innebörd för maskinen. Den använder dem bara för att förbinda sina olika steg i behandlingen med specifika minnesområden för datalagring. Namnen ”JOHAN” och ”MARIA” skulle kunna ersätta dessa ord i hela programmet, och man skulle ändå få exakt samma maskinspråkskod. Språket COBOL är utformat med tanke på den som läser programdokumenten.
Tänkbara problem
Det här nämnda programmet kommer visserligen att fungera, men det är många felkällor som det ännu inte vidtagits åtgärder mot. Vad skulle hända, om ett kort hade stansats med ordet ”SALA” i stället för ordet ”SALD”? Och hur skulle det ha blivit, om talet hade stått en position åt höger? Eller hur skulle det ha varit, om det på sifferfältet stått ”12X4” i stället för ”1234”? Vår noggranne vän, datorn, skulle verkligen vara vilse. Och hur skulle det sedan vara, om det totala antalet lagerhållna artiklar, genom fel eller i verkligheten, skulle överskrida 99.999 eller om sifferuppgifterna var riktiga men tre dagar för sena? Man kan inte få ut rätta och pålitliga uppgifter utan inmatning av riktiga uppgifter. Bland dem som arbetar med datorer har detta begrepp gett upphov åt det självförklarande uttrycket: ”Skräp in — skräp ut.”f
Programmeraren måste kombinera sin fantasikraft i att tänka på alla eventuella fel med ihärdighet i att vidta åtgärder för vart och ett. I boken The Mythical Man-Month beskrivs det på följande sätt: ”Att utforma storslagna tankar är roligt; att finna besvärliga små fel är bara arbete. Med varje skapande verksamhet kommer tråkiga timmar av tröttsamt, omständligt arbete, och programmering är inget undantag.” Även om programmeraren gör sitt bästa, måste det som kommer ut ur vilket som helst datorsystem fortfarande underkastas mänsklig granskning och rättning, om det visar sig nödvändigt. Varken datorn eller programmeraren bör betraktas som ofelbar.
Rätt syn på datorer
Den elektroniska datorn, med sina mycket stora förmågor och möjligheter i fråga om hastighet och precision, är en utomordentlig slav till människans förfogande. Styrd på rätt sätt kan datorn befria människan från en hel del av den långtråkighet och missräkning som är förbunden med arbetsuppgifter som måste upprepas ideligen. Datorn kan göra människan fri att utnyttja sina intellektuella förmågor. Men de mänskliga egenskaperna empati, medkänsla, initiativ, insikt och fantasi kan inte programmeras in i en maskin. Som herre över maskinen måste människan vägleda den, granska dess arbete och rätta till dess åtgärder, när det blir nödvändigt.
Den elektroniska datorn och andra maskiner kan utföra häpnadsväckande uppgifter. Men de förblir en utvidgning av Guds händers verk, inte en förbättring av det. Datorn är en maskin som inte bör fruktas eller vördas av människan, utan som bör användas för att befria henne från vissa bördor och ge henne frihet att mera helt och fullt känna glädjen i att leva.
[Fotnoter]
a I definitionssatser för COBOL-program får bokstäverna Å, Ä och Ö inte användas; de får dock användas i själva datatexten.
b I definitionssatser för COBOL-program får bokstäverna Å, Ä och Ö inte användas; de får dock användas i själva datatexten.
c COBOL är ett engelskt datorprogram och kan endast skrivas på engelska; den svenska betydelsen är här skriven inom parentes.
d I definitionssatser för COBOL-program får bokstäverna Å, Ä och Ö inte användas; de får dock användas i själva datatexten.
e I definitionssatser för COBOL-program får bokstäverna Å, Ä och Ö inte användas; de får dock användas i själva datatexten.
f På grund av bland annat den lilla men mycket kraftfulla mikrodatorn håller detta uttryck på att bli föråldrat och ersättas. Programmeraren kan genom utnyttjande av mikrodatorn i inmatningsdelen till lägre kostnad få plats med kraftfulla och effektiva rättelseprogram. Tack vare detta kan det i stället vara möjligt att säga: ”Skräp in — bättre resultat ut.” Mikrodatorn är dock ett speciellt kapitel i datorns historia.