Berättelsen om Mel
The Story of Mel är ett arketypiskt stycke datorprogrammeringsfolklore . Dess ämne, Melvin Kaye , är en exemplarisk " riktig programmerare " vars subtila tekniker fascinerar hans kollegor.
Berättelse
Ed Nathers The Story of Mel beskriver den extraordinära programmeringsförmågan hos en tidigare kollega till honom, "Mel", på Royal McBee Computer Corporation . Även om Nathers berättelse ursprungligen skrevs i prosa, modifierades den av någon till en "fri vers"-form som har blivit utbredd.
Lite är känt om Mel Kaye, förutom det faktum att han krediterades för att ha gjort "huvuddelen av programmeringen" på 1959 års ACT-1-kompilator för Royal McBee LGP-30- datorn. I Nathers berättelse framställs Kaye som att han är benägen att undvika att optimera assemblers till förmån för att skapa kod för att dra fördel av hårdvaruquirks, till exempel att dra fördel av rotationen av LGP-30: s trumminne för att undvika att skriva fördröjningsloopar i koden .
Berättelsen, som skriven av Nather, involverade Kayes arbete med att skriva om ett blackjack- program från LGP-30 till ett nyare Royal McBee-system, RPC -4000 ; Företagets försäljningschefer hade begärt att få modifiera programmet så att de kunde vända på en frontpanelsbrytare och få programmet att förlora (och användaren att vinna). Kaye gick motvilligt med på begäran, men till sin egen glädje fick han test , och bytet skulle istället göra att programmet vinner varje gång (och att användaren förlorar).
Efter Kayes avgång ombads Nather att fixa felet. Medan han undersökte koden, blev han förbryllad över att upptäcka att den innehöll vad som verkade vara en oändlig slinga , men kontrollen fanns inte kvar i slingan. Så småningom insåg han att Kaye använde självmodifierande kod för att bearbeta element i en array, och hade kodat slingan på ett sådant sätt att han kunde dra fördel av ett heltalsspill . Att lägga till 1 i adressfältet för en instruktion som hänvisade till adress x ändrade normalt bara adressen till x +1. Men när x redan var den högsta möjliga adressen, svepte inte bara adressen till 0, utan en 1 bars in i bitarna från vilka opkoden skulle läsas – i det här fallet ändrade man opkoden till att "hoppa till" så att fullständig instruktion blev "hoppa till adress 0". Detta imponerade så mycket på Nather att han av respekt gav upp uppgiften och rapporterade att han inte kunde hitta felet.
De tidiga datorerna med IAS-maskindesign hade inget indexregister. Att använda självmodifierande kod var nödvändigt för arrayoperationer. LGP-30-instruktionen y 2000
"ersatte innehållet i adressdelen av ordet i minnesplats 2000 med innehållet i adressdelen av ordet i ackumulatorn" för att underlätta skrivning av självmodifierande kod.
Historia
Uppsatsen publicerades ursprungligen i Usenet- nyhetsgruppen "net.followup" den 21 maj 1983 av utastro!nather ( UUCP -e-postadressen till Ed Nather vid den tiden).
Royal McBee-datorerna utvecklades och tillverkades av Librascope , och dokumentationen som skrivits för blackjack -programmet skrevs av Mel Kaye från Librascope Inc. Augusti-upplagan 1956 av The Librazette , Librascopes nyhetsbrev, innehåller en berättelse om träning på LGP-30 , och nämner att vissa Librascope-applikationsingenjörer överfördes till Royal McBees lönelista. Bland de namngivna ingenjörerna finns Mel Kaye.
Det finns ett fotografi på framsidan av det numret som visar den första klassen av neofytiska LGP-30-programmerare och instruktörerna, inklusive Mel Kaye.
Se även
Vidare läsning
- utastro!nather (1983-05-21), The Story of Mel - En ny artikel ägnad åt programmeringens *macho*-sida gjorde det kala och unyanserade uttalandet: Real Programmers skriver i Fortran. , Greg Lindahl, arkiverad från originalet 2017-03-09 , hämtad 2017-03-09 (OBS. En kopia av originalprosaversionen.)
- utastro!nather (1983-05-21), re: Real Programmers ... , Rob Stampfli, arkiverad från originalet 2018-02-12 , hämtad 2018-02-11 (En helt originalkopia av Ed Nathers Usenet-inlägg, med rubriker)
- Nather, Ed (2003-09-12) [1983-05-21], The story of Mel, a Real Programmer , FOLDOC , arkiverad från originalet 2017-03-09 , hämtad 2017-03-09 (OBS. Interpunktion tillagd/korrigerad för läsbarhet. Innehåller länk till programband av blackjack för LGP-30)
- Jennings, Tom, red. (2000-11-30) [1956-10-18], Mel the Programmer: LGP-30 Coding Sheet - Program 13.0 , arkiverad från originalet 2017-03-09 , hämtad 2017-03-09 (Mel Kayes signatur] på ett kodark för LGP-30.)
- Kaye, Mel , Manual for Blackjack Game (PDF) , USA: Librascope, Inc. , RPC-4000 Program W1-01.0, arkiverad (PDF) från originalet 2017-03-09 , hämtad 2017-03-08 (OBS. Förmodligen ämnet för den ursprungliga berättelsen.)
-
Seibel, James (2015-04-08), 'The Story of Mel' Explained , hämtad 2018-02-18
{{ citation }}
: CS1 underhåll: url-status ( länk ) (OBS. Detaljerad analys av historien, förklarande de tekniska detaljerna.)- "Macho-programmerare, trumminne och en kriminalteknisk analys av 1960-talets maskinkod" . freeCodeCamp.org . 2 april 2018. Innehåller ännu fler tekniska detaljer
- van den Bogaard, Adrienne (2008). "Stijlen van programmeren 1952-1972" . Studium . 1 (2): 128-144. doi : 10.18352/studium.1459 .
-
Mel's Loop - A Comprehensive Guide to The Story of Mel , 2022-05-21
{{ citation }}
: CS1 underhåll: url-status ( länk ) (En forskning om historiens ursprung, dess karaktärer, Mel Kayes biografi och hacker folklore i allmänhet) - En redditor hittade en dator av den typ som Mel använde i sina morföräldrars källare.