Datalär 84 ---Teknisk Utveckling, en Historisk Översikt

Thomas Sjöland

CSALAB / Computer Systems Architecture Laboratory

TTDS /Institutionen för Teletrafik och Datorsystem

KTH / KgI. Tekniska Högskolan i Stockholm

Sverige

Oktober 1984

Vi beskådar idag vad som ofta kallas "datorrevolutionen". Utvecklingen av ny teknik tvingar som alltid tidigare i mänsklighetens historia fram förändringar i vårt samhälle. De kommersiella intressena för denna utveckling är naturligtvis enorma. Denna samhälleliga revolution som vi nu bevittnar jämförs av många med den som följde på uppfinnandet av boktryckarkonsten eller mekaniseringen av jordbruket. Jag försöker här ge en kort historisk överblick över dessa skeenden.

1. Historisk tid: Mekaniska datorer

Att bygga maskiner som kan behandla information och därmed i förlängningen också "tänka" har varit ett hägrande mål under lång tid. Universalgeniet Schickard anses ha byggt den första mekaniska räknemaskinen 1623. 1643 byggde den då 20- årige Blaise Pascal en liknande maskin. Han säges vara den förste som påpekat att man därigenom mekaniserat ett beteende som tidigare betraktats som specifikt "själsligt". Under 1700-talet utvecklades hålkortsstyrda vävstolar. och redan 1812 fanns i Frankrike 11000 automatiska vävstolar. Att göra vad vi idag kallar för en generell dator. dvs. en programmerbar maskin med aritmetisk enhet och minne var dock omöjligt innan den moderna elektroniken utvecklats. Ett antal envisa personer gjorde dock tidigt förs!ag till hur en informationsbehandlande automat skulle se ut och försökte även att genomföra designen i praktiken. Den mest kända av dessa insatser är kanske det livsverk som Charles Babbage satsade på sin "Analytical Engine". Han byggde också en prototyp med de mest avancerade komponenter som hans tid kunde erbjuda. Men den mekaniska tekniken räckte inte till. Han dog utfattig och besviken i slutet av artonhundratalet.

2. 1880-1940: Automatteorin utvecklas inom den matematiska logiken

Under seklets första årtionden sysselsatte sig några av mänsklighetens skarpaste hjärnor med att bygga upp grunderna inom den matematiska teorin på nytt. Deras syfte var att placera matematiken på en teoretiskt "fast" grund genom att visa att alla matematiska sanningar kunde härledas ur ett antal axiom genom mekaniska härledningar. Resultatet av deras ansträngningar var att kunskapen om mekaniska beräknings- och bevismetoder blev till en formell vetenskap. Många blev dock besvikna när logikern Kurt Gödel 1931 publicerade beviset för den så kallade "oavgörbarhetssatsen" som sätter en gräns för vad som kan mekaniskt beräknas.

Dessa i grunden helt teoretiska ambitioner kom att få ett avgörande inflytande på designen av datorerna framförallt genom den s.k. "automatteorin" där matematiker och logiker som Alan Turing och john von Neumann gjorde avgörande insatser. på senare tid har den så kallade "predikatlogiken" som utvecklades av tysken Gottlob Frege runt sekelskiftet och förfinades av bl.a. Bertrand RusselI och nämnde Gödel under seklets första decennier. kommit att få viktiga tillämpningar inom de datalogiska delområdena kunskapsrepresentation och artificiell intelligens och som teoretisk bas för logikprogrammeringsspråken.

3. 1940-talet: Maskiner byggda med elektronrör --"elektronhjärnor"

Under andra världskriget pågick en intensiv kapplöpning med tiden både i Tyskland och hos de allierade för att få fram den första datorn. Syftet var bl.a. att kunna I dechiffrera fiendesidans krypterade radiotrafik. I Tyskland byggde Konrad Zuse 1941 världens första fungerandeprogramstyrda räknemaskin, "Z3", baserad på I reläteknik. I USA byggde John von Neumann av den så kallade ENIAC några år senare. ENIAC bestod av ett rum fullt med hopkopplade elektronrör. Anordningen konsumerade enorma mängder energi och eftersom rören ständigt gick sönder var driftssäkerheten låg, men den fungerade.

4. 1950-talet: Transistorn ersätter elektronröret

