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

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

Сюжет

Нейтер описує надзвичайні здібності до програмування його колишнього колеги Мела, що працює у корпорації Royal McBee.[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., ред. (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.
  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 червня 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.

Посилання

  • utastro!nather (21 травня 1983). re: Real Programmers .... Rob Stampfli. Процитовано 11 лютого 2018. (A completely original copy of Ed Nather's Usenet post, with headers)
  • Nather, Ed (12 вересня 2003) [1983-05-21]. The story of Mel, a Real Programmer. FOLDOC. Архів оригіналу за 9 березня 2017. Процитовано 9 березня 2017. (NB. Punctuation added/corrected for readability. Contains link to program tape of blackjack for LGP-30)
  • Jennings, Tom, ред. (30 листопада 2000) [1956-10-18]. Mel the Programmer: LGP-30 Coding Sheet - Program 13.0. Архів оригіналу за 9 березня 2017. Процитовано 9 березня 2017. (Mel Kaye's signature] on a coding sheet for the LGP-30.)
  • Kaye, Mel. Manual for Blackjack Game. USA: Librascope, Inc. RPC-4000 Program W1-01.0. Архів оригіналу за 9 березня 2017. Процитовано 8 березня 2017. (NB. Presumably the subject of the original story.)
  • Seibel, James (8 квітня 2015). «The Story of Mel» Explained (англ.). Процитовано 18 лютого 2018. (Детальний аналіз історії, з поясненням технічних деталей.)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.