Hamilton, Margaret

Margaret Hamilton stående vid en trave handskriven programkod. Traven är lika hög som hon själv.
Margaret Hamilton 1969 med källkoden till Apolloprojektets datasystem. Foto: Nasa.

(1936) – amerikansk systemutvecklare, chef för programutveck­lingen för Apolloprojektets datorsystem för månlandaren. (Det var Apolloprojektet som genomförde månlandningarna 1969—1972.) Hamilton arbetade då på MIT. Hennes program gjorde att den första månlandaren kunde full­följa landningen på månen, trots att dator­systemet i sista minuten krånglade på grund av överbelastning. Den amerikanska rymdflygstyrelsen Nasa har senare skrivit att ”be­greppen som hon och hennes medarbetare skapade har blivit byggstenarna för modern programvaruutveckling”. – Programkoden för månlandarens dator, Apollo guidance computer, lades 2016 ut på nätet. – Senare startade Margaret Hamilton företaget Hamilton Technologies (se htius.com) (tillfälligt nere i oktober 2020 – arkiverad). – Innan hon började arbeta för Nasa programmerade Margaret Hamilton den dator som Edward Lorenz† använde när han upptäckte kaosteorin. Margaret Hamilton lär vara den som myntade termen software engineering. Hon har också utvecklat arbetssättet ”Development before the fact” (länk) (tillfälligt nere i oktober 2020 – arkiverad). – Hon har bland annat mottagit utmärkelsen Ada Lovelace award. 2003 fick hon Nasas Exceptional space act award, se press­med­delande med motivering: länk. 2016 fick hon USA:s Presidential medal of freedom (länk). – Läs också artikel i Wired (länk). – Margaret Hamilton finns som Legofigur, se denna länk.

[it-historia] [margaret hamilton] [personer] [programmering] [ändrad 12 november 202o]

Turing, Alan

Alan Turing.
Alan Turing.

engelsk matematiker och datorpionjär (1912—1954). – Alan Turing beskrev 1936 en teoretisk modell av ett datorprogram och en dator, det som numera kallas för en Turingmaskin. Det gjorde han i en matematisk-logisk uppsats om det så kallade stopproblemet. Artikeln har blivit en klassiker inom dator­veten­skapen. (Läs också om Alonzo Church† och Church‑Turings hypotes.) – Under andra världskriget arbetade Turing på Bletchley Park med att knäcka tyskarnas kryptering. Han konstruerade där maskinen ”The Bombe”, som dechiffrerade meddelanden som hade krypterats med tyskarnas krypteringsapparat Enigma, men han var på sin höjd inspiratör till datorn Colossus†. – Efter kriget, 1946, konstruerade han datorn ACE†, och 1948 deltog han i konstruktionen av Manchester Mark I†. – 1950 beskrev han det som sedan dess kallas för Turingtestet i en artikel som blev banbrytande inom området artificiell intelligens. – I början av 1950‑talet studerade han också morfogenetik, det som nu kallas för fraktala former. Alan Turing var troligen också den första som programmerade en dator till att spela musik. Se denna artikel från British Museum med ljudfil (en bit ner på sidan). – 1952 dömdes Turing för homosexuella handlingar, och 1954 dog han i vad som då tolkades som själv­­mord. (Att det var själv­­mord ifråga­­sattes 2012 av professor Jack Copeland, se denna artikel.) – I september 2009 beklagade Stor­britanniens dåvarande premiärminister Gordon Brown officiellt hur Turing hade behandlats. Han er­kände att utan Turings insatser kunde andra världskrigets förlopp ha blivit mycket annorlunda. På jul­afton 2013 benådades Turing postumt. – Se här och här (pdf för nerladdning). – Turingpriset, A M Turing Award, är upp­kallat efter Alan Turing. – Standardbiografin om Alan Turing är Alan Turing: The Enigma (1983) av Andrew Hodges (länk). David Lagercrantz har skrivit en roman om Alan Turing, Synda­fall i Wilmslow (2009, se intervju i Computer Sweden). Filmen Breaking the code från 1996 handlar om Turings liv, liksom The imitation game från 2014 – se IMdB (länk). – Se också The Turing digital archive och Andrew Hodges webbplats Alan Turing: the enigma. – En av Turings anteckningsböcker såldes i april 2015 på auktion i New York för 1 025 000 dollar.

