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

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

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

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

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

Про Мела Кея мало що відомо, крім того, що він здійснив «більшість роботи з програмування» компілятора ACT-1 (1959 рік) для комп'ютера LGP-30 фірми 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., ред. (1992-07-01). The Jargon File, Version 2.9.10, 01 Jul 1992 (jargon2910.ascii.gz). line 20505. Архів оригіналу за 2017-03-09. Процитовано 2014-07-01. 
  2. а б Matt Crawford (November 20, 1984). The realest programmer of all. Newsgroup: net.jokes. 
  3. The Story of Mel, free verse version. 
  4. The Story of Mel, A Real Programmer, Annotated. www.cs.utah.edu. 
  5. Bill von Hagen (1 Jun 1994). New Light on the Legend of Mel. alt.folklore.computers. 
  6. Mel Kaye. FOLDOC. «In particular, Mel Kaye of Royal McBee...» 
  7. Librascope Memories. The Librazette. Librascope Inc. 
  8. Mel Kaye in the first LGP-30 training class. the Librazette. Librascope Inc. 

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