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

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

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

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

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

Історія створення 

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

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

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

Див. також

Джерела

Посилання 
  (NB. A copy of the original prose version.)

  (A completely original copy of Ed Nather's Usenet post, with headers)
  (NB. Punctuation added/corrected for readability. Contains link to program tape of blackjack for LGP-30)
  (Mel Kaye's signature] on a coding sheet for the LGP-30.)

  (NB. Presumably the subject of the original story.)
  (Детальний аналіз історії, з поясненням технічних деталей.)

 Contains even more technical details

 

Комп'ютерний фольклор
Історія Мела ( ) — твір , представник комп'ютерного фольклору , що став широковідомим завдяки Usenet і Файлові Жаргону . Головна дійова особа історії — Мел Кей ( ) , приклад Справжнього Програміста , чиї навички і майстерність у програмуванні є предметом захоплення колег . Автором твору є Ед Нейтер ( ) . Сюжет Нейтер описує надзвичайні здібності до програмування його колишнього колеги Мела , що працює у корпорації \ . Твір було спочатку написано прозою , але пізніше хтось модифікував його у « поезію вільного стилю » , що широко розповсюдилася завдяки комп'ютерним мережам і Usenet . Про Мела Кея мало що відомо , крім того , що він здійснив « більшість роботи з програмування » компілятора ACT - 1рік ) для комп'ютера фірми Royal McBee .. Нейтер описує Мела як людину , що уникає використання оптимізувального асемблера , натомість надаючи перевагу « ручному » кодуванню з максимальним використанням можливостей машинного коду комп'ютера і деяких його особливостей ( таких , наприклад , як реалізація програмної затримки через період обертання магнітного барабану , що слугував головною оперативною пам'яттю машини ) . У історії розповідається , як Мелові доручили переписати програму , що грає у блекджек , з LGP - 30 на новіший комп'ютер RPC - 4000 ( терміну « портування програмного забезпечення » тоді не існувало ) . Щоб відвідувачі на виставках , де мав показуватися новий комп'ютер , не засмучувалися , керівництво компанії наказало Мелові модифікувати програму : вона мала враховувати позицію спеціального перемикача на консолі , щоб у визначеному його положенні користувачі комп'ютера завжди вигравали . Кею така ідея вкрай не сподобалася , втім під тиском менеджменту він все-таки додав таку функціональність — але « з точністю до навпаки » : якщо перемикач активували , то не людина , а комп'ютер завжди вигравав у « блекджек » . Кей звільнився , а Нейтера попросили « полагодити баг » . Під час аналізу коду він був спантеличений тим , що програма хоч і мала нескінченний цикл , але лічильник команд постійно виходив з-за меж цього циклу . Врешті - решт він зрозумів , що програма реалізовувала код , який модифікує сам себе під час обробки елементів масиву , і що використовується програмне переповнення . Додаваннядо адреси інструкції x зазвичай просто збільшувало адресу до x + 1 , але якщо x було максимальною дозволеною адресою , до відбувалося переповнення і результат ставав На додачу до цього комп'ютер модифікував біти коду операції , так що в підсумку виходила операція « перехід до адреси . Така техніка програмування настільки вразила Нейтера , що він вирішив відмовитися від модифікацій , і відрапортував керівництву , що не зміг знайти помилки . Історія створення Есей був опублікований у групі Usenet « net.followup » травняроку користувачем utastro!nather ( адреса email Еда Нейтера у той час ) . Комп'ютери для фірми Royal McBee виготовлялися компанією Librascope , і документація на програму « блекджек » написана самим Мелом Кеєм . У серпневому зарік номері журналу « Librazette » компанії Librascope є історія навчання роботі на LGP - 30 , де згадується , що робота деякі інженерів Librascope буде оплачуватися фірмою Royal McBee , і серед цих інженерів є ім'я Мела Кея . На обкладинці цього номера журналу є фотографія , де знято програмістів - новачків і їх інструкторів , з Мелом Кеєм включно . Див . також Джерела Посилання ( NB . A copy of the original prose version . ) ( A completely original copy of Ed Nather's Usenet post , with headers ) ( NB . Punctuation added/corrected for readability . Contains link to program tape of blackjack for LGP - 30 ) ( Mel Kaye's signature ] on a coding sheet for the LGP - 30 . ) ( NB . Presumably the subject of the original story . ) ( Детальний аналіз історії , з поясненням технічних деталей . ) Contains even more technical details Комп'ютерний фольклор