[alan turing] [datorpionjärer] [datorvetenskap] [it-historia] [matematik och logik] [ändrad 27 september 2020]

stopproblemet

Tecknad bild av superdatorn Deep Thought från Liftarens guide till galaxen.
Datorn Deep Thought som behövde 7,5 miljoner år för att räkna ut svaret.

(the halting problem) – frågan om det på förhand går att räkna ut ifall en körning av ett datorprogram kommer till ett slut någon gång, eller om beräkningen fortsätter i all evighet. – Alan Turing† bevisade i sin berömda artikel ”On computable numbers with an application to the Entscheidungsproblem” (länk) från 1936 att uppgiften är olöslig. – Observera att detta gäller när frågan ska besvaras enbart med mekaniska metoder och för varje tänk­bar beräkning. En matematiskt kunnig mänsklig bedömare kan ofta avgöra ifall en beräkning kommer att fortsätta i evighet eller om den tar slut någon gång, men stopproblemet gäller ifall man kan programmera en dator så att den avgör saken i alla tänkbara fall och utan mänsklig hjälp. – Vi vet till exempel att om vi sätter en dator att räkna ut det exakta värdet på pi så kommer den aldrig att bli klar, men det ”vet” inte datorn. Att det är så har mänskliga matematiker räknat ut, och det har de inte gjort genom att räkna på pi oändligt länge. Hur länge man än räknar på värdet av pi så får man nämligen inte, enbart genom att fortsätta räkna, någon information om ifall räknearbetet tar slut någon gång, eller aldrig tar slut. – I uppsatsen ”On computable numbers…” beskrev Turing också det som senare blev känt som Turing­maskinen. – Några månader före Turing hade Alonzo Church† bevisat samma sak, fast utan att beskriva en maskin. – Stopproblemet är besläktat med avgörbarhetsproblemet (das Entscheidungsproblem), men också med Kurt Gödels† ofullständig­hets­sats. – Läs också om omega (Chaitins konstant).

[datorvetenskap] [matematik och logik] [ändrad 6 juni 2017]

Turingmaskin

En riktig Turingmaskin, byggd av amerikanen Mike Davis.
En riktig Turingmaskin, byggd av amerikanen Mike Davey.

en teoretisk dator som beskrevs 1936 av Alan Turing†. Det var en ren tankekonstruktion. (1936 fanns inga datorer.) – En Turingmaskin mot­svarar ett modernt datorprogram, men när man talar om Turingmaskiner menar man ofta universella Turingmaskiner, som kan sägas mot­svara datorer. – Alan Turing beskrev maskinen i artikeln ”On computable numbers with an application to the Entscheidungsproblem (länk). Artikeln handlade om ett matematiskt problem, stopproblemet, inte om datorer. Turing beskrev det som senare fick heta Turingmaskin enbart för att göra ett matematiskt bevis åskådligt. Det var inte en beskrivning av något som Turing verkligen tänkte bygga. – Turingmaskinen har en pappersremsa som matas fram och tillbaka genom ett läs- och skrivhuvud enligt bestämda regler. Det finns flera uppsättningar regler som kallas för tillstånd, och i reglerna ingår övergångar från ett tillstånd till ett annat. Skrivhuvudet kan läsa, radera och skriva tecken på remsan. Man programmerar Turingmaskinen med tecken på remsan, och Turingmaskinen matar sedan, enligt reglerna, remsan fram och tillbaka, läser, raderar och skriver samt växlar tillstånd tills den kommer till en regel som säger ”stopp”. Då stannar maskinen och lösningen på problemet kan avläsas på remsan. Detta är helt genomförbart, bortsett från de praktiska problemen med pappersremsan, pennan och radergummit. – I princip kan varje problem som kan lösas med ett modernt datorprogram också lösas av en motsvarande Turingmaskin, men naturligt­vis är det ogörligt att använda en maskin med pappers­remsa. Man brukar därför simulera Turing­maskiner i datorer. (Se här.) Det är nämligen bra att öva sig på program för Turingmaskiner när man ska lära sig programmera. – Se också finit tillståndsmaskin. – Efter andra världskriget konstruerade Alan Turing en dator, ACE som till stor del baserades på de principer som Turing beskrev i sin artikel. – Turingmaskinen införde idén om lagrade program i datortekniken. Idén togs upp av John von Neumann† i hans arkitektur för datorer, von Neumann‑arkitekturen. Den är mindre sofistikerad än Turings modell, men mer överskådlig, och blev allenarådande i datortekniken. – Professor Bernard Hodson (länk) i Kanada har utvecklat en modern programmeringsteknik baserad på Turings principer. – Matematikern Stephen Wolfram arrangerade 2007 en tävling om Turingmaskiner, se här. – Mike Davey beskriver hur han byggde en riktig Turingmaskin (se bilden) i denna artikel. – Richard Ridel har byggt en Turingmaskin av trä, se denna video.

