Historia Mela

The Story of Mel to archetypowy element folkloru programowania komputerowego . Jej bohater, Melvin Kaye , jest wzorowym „ prawdziwym programistą ”, którego subtelne techniki fascynują jego kolegów.

Fabuła

Ed Nather 's The Story of Mel szczegółowo opisuje niezwykłą sprawność programistyczną jego byłego kolegi, „Mel”, z Royal McBee Computer Corporation . Chociaż pierwotnie napisana prozą, historia Nathera została przez kogoś zmodyfikowana w formę „wierszy wolnej”, która stała się powszechna.

Niewiele wiadomo o Mel Kaye, poza faktem, że przypisuje mu się wykonanie „większości programowania” kompilatora ACT-1 z 1959 r. Dla komputera Royal McBee LGP-30 . W historii Nathera Kaye jest przedstawiana jako skłonna do unikania optymalizacji asemblerów na rzecz tworzenia kodu w celu wykorzystania dziwactw sprzętowych, na przykład wykorzystując rotację pamięci bębna LGP - 30 , aby uniknąć zapisywania pętli opóźniających w kodzie .

Historia, napisana przez Nathera, obejmowała pracę Kaye nad przepisaniem programu do gry w blackjacka z LGP-30 na nowszy system Royal McBee, RPC -4000 ; dyrektorzy ds. sprzedaży firmy poprosili o zmodyfikowanie programu, aby mogli przełączyć przełącznik na panelu przednim i spowodować przegraną programu (i wygraną użytkownika). Kaye niechętnie przystał na prośbę, ale ku własnej radości źle wykonał test , a zmiana zamiast tego powodowała, że ​​​​program wygrywał za każdym razem (a użytkownik przegrywał).

Po odejściu Kaye Nather został poproszony o naprawienie błędu. Badając kod, ze zdziwieniem odkrył, że zawiera on coś, co wyglądało na nieskończoną pętlę , ale kontrola nie pozostała w pętli. W końcu zdał sobie sprawę, że Kaye używa samomodyfikującego się kodu do przetwarzania elementów tablicy i zakodował pętlę w taki sposób, aby skorzystać z przepełnienia liczb całkowitych . Dodanie 1 do pola adresu instrukcji odnoszącej się do adresu x zwykle po prostu zmienia adres na x +1. Ale kiedy x był już najwyższym możliwym adresem, nie tylko adres zawijał się do 0, ale 1 było przenoszone do bitów, z których kod operacji byłby odczytywany - w tym przypadku zmieniając kod operacji na „skok do”, tak aby stała się pełna instrukcja „skok do adresu 0”. Wywarło to na Natherze tak duże wrażenie, że z szacunku zrezygnował z zadania i poinformował, że nie może znaleźć błędu.

Wczesne komputery konstrukcji maszyn IAS nie miały rejestru indeksów. Użycie samomodyfikującego się kodu było konieczne do operacji tablicowych. Instrukcja LGP-30 y 2000 „zastąpiła zawartość części adresowej słowa w komórce pamięci 2000 zawartością części adresowej słowa w akumulatorze”, aby ułatwić pisanie samomodyfikującego się kodu.

Historia

Esej został pierwotnie opublikowany w grupie dyskusyjnej Usenet „net.followup” 21 maja 1983 r. Przez utastro!nather ( adres e-mail UUCP ówczesnego Eda Nathera).

Komputery Royal McBee zostały opracowane i wyprodukowane przez Librascope , a dokumentację napisaną dla programu do gry w blackjacka napisał Mel Kaye z Librascope Inc. Wydanie The Librazette z sierpnia 1956 r., biuletynu Librascope, zawiera opowieść o szkoleniu na LGP-30 i wspomina, że ​​niektórzy inżynierowie aplikacji Librascope zostali przeniesieni na listę płac Royal McBee. Wśród wymienionych inżynierów jest Mel Kaye.

Na pierwszej stronie tego numeru jest zdjęcie przedstawiające tę pierwszą klasę programistów LGP-30 neofitów i instruktorów, w tym Mela Kaye.

Zobacz też

Dalsza lektura