egorius: (Default)

Robert Glass, «In the Beginning: Recollections of Software Pioneers»

Воспоминания людей, стоявших у истоков вычислительной техники, собранные Робертом Глассом. Книга получилась очень интересная, позволяет заглянуть в эпоху пионеров программирования (примерно 1955-65 года) под совершенно разными углами глазами совершенно разных людей.

Как обычно, выясняется, что все новое — хорошо забытое старое.

I remember one man who held a master’s degree in aeronautical engineering; he had written his masters thesis on wing tip design. ... Since aircraft were on the wane (at that time) and missiles on the rise, no one needed better wing tips designed. He sought technical employment in the computer field. Since no computer classes were available, he was as well prepared as anyone. As to accounting, he would often muse, «Some day I just have to take some accounting classes.»

Вот еще кусочек. Пишет человек, рассказывавший всем, как использование инвариантов позволяет писать безошибочные программы:

At our first meeting, the director of this company and I discussed the seminar, its contents, and its relationship with and possible implications for the company’s business. He pointed out that although reducing the error rate in their software output was in principle of interest, their goal was not to reduce it to zero. The presence of a few residual errors ensured the opportunity to remain in contact with the customer and, in addition to correcting the errors, to add desirable new features to the programs and to develop new software, that is, to sell follow-on business.

А. Г. Абинов, «Человек или машина?» (1989 г.)

Я размышлял. Тощие брошюрки общества «Знание» приучили меня к мысли, что разговаривать животные не способны. Сказки с детства убеждали в обратном.
— А. и Б. Стругацкие, «Понедельник начинается в субботу»

Попалась в руки одна из тех самых брошюрок общества «Знание». Действительно тощая и такая, научно-популярненькая. Местами забавная:

Вместе с компьютерными «вирусами» в настоящее время получили распространение и некоторые виды программ-разрушителей. Условно их можно подразделить на три основные категории: «троянские кони» — т. е. такие, которые под видом доброкачественных программ на самом деле разрушают заложенную в ЭВМ информацию; «черви» — программы, которые медленно, но верно подтачивают память ЭВМ, вызывая в один не очень прекрасный день полную парализацию компьютера, и наконец, «бомбы замедленного действия» — программы, ждущие своего часа, чтобы стереть записанные на диске данные.

Страшно жить. Зато картинки тоже хорошие.

Александр Брудно, «Программирование в содержательных обозначениях» (1968 г.)

Рассказывает о методе программирования, придуманном и применявшемся с середины 50-х в Институте электронных управляющих машин и Институте теоретической физики (это такие люди, как Брудно, Кронрод, Адельсон-Вельский, Арлазаров и другие; они, помимо прочего, причастны к созданию знаменитой шахматной программы Каисса).

Метод, между прочим, весьма и весьма грамотный. Вот только как же мучились люди, не имея аппаратного стека и индексных регистров! Они, конечно, справлялись, но для этого приходилось писать самомодифицирующиеся программы. Более того, это вынуждено считалось одним из основным принципов программирования.

egorius: (Default)

Эдмонд Николау, «Введение в кибернетику»

Представим себе положение человека, которому излагается последовательность определений и не говорится, зачем они вводятся, для решения каких задач предназначены. Это хорошо знакомая всем ситуация — есть такой стиль изложения математических результатов.

— Виталий Кауфман, «Языки программирования»

Очередная древность (год издания оригинала — 1964), извлеченная на свет божий из пыльных недр Дальней Книжной Полки. Книга написана в стиле, суть которого ясно характеризует эпиграф; в очень сжатый объем автор постарался уложить основные положения областей науки, на которые распространялся интерес современной ему кибернетики. Результат неизбежен: известные вещи кажутся пройденными по верхам, неизвестные — остаются непонятными.

Зато теперь я лучше понимаю название своего факультета. С вычислительной математикой все было ясно, но где потерялась кибернетика (опять-таки см. эпиграф)? Так вот, чуть ли не все дисциплины — теория множеств, математическая логика, построение моделей, теория вероятностей, теория игр, собственно программирование, вычислительные методы, распознавание образов и нейронные сети на АСВК, лингвистические опыты АЯ... — все это в широком смысле и есть кибернетика.

А. Л. Брудно, Л. И. Каплан, «Московские олимпиады по программированию»

Довольно скоро все заметили, что удержать в голове схему достаточно сложной программы трудно. Поэтому стали рисовать блок-схему программы. ... Но программы становились все сложнее, а блок-схемы все больше и непонятнее. Разобраться во всех стрелках и линиях было уже почти невозможно. Однако мучились и разбирались. ... Последней надеждой были цветные карандаши. Но когда кончились цвета, мы пришли к Брудно. И он сказал:
— Не рисуйте больше блок-схем. Пишите блок-программы.
...
Блочная программа — это такая программа, где каждая самостоятельная ее часть выделена в отдельную подпрограмму. ... Сравните эту программу с блок-схемой... Между ними только одна разница: блок-схема состоит из нарисованных прямоугольников, а блок-программа из команд. То есть ее можно закодировать и ввести в машину.