[it-historia] [matematik och logik] [ändrad 12 mars 2018]

Santa Cruz Operation

(SCO) – ett uppköpt amerikanskt företag som tidigare sålde Unix för persondatorer; det som återstår är numera del av Oracle. Santa Cruz Operation ska inte förväxlas med The SCO Group†: det var ett annat företag, som hade tagit över förkort­ningen SCO. – Santa Cruz Ope­ration grundades 1979 och var det första företag som på allvar satsade på Unix för persondatorer. Företaget marknadsförde först Xenix†, utveck­lat av Microsoft. 1989 bytte operativsystemet namn till SCO Unix. 1995 köpte SCO rätten att förvalta och ut­veckla Unix System V (men inte rätten till varumärket Unix – se X/Open†) från Novell†. Novell hade i sin tur köpt det från AT&T, som hade utvecklat Unix. Under några år försökte SCO ena branschen kring ett en­het­ligt Unix. 1998 lanserades därför en ny version av SCO:s operativsystem under namnet SCO Unix­Ware. Men sam­tidigt hade Linux blivit en svår konkurrent på Intel‑platt­formen. SCO började därför att också marknadsföra Linux. – Under åren 2000 och 2001 sålde SCO större delen av sina till­gångar, inklusive UnixWare, till företaget Caldera†, som 2002 bytte namn till The SCO Group† och gick en turbulent fram­tid till mötes. Det som fanns kvar av gamla SCO bytte först namn till Tarantella, men köptes 2005 av Sun†, som i sin tur har köpts av Oracle. Varumärket används inte. – Svensken Lars Turndal (1936—1999) var vd för SCO 1993—1995.

[företag] [it-historia] [unix] [uppköpt] [ändrad 10 mars 2020]

Church, Alonzo

(1903—1995) – amerikansk matematiker. Han bevisade 1936 i artikeln ”A note on the Entscheidungsproblem” (se avgörbarhetsproblemet) att det finns mate­matiska problem som det inte går att lösa på med mekaniska metoder. Det var samma sak som Churchs studie­­kamrat Alan Turing† bevisade senare samma år i sin upp­sats om stopproblemet. Turing visade senare att de två bevisen var likvärdiga. Båda bevisen byggde på Kurt Gödels† ofullständighetssats. – Church‑Turings hypotes säger att alla matematiska beräkningar som kan beskrivas i ett ändligt antal steg (med en algoritm) kan lösas av en maskin. Om en nog­­grann men fantasi­lös människa med papper och penna (givet obegränsat med tid) kan räkna ut lösningen (lösa problemet mekaniskt) kan en maskin också göra det. Men: beräkningen kan pågå i all evighet. Till exempel är det lätt att beskriva divisionen 2 delat med 3, men det tar en evig­het att räkna ut svaret med decimala siffror (0,6666666……) om man inte sätter stopp. För att inte tala om sådant som att räkna ut värdet på pi. – Det som både Church och Turing bevisade var att även om en maskin kan utföra alla beräkningar som kan uttryckas som algoritmer, så kan maskinen inte avgöra ifall beräkningen tar slut någon gång, eller om den fort­sätter i all evighet. – En artikel på engelska om vanliga missuppfatt­ningar av Church‑Turings hypotes finns här.

[alonzo church] [datorvetenskap] [för- och bihistoria] [personer] [ändrad 6 november 2019]