Архитекторы компьютерного мира - Аркадий Частиков
Шрифт:
Интервал:
Закладка:
→ программа;
→ процесс ее выполнения;
→ функция, реализуемая программой;
→ эквивалентность программ;
→ эквивалентные преобразования программ;
→ схема программы;
→ эквивалентность схем и их преобразования.
Аппарат (язык) логических схем программ, предложенный А. А. Ляпуновым, вырос из блок-схемного описания программы, применявшегося в то время в практике программирования. Блок-схемное описание предписывало перед программированием алгоритма деление его на части — блоки с установлением связей между ними. Однако понятие самого блока было расплывчатым, а поэтому и не могли быть четко описаны ни правила выделения блоков, ни правила соединения блоков в схему. Аппарат логических схем был с самого начала нацелен на устранение этих недостатков. Для него характерно предварительное и не зависящее от конкретного алгоритма выделение частей, из которых составляются алгоритмы программирования — это выделение осуществляется по признаку функциональной нагрузки, которую несет та или иная часть алгоритма. Так появились понятие оператора (термин "оператор" введен Ляпуновым), осуществляющего акт обработки информации, и понятие логического условия, которое осуществляет акт проверки информации, чтобы определить порядок выполнения операторов. Логическая схема, описывающая алгоритм, "представляет собой строку из операторов и логических условий, называемых членами схемы. После каждого логического условия начинается стрелка, оканчивающаяся либо перед одним из членов схемы, либо в конце строки".
Операторный метод лег в основу многих учебников и учебных пособий по программированию, выпущенных в 50-е годы. Особенно велика роль операторного метода в становлении программирования как науки.
Формальные определения программирования как науки были даны А. А. Ляпуновым в его статье "К алгебраической трактовке программирования", написанной позже. В ней он рассматривает формализмы программирования на "теоретико-множественной базе". Ляпунов связывает программирование с основными направлениями современной математики, в частности с позиций общей алгебры. В статье была заложена та идейная платформа, на которой основывались дальнейшие исследования, проводившиеся учениками Алексея Андреевича — Ю. И. Яновым, А. П. Ершовым, Н. А. Криницким, Р. И. Подловченко и др.
Необходимо также отметить, что с появлением операторного метода была сформулирована проблема автоматизации программирования и, в частности, задача построения программирующей программы (в современной терминологии — "транслятор"), т. е. такой программы, которая сама будет строить программы для различных алгоритмов. Как пишет Р. И. Подловченко, "эта задача определила направление исследований в программировании более чем на десятилетия вперед. Постановка ее принадлежит Алексею Андреевичу Ляпунову и сделана им в 1953 году".
Кроме того, А. А. Ляпунову принадлежит постановка задач невычислительного характера, таких как машинный перевод и ифовые задачи (шахматы, домино) и, что удивительно — эти задачи им были поставлены еще в 1953–1954 годах. Под его руководством в 1954 году впервые был осуществлен его ученицей О. С. Кулагиной машинный перевод с французского языка на русский.
Важным событием в научной жизни была организация А. А. Ляпуновым в 1956 году семинара по кибернетике в МГУ, который объединил ученых различных специальностей: математиков, экономистов, биологов, лингвистов, философов, а также инженеров и военных. Он просуществовал до 1964 года и сыграл большую роль в координации исследований и формировании новых направлений.
Во второй половине 50-х годов число оригинальных исследований по кибернетике в нашей стране стало так велико, что появилась необходимость в создании специализированных изданий по кибернетике. А. А. Ляпунов стал основателем серии сборников "Проблемы кибернетики" и главным редактором. Первый сборник серии вышел в свет в 1958 году. Под редакцией А. А. Ляпунова вышло почти 30 сборников "Проблемы кибернетики". Серия получила мировую известность — она регулярно переводилась на английский и немецкий языки.
В 1962 году по приглашению академика М. А. Лаврентьева А. А. Ляпунов переехал в Новосибирск и начал работать в Институте математики СО АН СССР, где с 1967 года заведовал отделом в отделении кибернетики. В Новосибирске он продолжал работать по дескриптивной теории множеств, по теоретическому программированию и развернул широкие исследования по математической биологии, в частности по таким ее проблемам, как моделирование экологических систем, популяционным явлениям, иерархичности управляющих систем в живой природе, проблемам классификации.
В 1964 году Алексей Андреевич Ляпунов был избран членом-корреспондентом Академии наук СССР.
Новосибирский период жизни А. А. Ляпунова в научном плане отмечен его работами философского характера, в частности осмыслением и развитием таких философских категорий, как материя, энергия и информация. Он приходит к убеждению, что "масса и энергия, с одной стороны, удовлетворяет закону сохранения, с другой — для них имеет место принцип заменяемости". Что же касается информации, то она обладает "совсем другими свойствами". Так, во-первых, по отношению к информации не имеет места закон сохранения, во-вторых, возможность размножения информации и невосстановимость утраченной являются ее характерными особенностями, в-третьих, "информация материальна, т. е. информация всегда нуждается в материальном носителе".
Эти философские концепции отражены в ряде его публикаций, а также представлены в виде тезисов доклада на Международном конгрессе по философии, который состоялся в Болгарии, в городе Варне, в 1973 году, но, к сожалению, без участия Алексея Андреевича.
Он скоропостижно скончался 23 июня 1973 года в Москве.
Заслуги Алексея Андреевича Ляпунова в области науки и воспитании научных кадров были отмечены многими правительственными наградами. В 1996 году одной из самых авторитетных организаций в области высоких технологий — IEEE Computer Society А. А. Ляпунов посмертно был удостоен медали "Computer Pioneer", как сказано: "For Soviet cybernetics and programming".
Джон БЭКУС
Создатель языка FORTRAN
Вероятно, здесь нет никого, кто не слышал бы о FORTRANe, и большинство из вас, вероятно, использовали его хотя бы однажды, или, по крайней мере, вы наблюдали за человеком, пишущим программу на FORTRANe, вероятно, большинству знакомо сокращение "БНФ", но не все знают, как оно расшифровывается, так вот, "Б" — от Бэкуса, а другие буквы определяются названием способа формальной записи, эти два вклада, по моему мнению, входят в число основных достижений в области вычислительной техники и оба принадлежат Джону Бэкусу.
Джин СэммитДжон Бэкус
17 октября 1977 года на ежегодной конференции ACM премия Алана Тьюринга была вручена человеку, который создал первый высокоуровневый язык программирования для научных и технических применений и о котором прекрасные слова произнесла председатель комитета по премиям — Джин Сэммит (эпиграф — фрагмент ее выступления). Более официально, премия была присуждена Джону Бэкусу"…за глубокий и важный вклад в создание практических систем программирования высокого уровня, в особенности за работы по FORTRAN и частые публикации формальных процедур для спецификации языков программирования".
Чтобы оценить гений Джона Бэкуса, нужно представить себе компьютерный мир в начале его развития — конец 40-х начало 50-х годов XX века. ENIAC — пример сложности раннего программирования: программа составлялась с помощью электрических соединений на коммутационном поле, и для ее установки требовалось от двух до трех дней. Затем появились компьютеры с хранимой в памяти программой — исчезла потребность в ее монтаже.
Однако труд программиста по написанию, вводу и отладке программ по- прежнему был нелегким. Сначала программы писались на машинном языке (в двоичном коде), потом — в восьмеричном. Далее для облегчения участи программистов были придуманы подпрограммы, а затем первые ассемблеры. Но эффективность программирования от этого существенно не повысилась. Если бы кто-то мог написать транслятор, который бы переводил команды высокого уровня в машинный код, причем этот код не отличался от ручного кода программиста — это было бы реальным достижением.
И вот появился Джон Бэкус. Он родился в Филадельфии 3 декабря 1924 года. Учился в Вашингтоне, затем осенью 1942 года поступил в университет Вирджинии на химический факультет. Однако вскоре был отчислен и в начале 1943 года пошел в армию. После службы в армии в мае 1946 года он оказался в Нью-Йорке, где поступил в радиотехническую школу. Преподаватель по ремонту теле- и радиоаппаратуры пробудил в нем интерес к математике и убедил его продолжить учебу в Колумбийском университете.