Как стать автором
Обновить

Комментарии 20

"Программирование начинается там, где заканчивается оперативная память." (с) не моё.
Хотя, если ещё разделить процесс на алгоритмизацию задачи и кодирование/программирование алгоритма, то знание платформы можно применить уже на первой стадии.

сама по себе история Mel Kaye и оптимизации кода на RPC-4000 широко известна уже чуть ли не 50 лет, все возможные комментарии давно написаны, при желании их можно найти с сети, упомянутая RPC-4000 тоже не слишком интересная машина, это улучшенный транзисторный вариант первоначальной LGP-30, с барабаном 2х емкости (vs LGP-30), хотя в то время уже появилась память на магнитных сердечниках, поэтому RPC-4000 не была успешной,

но LGP-30 это намного интересней, совершенно легендарная машина 1956 года, 4К 31-bit слов на барабане, среднее время доступа порядка 10ms, только 3 регистра - AC, PC, IR, 16 команд, тактовая частота 120 kHz, i/o перфолента, принтер, для того времени это был первый более-менее дешевый ламповый компьютер, продано их было порядка несколько сотен экземпляров по "доступной" цене < $50K, можно сказать это предтеча всего направления mini компьютеров, насколько знаю никакой os у нее не было, но был загрузчик, и даже компилятор с ALGOL 58 (3x проходной), трудно сейчас представить сколько много на ней было всего сделано, от методов Monte Carlo, до расчета реакторов, заметим именно на ней училась работать Margaret Hamilton главный разработчик sw для Apollo Guidance Computer

ps

на фотографии, где Mel среди группы обучаемых LGP-30, читаются названия фирм откуда пришли люди, т.е. видно где были установлены машины - типа Convair San Diego, разработчик atlas среди прочего

pps

для любителей подробностей:

LGP30 = Librascope General Precision, разработавшая LGP30, это небольшая компания главным направлением которой на самом деле были системы управления торпедами (типа ASROC) и бортовые компьютеры для ракет, сейчас это часть Lockheed Martin Undersea Systems,

фотография группы (где Mel среди преподавателей) вероятно сделана в июле 1956, первая набранная группа для 2х недельного обучения на LGP30, можно сказать это первые программисты аэрокосмической промышленности на западе us, заметим что на востоке us к этому времени уже сотни программистов работали над sw для sage, а IBM уже изготовила рабочий прототип Q7 с ферритовой памятью стоимостью около 100х LGP30 каждая, естественно люди на фотографии не имели ни малейшего представления об этом

Любители переводов добрались до Jargon File-а. Что-ж, ждем перевод истории про Magic Switch, а так же перевод Коанов.

Давным давно перевели, я читал ее именно в переводе лет 10 а то и 15 назад.

Вы правы. На просторах интернета нашелся PDF файл с переводом этой замечательной книги. Но самой книги в продаже нет (и была ли она?). В предисловии от автора перевода мне запали следующие строки, буквально на злобу дня:

Мы не видели большой разницы между документированными и недокументированными свойствами систем. "Какая разница, если они позволяют выполнять задачу?". Я помню, очень удивил преподавателя во время сдачи зачета, написав, с целью экономии места в памяти самомодифицирующийся программный код. Он мне начал рассказывать про "Эльбрус", где, по его словам, был специальный бит, по которому можно было определить, где находятся данные, а где код, и что ".. на той архитектуре мой фокус не прошел бы..". На что я гордо заявил, что "Эльбрус" вызывает не более, чем академический интерес, и на данной системе это вполне работает.

Ого, тут и сверстано, и сноски и ссылки, прям огонь.

Мне тогда попадался .txt переведенный машинным переводом и практически без вычитки. Местами расшифровать что там имелось в виду в оригинале, без хакерских способностей было невозможно. :)

У мен был бумажный вариант на русском, лет 18 назад, да прямо сейчас она продаётся в бумажном варианте в магазине на О. Так же были уже тогда Just for fun, про Митника обе книги и ещё парочка, известных на западе, про IT андеграунд тех лет, все были на русском и в даостаточно качественном полиграфическом исполнении.

Думал, что в конце статьи Мэла будут костерить, мол такой-сякой из-за его извращений в коде компания в критичный момент не смогла перенастроить программу и понесла большие убытки. Но нет, ничего такого. И Мэл молодец, и все молодцы и жили все долго и счастливо.

печатных машинок

Наверное, всё-таки пишущих

Эх, когда я читаю воссторженные диферамбы программированию в машинных кодах, мне хочется поведать свою историю. Ещё советское время старший брат купил компьютер "Микроша" и принес домой для развлечений. Поскольку брат работал, то у меня было на много больше времени на его изучение. На компьютере не было графики, умел отображать только символы. Поэтому простенькие игры были мало интересны. Входящий в комплект Бейсик был освоен и написано несколько игр - морской бой, крестики-нолики, двадцать-одно (тот же блек джек по сути). Душа же требовала большего, и я вдоль и поперек изучил инструкцию на компьютер, в которой были даны коды команд процессора КР580ВМ80А и краткое описание. Что такое ассемблер я узнал позже и искренне не понимал, чем CALL #FF80 понятней и удобней, чем CD 80 FF? В общем, через некоторое время я знал почти все коды команд и читал код "системного монитора" Микроши "без словаря" и делал небольшие программки.

Но программисты типа Мэла у меня всегда вызывали восторг и уважения. Все таки, на такое я не был способен. Мне тогда было 12 лет.

такое ощущение что прочитал перевод с Фортрана на русский.

«Если программа не может переписать свой собственный код», — спрашивал он, — «какая вообще в ней польза?». Хорошо звучит в обёртке от Криса Касперски

Поскольку редактор игнорирует ЛС, дублирую сюда:
Эдом Натером (utastro! Nather)

Пробел и заглавная буква при переводе добавлены зря: это UUCP-адрес

Да, игнорирует, поэтому тоже продублирую тут:

«грубые, непостижимые, неотесанные»16-битные числа

1) В оригинале «Raw, unadorned, inscrutable hexadecimal numbers» — это 16-ричные числа. Не надо их путать с 16-битными.

работать с кодом Мэла мог только сам Мэл.

Job security?

Барабану требовался один полный оборот, чтобы отыскать следующую — вот и необходимая задержка.

А потом инженеры выкатывают следующую версию накопителя, который работает в 10 раз быстрее и программа перестаёт работать. Помниться я запускал в нулевых игру «Перестройка» написанную не то в конце восьмидесятых, не то в начале девяностых. В неё невозможно было играть.

Он наотрез отказался менять программу.

Однако в реальности компьютер вошел в цикл и без проблем из него вышел. Две недели ушло у меня, чтобы понять, как Мэл это устроил.


Прямо полный комплект антипаттернов как не надо писать программы и как не надо вести себя с коллегами, руководством и заказчиками.
Ну не знаю чего все восхищаются. Мисать как Мэл не очень сложно, мы такие штуки делали в 15 лет на Спектруме. В смысле писали демки, в которых использовался каждый такт процессора между двумя кадровыми прерываниями. Там мы использовали различные трюки и грязные хаки, которые работали конкретно вот на этой модификации, но могли не работать на других клонах.
А вот писать так, чтоб программа работала в разном окружении, с разными таймингами, да ещё чтоб после твоего ухода её можно было легко доработать, вот это и есть настоящее программирование. Всеми силами стараюсь доносить эту простую мысль до своих джуниоров.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий