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