История Мела
«История Мела» — архетипический фрагмент фольклора компьютерного программирования . Его объект, Мелвин Кэй , [ 1 ] является образцовым « настоящим программистом », чьи тонкие методы очаровывают его коллег.
История
[ редактировать ]Эда Натера « В книге История Мела» подробно описывается необычайное мастерство программирования его бывшего коллеги «Мела» из Royal McBee Computer Corporation . [ 2 ] [ 3 ] Хотя история Натера изначально была написана в прозе, она была кем-то изменена в форму «свободного стиха», которая получила широкое распространение. [ 4 ] [ 5 ]
О Меле Кее мало что известно, за исключением того факта, что ему приписывают выполнение «основной части программирования» компилятора ACT-1 1959 года для компьютера Royal McBee LGP-30 . [ 6 ] [ 7 ] В рассказе Нэтера Кэй изображается склонным избегать оптимизации ассемблеров в пользу создания кода, использующего особенности аппаратного обеспечения, например, использующего вращение -30 LGP барабанной памяти , чтобы избежать записи циклов задержки в код . .
История, написанная Нэтером, включала работу Кея по переписыванию программы блэкджека с LGP-30 на более новую систему Royal McBee, RPC-4000 ; Руководители отдела продаж компании попросили изменить программу так, чтобы они могли щелкнуть переключателем на передней панели и привести к проигрышу программы (а к победе пользователя). Кэй неохотно согласился на просьбу, но, к своему удовольствию, он неправильно выполнил тест , и вместо этого переключатель каждый раз приводил к тому, что программа выигрывала (а пользователь проигрывал).
После ухода Кея Натера попросили исправить ошибку. Изучая код, он был озадачен, обнаружив, что он содержит что-то вроде бесконечного цикла , однако управление внутри цикла не остается. В конце концов он понял, что Кэй использовал самомодифицирующийся код для обработки элементов массива, и запрограммировал цикл таким образом, чтобы воспользоваться преимуществами целочисленного переполнения . Добавление 1 в поле адреса инструкции, которая ссылается на адрес x, обычно просто меняет адрес на x +1. Но когда x уже был максимально возможным адресом, адрес не только оборачивался до 0, но и 1 переносилась в биты, из которых должен был быть прочитан код операции — в этом случае код операции менялся на «перейти к», чтобы Полная инструкция превратилась в «перейти к адресу 0». Это настолько впечатлило Натера, что он из уважения отказался от задания и сообщил, что не может найти ошибку.
Первые компьютеры IAS не имели индексного регистра. Использование самомодифицирующегося кода было необходимо для операций с массивами. Инструкция ЛГП-30 y 2000
«заменил содержимое адресной части слова в ячейке памяти 2000 содержимым адресной части слова в аккумуляторе», чтобы облегчить написание самомодифицирующегося кода. [ 8 ]
История
[ редактировать ]Эссе было первоначально опубликовано в Usenet новостной группе «net.followup» 21 мая 1983 года пользователем utastro!nather ( в то время адрес электронной почты UUCP Эда Натера). [ 2 ] [ 3 ]
Компьютеры Royal McBee были разработаны и изготовлены компанией Librascope , а документацию, написанную для программы блэкджека , написал Мел Кэй из Librascope Inc. В выпуске The Librazette , информационного бюллетеня Librascope за август 1956 года, содержится рассказ об обучении на LGP-30. и упоминает, что некоторые инженеры по приложениям Librascope были переведены в штат Royal McBee. Среди названных инженеров — Мел Кэй. [ 1 ]
На первой странице этого выпуска есть фотография, на которой изображен первый класс начинающих программистов LGP-30 и инструкторов, включая Мела Кея. [ 9 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Воспоминания о Либраскопе» (PDF) . Либразетта . Либраскоп Инк.
- ^ Перейти обратно: а б Раймонд, Эрик С. , изд. (1 июля 1992 г.). «Файл жаргона, версия 2.9.10, 1 июля 1992 г. (jargon2910.ascii.gz)» ( GZ ) . строка 20505. Архивировано из оригинала 9 марта 2017 г. Проверено 1 июля 2014 г.
- ^ Перейти обратно: а б Мэтт Кроуфорд (20 ноября 1984 г.). «Самый настоящий программист из всех» . Группа новостей : net.jokes . Usenet: [электронная почта защищена] . Проверено 22 декабря 2019 г.
- ^ «История Мела» Версия вольных стихов
- ^ «История Мела, настоящего программиста, с аннотациями» . www.cs.utah.edu .
- ^ Билл фон Хаген (1 июня 1994 г.). «Новый свет на легенду о Меле» . Группа новостей : alt.folklore.computers . Usenet: [электронная почта защищена] . Проверено 22 декабря 2019 г.
- ^ «В частности, Мел Кэй из Royal McBee...» , FOLDOC, Imperial.ac.uk
- ^ Королевская корпорация Макби (апрель 1957 г.). Электронный компьютер ROYAL PRECISION LGP-30 РУКОВОДСТВО ПО ПРОГРАММИРОВАНИЮ . Порт-Честер, Нью-Йорк: Royal McBee Corporation . Проверено 17 марта 2020 г.
- ^ «Мел Кэй на первом тренировочном занятии LGP-30» . Либразетта . Либраскоп Инк.
Дальнейшее чтение
[ редактировать ]- utastro!nather (1983-05-21), История Мэла - В недавней статье, посвященной *мачо* стороне программирования, было сделано смелое и неприукрашенное заявление: Настоящие программисты пишут на Фортране. , Грег Линдал, заархивировано из оригинала 9 марта 2017 г. , получено 9 марта 2017 г. (Примечание. Копия оригинальной прозаической версии.)
- utastro!nather (1983-05-21), re: Real Programmers ... , Роб Стампфли, заархивировано из оригинала 12 февраля 2018 г. , получено 11 февраля 2018 г. (Полностью оригинальная копия сообщения Эда Натера в Usenet, с заголовками)
- Натер, Эд (12 сентября 2003 г.) [21 мая 1983 г.], История Мела, настоящего программиста , FOLDOC , заархивировано из оригинала 9 марта 2017 г. , получено 9 марта 2017 г. (Примечание. Пунктуация добавлено/исправлено для читабельности. Содержит ссылку на программу блэкджека для LGP-30.
- Дженнингс, Том, изд. (2000-11-30) [1956-10-18], Мел Программист: Лист кодирования LGP-30 - Программа 13.0 , заархивировано из оригинала 9 марта 2017 г. , получено 9 марта 2017 г. (подпись Мела Кея) на листе кодировки LGP-30.)
- Кэй, Мел , Руководство по игре в блэкджек (PDF) , США: Librascope, Inc. , Программа RPC-4000 W1-01.0, заархивировано (PDF) из оригинала 09 марта 2017 г. , получено 8 марта 2017 г. (NB. Вероятно, это тема оригинальной истории.)
- Сейбел, Джеймс (08 апреля 2015 г.), «Объяснение истории Мела» , получено 18 февраля 2018 г. (Примечание. Подробный анализ истории с объяснением технических деталей.)
- «Программисты-мачо, барабанная память и судебно-медицинский анализ машинного кода 1960-х годов» . freeCodeCamp.org . 2 апреля 2018 г. Содержит еще больше технических подробностей.
- ван ден Богард, Адриенн (2008). «Стили программирования 1952-1972 гг.». Студия . 1 (2): 128–144. doi : 10.18352/studio.1459 (неактивен 8 августа 2024 г.).
{{cite journal}}
: CS1 maint: DOI неактивен по состоянию на август 2024 г. ( ссылка ) - Петля Мела - Комплексное руководство по истории Мела , 21 мая 2022 г. (Исследование происхождения истории, ее персонажей, биографии Мела Кея и хакерского фольклора в целом)
- Mel's Loop - Мел Кей - резюме , 21 мая 2023 г. (Биография Мела Кея: исследование личности, семьи, происхождения и творчества Мела Кея)
- Пользователь Reddit нашел компьютер того типа, которым пользовался Мел, в подвале его бабушки и дедушки.