Genom utvecklingen av halvledare som ersättning för den klumpiga rörtekniken kunde man på femtiotalet utveckla datorer av en dittills aldrig skådad komplexitet. Genom att datorer blev tillgängliga för forskare på högskolor och i industrin skapades nya områden för ingenjörernas uppfinningsrikedom inom programvaruteknologin, dvs. konsten att programmera dessa generella beräkningsautomater för olika uppgifter. Assemblyspråket, dvs. en symbolisk. men direkt, representation av maskinens instruktioner, ersatte den rena binärkodningen som tidigare varit ett tidsödande arbete. Men man stannade inte vid detta. Tidigt insåg man att människor behöver ett enklare sätt att programmera komplicerade uppgifter där man kan abstrahera bort onödiga detaljer. Med begreppet "högnivå-språk" kom man att åsyfta formalismer som mera liknar en matematisk notation än de rena maskininstruktionerna. Zuses "Plankalkül" från 40-talet kan anses vara det första problemorienterade programmeringsspråket. Vid IBM's laboratorium i San Jose designades under femtiotalet FORTRAN av John Backus och trots att språket utsatts för en intensiv kritik genom åren bl.a. av Backus själv så används det fortfarande i många tillämpningar.

Samtidigt med FORTRAN, som huvudsakligen avsågs att användas för numeriska uppgifter, utvecklades på femtiotalet språk för algebraisk formelmanipulation.

_"John McCarthy omformulerade lambdakalkylen, som introducerats av logikern Alonzo Church 1941, till ett programmeringsspråk som fick namnet LISP. Detta språk har många viktiga fördelar och antogs tidigt som "AI-språket" av de forskare som sysslade med att försöka efterlikna mänskliga tankemekanismer med dator. LISP fick tidigt ett relativt oförtjänt rykte om sig att vara ett svårt språk. Det vann dock terräng med tiden och används numera i många sammanhang.

I Sverige gjordes en viktig pionjärinsats av filosofiprofessorn Dag Prawitz inom området automatisk bevisföring. Hans (och några andras) insatser hade en avgörande betydelse för professor J. A. Robinsons utveckling av den teoretiska basen för programmeringsspråket PROLOG under 60-talet.

5. 1960-talet: Stordatorernas årtionde

Under sextiotalet utvecklades datorerna i riktning mot stora, snabba, men dyra maskiner. Oftast kördes programmen av operatörer och uppgifter matades in med hålkortsteknik. Datortiden var dyr och måste minimeras. Detta var datacentralernas tidsålder. Eftersom programutvecklingen också ofta gjordes utan direkt kontakt med en dator blev felsökningen dyrbar och man behövde andra verktyg som inte gav upphov till så många svårfunna programmeringsfel. 1960 standardiserades Algol60 och 1967 annonserade Norsk Regnesentral SIMULA67 som var en utveckling av Algol60 med många unika egenskaper. Dessa språk som haft sin huvudsakliga användning som utbildningsspråk ger mindre risker för svårfunna fel än FORTRAN men av olika skäl spred de sig till en början inte utanför högskoremiljön. FOA i Stockholm har dock utgjort en drivande kraft i utvecklingen av SIMULA.

Många originella datormodeller såg dagens ljus under denna period. men det naturliga urval som marknaden obarmhärtigt utsätter nya produkter för gjorde att de flesta inte blev några succéer. Även maskiner med bra grundidéer slogs ut av en hård konkurrens. Andra mindre innovativa maskiner kunde etablera sig i kraft av en aggressiv marknadsföring.

6. 1970-talet: Minidatorns epok, mikroprocessorns födelse

På sjuttiotalet blev datorerna mindre och billigare. Det blev möjligt för enskilda institutioner och medelstora företag att köpa sin egen dator. Ett typiskt exempel på en sjuttiotalsdator är PDP-11. För att bättre kunna utnyttja datorresurserna utvecklades tidsdelade operativsystem och system för interaktiv programmering. Med dessa komplexa programsystem kunde flera personer samtidigt köra på samma dator. Omloppstiden för databehandlingen minskade härigenom i många fall drastiskt.

Operativsystemet UNIX vann under sjuttiotalet många hängivna anhängare i universitets- och forskningsmiljön och används idag i större utsträckning än någonsin.

En annan viktig utveckling som blev nödvändig under sjuttiotalet var skärmterminalerna. Dessa möjliggjorde en avancerad presentation av informationen på användarens skärm istället för de klumpiga pappersutskrifter man tidigare varit hänvisad till. Området "grafisk databehandling" utvecklades under sjuttiotalet med bl.a. revolutionerande tekniker för automatisk typografi som en viktig del.

