Історія про Мела, Справжнього Програміста

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Історія Мела (англ. The Story of Mel) — твір, представник комп'ютерного фольклору, що став широковідомим завдяки Usenet і Файлові Жаргону. Головна дійова особа історії — Мел Кей (англ. Mel Kaye), приклад Справжнього Програміста, чиї навички і майстерність у програмуванні є предметом захоплення колег. Автором твору є Ед Нейтер (англ. Ed Nather).

Сюжет[ред. | ред. код]

Нейтер описує надзвичайні здібності до програмування його колишнього колеги Мела, що працює у корпорації Royal McBee[en].[1][2] Твір було спочатку написано прозою, але пізніше хтось модифікував його у «поезію вільного стилю», що широко розповсюдилася завдяки комп'ютерним мережам і Usenet.[3][4]

Про Мела Кея мало що відомо, крім того, що він здійснив «більшість роботи з програмування» компілятора ACT-1 (1959 рік) для комп'ютера LGP-30[en] фірми Royal McBee.[5][6]. Нейтер описує Мела як людину, що уникає використання оптимізувального асемблера, натомість надаючи перевагу «ручному» кодуванню з максимальним використанням можливостей машинного коду комп'ютера і деяких його особливостей (таких, наприклад, як реалізація програмної затримки через період обертання магнітного барабану, що слугував головною оперативною пам'яттю машини).

У історії розповідається, як Мелові доручили переписати програму, що грає у блекджек, з LGP-30 на новіший комп'ютер RPC-4000 (терміну «портування програмного забезпечення» тоді не існувало). Щоб відвідувачі на виставках, де мав показуватися новий комп'ютер, не засмучувалися, керівництво компанії наказало Мелові модифікувати програму: вона мала враховувати позицію спеціального перемикача на консолі, щоб у визначеному його положенні користувачі комп'ютера завжди вигравали. Кею така ідея вкрай не сподобалася, втім під тиском менеджменту він все-таки додав таку функціональність — але «з точністю до навпаки»: якщо перемикач активували, то не людина, а комп'ютер завжди вигравав у «блекджек».

Кей звільнився, а Нейтера попросили «полагодити баг». Під час аналізу коду він був спантеличений тим, що програма хоч і мала нескінченний цикл, але лічильник команд постійно виходив з-за меж цього циклу. Врешті-решт він зрозумів, що програма реалізовувала код, який модифікує сам себе під час обробки елементів масиву, і що використовується програмне переповнення. Додавання 1 до адреси інструкції x зазвичай просто збільшувало адресу до x+1, але якщо x було максимальною дозволеною адресою, до відбувалося переповнення і результат ставав 0. На додачу до цього комп'ютер модифікував біти коду операції, так що в підсумку виходила операція «перехід до адреси 0». Така техніка програмування настільки вразила Нейтера, що він вирішив відмовитися від модифікацій, і відрапортував керівництву, що не зміг знайти помилки.

Історія створення[ред. | ред. код]

Есей був опублікований у групі Usenet «net.followup» 21 травня 1983 року користувачем utastro!nather (адреса email Еда Нейтера у той час).[1][2]

Комп'ютери для фірми Royal McBee виготовлялися компанією Librascope, і документація на програму «блекджек» написана самим Мелом Кеєм. У серпневому за 1956 рік номері журналу «Librazette» компанії Librascope є історія навчання роботі на LGP-30, де згадується, що робота деякі інженерів Librascope буде оплачуватися фірмою Royal McBee, і серед цих інженерів є ім'я Мела Кея.[7]

На обкладинці цього номера журналу є фотографія, де знято програмістів-новачків і їх інструкторів, з Мелом Кеєм включно.[8]

Див. також[ред. | ред. код]

Джерела[ред. | ред. код]

  1. а б Raymond, Eric S., ред. (1 липня 1992). The Jargon File, Version 2.9.10, 01 Jul 1992 (jargon2910.ascii.gz). line 20505. Архів оригіналу за 9 березня 2017. Процитовано 1 липня 2014.
  2. а б Matt Crawford (20 листопада 1984). The realest programmer of all. Newsgroup: net.jokes. Архів оригіналу за 4 листопада 2012. Процитовано 9 грудня 2018.
  3. The Story of Mel, free verse version. Архів оригіналу за 24 грудня 2018. Процитовано 9 грудня 2018.
  4. The Story of Mel, A Real Programmer, Annotated. www.cs.utah.edu. Архів оригіналу за 9 лютого 2020. Процитовано 9 грудня 2018.
  5. Bill von Hagen (1 червня 1994). New Light on the Legend of Mel. alt.folklore.computers.
  6. Mel Kaye. FOLDOC. Архів оригіналу за 27 листопада 2018. Процитовано 9 грудня 2018. In particular, Mel Kaye of Royal McBee...
  7. Librascope Memories (PDF). The Librazette. Librascope Inc. Архів оригіналу (PDF) за 28 січня 2018. Процитовано 9 грудня 2018.
  8. Mel Kaye in the first LGP-30 training class. the Librazette. Librascope Inc. Архів оригіналу за 30 листопада 2018. Процитовано 9 грудня 2018.

Посилання[ред. | ред. код]