Читаем Я нашел смысл жизни: Автореферат мировоззрения с эпизодами автобиографии полностью

На пятом курсе у нас появился новый предмет – программирование для ЭВМ (если бы это было на первом, как теперь, я провел бы пять лет с гораздо большей пользой). Машина была «Урал-2», ламповая, занимала огромный зал, а чтобы ввести в нее программу, надо было замкнутую фотоленту установить на сложное устройство, напоминавшее стиральную машину. Система команд была примитивная, например, для модификации адреса данных внутри цикла приходилось изменять адрес ячейки памяти непосредственно в команде – программа изменяла себя по мере выполнения (какая свобода для творчества!).

Тем не менее, принципы работы компьютера не изменились с тех пор и, соответственно, программирование, несмотря на все современные парадигмы, требует от человека тех же качеств, что и в те далекие годы. Суперпрограммист 60—70-х был бы суперпрограммистом и сегодня.

Программировать я стал сразу. На зачетах писал программы за всех друзей и других желающих. Мне это нравилось и получалось легко. Чисто случайно я попал по распределению в вычислительный центр вместо аспирантуры и фактически почти двадцати пять лет программировал. Это моя профессия.

В 1970 году мне пришлось программировать для ЭВМ «Минск-22» в машинных кодах, и я до сих пор помню систему команд «Минск-22». Например, программа вычисления факториала целого числа N! = N * (N-1) * … * 3 * 2 * 1 выглядит приблизительно следующим образом (аргумент N передается в ячейке 0040, результат N! возвращается в ячейке 0041):

7000) – 10 00 7005 0041 переслать 1 в ячейку 0041 (Здесь будет N!)

7001) – 32 00 0040 0041 умножить 0041 на N (Далее в 0040 будет N–1)

7002) – 22 00 7005 0040 вычесть 1 из 0040 (Получить в 0040 N–1)

7003) – 34 00 7001 0000 если после вычитания не ноль, то повторить с 7001

7004) – 30 00 0017 0000 возврат в вызывающую программу

7005) – 00 00 0000 0001 константа – целая 1.

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

Я старался брать машинное время ночью – во-первых, нет конкуренции за время (женщины-программистки, а их было почему-то очень много, предпочитали работать днем), во-вторых, можно работать до результата. Работа мне нравилась, шеф меня ценил.

Мне сильно повезло с первым шефом – Александром Михайловичем Гуляевым. Он был суперпрограммистом. Чтобы ввести в профессию, он заставил меня отладить написанный им довольно большой комплекс программ для шахтной вентиляции. После этого я стал одновременно модульным, структурным и, возможно уже тогда, объектно и сервисно ориентированным. Модные парадигмы создаются не программистами, а так называемыми менеджерами. Эти менеджеры никогда ничего не пишут сами и не могут написать в силу отсутствия соответствующих способностей, но полезную функцию (что-то подсмотреть и своевременно прокричать) выполняют. К сожалению, Гуляев никогда не стремился к признанию, рано ушел в себя и умер где-то на станции космических лучей. Другого суперпрограммиста, моего старшего, как он любил говорить, приятеля Володю Медведева, который мог написать эффективную программу для чего угодно, вообще убили при дурацких обстоятельствах. Хорошие программисты не часто добиваются в жизни того, чего могли бы, и чего принято добиваться, и чего всегда добиваются менеджеры.

Потом был долгий период ЕС ЭВМ и алгоритмических языков – «Фортран», «ПЛ/1» и др. На одном из алгоритмических языков программа вычисления факториала могла бы выглядеть так:

fact:= 1; n1:= n;

do while (n1>0); fact:= fact * n1; n1:= n1 – 1; end;

Специальная программа – компилятор – переводит этот текст в машинный код, который может быть выполнен компьютером. Ясно, что записывать программы удобнее на языке, но от разработки алгоритма язык не освобождает.

Отражая объектно-ориентированную структуру окружающего мира, алгоритмическое программирование (через модульное, структурное и др.) эволюционировало в объектно-ориентированное, в котором объект, тем не менее, представляется совокупностью алгоритмов.

Другой подход в программировании связан с разработками в области искусственного интеллекта. Теоретической базой искусственного интеллекта является логика, а в практическом программировании используются языки функционального и логического программирования.

Например, функцию вычисления факториала можно определить в виде функции следующим образом:

Перейти на страницу:

Похожие книги

Образы Италии
Образы Италии

Павел Павлович Муратов (1881 – 1950) – писатель, историк, хранитель отдела изящных искусств и классических древностей Румянцевского музея, тонкий знаток европейской культуры. Над книгой «Образы Италии» писатель работал много лет, вплоть до 1924 года, когда в Берлине была опубликована окончательная редакция. С тех пор все новые поколения читателей открывают для себя муратовскую Италию: "не театр трагический или сентиментальный, не книга воспоминаний, не источник экзотических ощущений, но родной дом нашей души". Изобразительный ряд в настоящем издании составляют произведения петербургского художника Нади Кузнецовой, работающей на стыке двух техник – фотографии и графики. В нее работах замечательно переданы тот особый свет, «итальянская пыль», которой по сей день напоен воздух страны, которая была для Павла Муратова духовной родиной.

Павел Павлович Муратов

Биографии и Мемуары / Искусство и Дизайн / История / Историческая проза / Прочее
Мсье Гурджиев
Мсье Гурджиев

Настоящее иссследование посвящено загадочной личности Г.И.Гурджиева, признанного «учителем жизни» XX века. Его мощную фигуру трудно не заметить на фоне европейской и американской духовной жизни. Влияние его поистине парадоксальных и неожиданных идей сохраняется до наших дней, а споры о том, к какому духовному направлению он принадлежал, не только теоретические: многие духовные школы хотели бы причислить его к своим учителям.Луи Повель, посещавший занятия в одной из «групп» Гурджиева, в своем увлекательном, богато документированном разнообразными источниками исследовании делает попытку раскрыть тайну нашего знаменитого соотечественника, его влияния на духовную жизнь, политику и идеологию.

Луи Повель

Биографии и Мемуары / Документальная литература / Самосовершенствование / Эзотерика / Документальное
Русская печь
Русская печь

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

Владимир Арсентьевич Ситников , Геннадий Федотов , Геннадий Яковлевич Федотов

Биографии и Мемуары / Хобби и ремесла / Проза для детей / Дом и досуг / Документальное