— А. С. Кронрод, «Беседы о программировании»

Случайно заметил, что автором сборника является тот самый Александр Брудно, о котором я читал в «Беседах...» — он, как я понимаю, уже в конце 50-х нащупал идею структурного программирования. Книжка интересна не столько задачами (о, ностальгия: составьте программу), сколько сопровождающими их лекциями о программировании для школьников: перебор вариантов, случайные числа, рекурсия (рекурсий следует избегать: они замедляют выполнение программы), структурное программирование, история вычислительной техники.

Занятное суждение о структурном программировании, никогда не думал о нем с такой стороны:

Структурированное программирование возникло не позже конца пятидесятых годов и рассматривалось в печати уже в середине шестидесятых, но была серьезная причина, задержавшая распространение нового метода. При программировании снизу-вверх программистская квалификация требовалась от исполнителей, а руководитель мог быть администратором. При программировании же сверху-вниз руководитель должен быть квалифицированным программистом.

Но старую закалку-то не спрячешь. Вот приводится программа для алгоритма Евклида:

10 input m, n
20 goto 40
30 if m<n then n=n-m else m=m-n
40 if m<>n goto 30
50 print m
60 end

Только программист в машинных кодах может такое написать, не вывихнув мозг.

Некоторые считают, что структурированная программа, и даже язык программирования ... не должны содержать операторов перехода (подобных goto). ... Мы этого не считаем. Признавая, что излишние операторы переходов служат указанием на неряшливость или низкую квалификацию программиста и затрудняют проверку программы, мы, тем не менее, не запрещаем операторов перехода. Причина этого в том, что нарочитое избегание операторов перехода отдаляет программу от естественного алгоритма решения задачи, а употребление операторов перехода не является единственным способом написания плохих программ.

Соглашаясь с автором, не могу не отметить неряшливость или низкую квалификацию программистов, готовивших ответы на задачи и перетащивших все goto из Фортрана и Бейсика в Паскаль и Си. За такое программирование следовало бы отрывать руки.

egorius: (Default)

Александр Кронрод, «Беседы о программировании»

Спасибо [livejournal.com profile] 18cc за наводку!

Книга была написана Александром Семеновичем в 1964 году, что позволяет окунуться в атмосферу программирования того времени. М-20 оказалась похожей на современный (ну... тоже уже история) программируемый калькулятор типа МК-61. Однопользовательский режим, ячейки вместо байтов, возможность приостановить и запустить программу, «вывод на огни», изменение системы команд при помощи паяльника... Интересно также читать про развитие инженерной и программистской мысли того времени, даже несмотря на (вполне понятный) уклон в вычислительные методы, давно и прочно мной забытые.

Отмечу главу про Николая Ивановича Бессонова — человека, без остатка преданного работе, сделавшего в 1947 году первую в Союзе математическую машину, а к 1950 году спроектировавшего релейную вычислительную машину (построить её, преодолев все препоны, удалось только через 7 лет, когда на смену реле уже пришла электроника...). Многие ли знают этого человека? Я не знал.

Занятно практически полное непересечение с «Очерками истории информатики в России» по части фамилий. Похоже, уже в то время практика безнадёжно разошлась с теорией.

про латынь )

А ещё эта книга написана прекрасным ироничным языком, то и дело улыбаешься (иной раз грустно) про себя. Вот как писать надо, а не разбавлять унылый текст жалкими шуточками...

Валентин Пикуль, «Мальчики с бантиками» и «Реквием каравану PQ-17»

Прочитал вслед за [livejournal.com profile] joan_di_nova. Морские романы Пикуля: вторая мировая война, Балтика. Написано увлекательно, с большим патриотизмом, и, похоже, правдиво.

Николай Лесков, рассказы («Леди Макбет Мценского уезда», «Левша», «Тупейный художник», «Чертогон»)

Лесков явно не страдал излишним позитивом и работал в жанре «все умерли». Сразу много читать не надо — будет хандра и мигрень.

Выделяется «Левша» — это, конечно, классика. Сплав искренней гордости и одновременно сильнейшей горечи берёт за душу. Такое ощущение, что в школе мы его проходили сильно сокращённым.

про арифметику )

Сет Годин, «Незаменимый: можно ли без вас обойтись?»

Вообще я не люблю книги в американском стиле, промывающие мозг путем многочисленных повторений одного и того же на разные лады. Но эта — промывает в исключительно правильном направлении. Я даже куплю экземпляр для библиотеки на работу. А вдруг кому поможет?..

Profile

egorius: (Default)
egorius

July 2025

M T W T F S S
  12 3 4 5 6
7891011 12 13
14151617181920
21222324252627
28293031   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 14th, 2025 04:59 pm
Powered by Dreamwidth Studios