I mitten av sjuttiotalet föddes mikroprocessorn, en billig datorkomponent som kom att få oanade tillämpningsområden utanför dess tilltänkta användning som kontrollprocessor för enkla automater som tvättmaskiner och bensinpumpar. Tack vare insatser av entusiaster som tröttnat på de stora datorföretagens oligopolposition föddes persondatorn genom att man byggde upp ett minimalt datorsystem runt en mikroprocessor.

På programmeringssidan gjordes många försök att introducera språk i Algol-traditionen som ersättare för de dominerande FORTRAN och COBOL. Pascal och ADA är viktiga exempel på detta.

7. 1980-talet: Datorrevolutionen sprids till samhällets alla delar

Genom utvecklingen av integrerade kretsar med allt bättre prestanda kom allt kraftfullare persondatorer att knappa in på de större maskinernas försprång. Ett litet fåtal typer av processorer gav upphov till den djungel av olika persondatorer som vi alla ser idag. Dessa maskiner används av en person i taget och även om de fortfarande saknar den flexibilitet som minidatorerna ger så är de kommersiella och samhälleliga effekterna av dessa billiga maskiner enorma. De områden som påverkas av införandet av datorer i denna stora skala är hanteringen av dokument, brev och information av alla slag som hittills utnyttjat papper. Nu finns möjligheten att generera dokument och även kopiera, bearbeta och sända desamma helt elektroniskt över hela jordklotet utan att det någonsin finns ett papper inblandat på vägen. Det "papperslösa kontoret" är en av de visioner som vägleder utvecklingen inom området kontorsautomation. Inom tillverkningsindustrin kan de billiga datorsystemen användas för att övervaka och styra tillverkningsprocesser och robotar.

Arbetsstationen är en typ av persondator som kommit fram under de senaste åren. Denna har ofta en avancerad programvara och en grafisk skärm för att presentera informationen på ett människovänligt sätt. Speciella enheter för att mata in grafisk information som den mycket populära s.k. "musen" förenklar interaktionen med datorn radikalt. Det finns även kretsar för att generera syntetiskt tal som gör det möjligt för t.ex. blinda, eller personer vars arbetsuppgifter tvingar dem att ha blicken riktad åt annat håll att arbeta med en dator. Experiment förekommer bl.a. på XEROX i Palo Alto, Kalifornien med att inkorporera talade meddelanden som har lästs in via mikrofon i dokument med skriven eller grafisk information. Dessa kan sedan skickas med hjälp av elektronisk post över långa avstånd eller lagras.

Datornät, dvs. sammankopplade datorer med vars hjälp man enkelt kan utväxla information används idag både inom högskolor och industrin. på vår institution är våra vax-datorer t.ex. anslutna till det ickekommersiella internationella UNIX- nätet "usenet". Med hjälp av detta kan vi få tillgång till de senaste resultaten inom den datalogiska forskningen på en mycket obyråkratiskt sätt. Med hjälp av elektronisk post och även elektroniska anslagstavlor om olika ämnen får en stor grupp forskare och studenter inom det datalogiska området kontakt med personer runt hela världen som är intresserade av samma saker som de själva. Även intressanta program och korrigeringar av fel som någon har upptäckt i det gemensamma operativsystemet distribueras på detta sätt. Med detta hjälpmedel kan risken för ett onödigt dubbelarbete inom forskning och utveckling minskas. Nätet används speciellt för kortare meddelanden som annars skulle ha distribuerats via brev eller inte alls, men även diskussioner om olika frågor förs här på ett helt nytt sätt.

Genom införandet av s.k. lokala nätverk kan de olika datorerna på en arbetsplats kommunicera på ett effektivt sätt. Det är möjligt att med hjälp av ett lokalt nät distribuera en uppgift. på ett antal maskiner. Om den nödvändiga kommunikationen är stor räcker dock inte denna teknologi till utan mera direkta förbindelser måste etableras mellan datorerna.

För speciellt krävande beräkningsuppgifter har det under sjuttio- och åttiotalen utvecklats så kallade "superdatorer". Dessa används för t.ex. applikationer inom meteorologin och fysiken eller för att skapa film med datorhjälp. Deras speciella teknologi gör att de är mycket dyra och de körs i allmänhet. på samma sätt som sextiotalets stordatorer, dvs. med i förväg preparerade beräkningsuppgifter i stor skala. I Sverige finns en superdator i Linköping som används bl.a. av SAAB för JAS-projektet men även av olika speciella universitetsprojekt inom t.ex. fysiken med krav på snabb hantering av stora beräkningsvolymer.

8. 1990-talet: Femte generationens datorer

Det är givetvis omöjligt att exakt förutspå framtiden. Vad man kan göra är att beskriva några av de projekt för utvecklingen av 1990-talets och 2000-talets datorer som pågår i världen idag.

1980 annonserades det japanska "Fifth Generation Computer"-projektet som givit upphov till en omfattande aktivitet inte minst i USA men även i Västeuropa. I ett omfattande program för att utmana USA som den ledande nationen inom datorteknologin arbetar Japan inom i huvudsak två områden:

(1) Produktion av hypersnabba superdatorer som skall konkurrera med de amerikanska CRAY, CYBER m.fl. Genom att använda en avancerad teknologi och dessutom försöka exploatera paralleIlismen i problemen och Iåta flera beräkningselement samarbeta säger sig japanerna försöka uppnå datorer som är 100-1000 gånger snabbare än dagens. Redan idag tillverkar t.ex. HITACHI en superdator vars prestanda är i paritet med den hos CRAY men till ett avsevärt lägre pris. En parallell superdator tänks av många forskare använda s.k. "dataflow"-språk, där datorn automatiskt delar upp problemet i delproblem som löses av olika processorer. Viktiga insatser inom detta område har gjorts i USA av forskargrupper bl.a. på MIT. I Sverige arbetar man vid Chalmers i Göteborg med denna typ av språk. Datorn GOP i Linköping kan sägas utgöra en originell lösning på många problem av denna typ.

(2) Det egentliga "Fifth Generation"-projektet innebär utvecklingen av datorer som skall kunna användas och programmeras av icke-professionella programmerare till att lösa komplicerade uppgifter. Ett viktigt delmål är utvecklingen av automatiska översättningssystem för översättning mellan japanska och europeiska språk. Detta är ett mycket svårt problem, något som även japanerna inser, och de ursprungligen högt ställda förväntningarna har på sistone tagit sig mera blygsamma former. Råöversättning av t.ex. tekniska texter förefaller dock vara ett rimligt mål för detta projekt. Att programmera datorerna att förstå kommandon givna i naturligt språk är också en uttalad målsättning. För att kunna hantera dessa nya och komplexa uppgifter har japanerna insett behovet av helt nya, mera flexibla programmeringsspråk och tekniker som expertsystem o.d. Till mångas förvåning, inte minst många amerikanska AI-forskares, valde forskningsinstitutet ICOT att basera sitt femte-generations-projekt på det i Frankrike och England utvecklade logikprogrammeringsspråket PROLOG.

Även svenska forskare som professorna Sten-.Åke Tärnlund och Åke Hansson vid UPMAIL i Uppsala var tidigt involverade i denna utveckling. På UPMAIL har också utvecklats världens för närvarande kanske mest avancerade PROLOG-system för LISP-baserade arbetsstationer. För att öka snabbheten i hanteringen av komplexa operationer är det nödvändigt att exploatera den möjliga paralleIlismen i problemlösningen. Inom CSALAB på KTH arbetar en forskargrupp med detta delproblem. I Linköping arbetar forskarna bl.a. med expertsystemsprogrammering.

Andra projekt, t.ex. inom USAs försvar ställer upp mera specifika mål som kanske har större chans att genomföras till 100%. Det rör sig bl.a. om utveckling av realistiska simulatorer med naturtrogen grafik. De ekonomiska resurser som ställs till förfogande i USA, Japan och inom EG, är stora, så utvecklingen begränsas huvudsakligen av bristen på kompetenta utvecklingsingenjörer, framförallt på programmeringssidan. Ingenjörsutbildningen har inte kunnat hålla jämna steg med den snabba utvecklingen.

Den fortgående utvecklingen inom alla datorteknologins olika delområden kommer oavsett resultaten av femtegenerationssatsningen att leda till att datorerna kommer att bli alltmer tillgängliga i samhället. Sofistikerade programvaror gör att även människor som inte är experter får lättare att förklara sina problem för datorerna och därigenom kunna anpassa dem till sina specifika behov.

9. 2000-talet: Associativa datorer

En typ av maskiner som länge funnits på papperet men där realiserandet ännu stöter på oöverstigliga problem är de så kallade associativa datorerna. Vår egen hjärna anses av många vara just en sådan maskin, som genom att kombinera miljarder av enkla element, neuron, kan utföra mycket komplicerade uppgifter. Kanske kommer något genombrott att leda till att man finner ut hur en maskin konstruerad av människor men med samma principiella organisation (och packningstäthet!) som en biologisk hjärna kan hjälpa oss att sköta uppgifter som inte ens sciencefictionförfattarna föreställer sig idag.