Rambler's Top100
 поиск по сайту:

Дисциплина, "чтобы почувствовать красоту"

Автор: Максим Отставнов
Опубликовано в журнале "Компьютерра" №32 от 20 августа 2002 года

6 августа скончался профессор Дейкстра, выдающийся теоретик компьютерного программирования.

Эдсгер Вайб Дейкстра родился в 1930 году в Роттердаме в семье ученых. Окончил Эразмовскую гимназию, Университет Лейдена и Университет Амстердама. Работал программистом в Математическом центре Амстердама и преподавал математику в Университете Eindhoven, выполнял исследования для корпорации Барроуз. Лауреат Тьюринговской премии 1972 г. С 1973 по 1999 гг. возглавлял кафедру информатики Университета Техаса в Остине.

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

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

Отказ от абстракции исполнения означает, что мы, грубо говоря, перестаем водить по тексту программы пальцем, соображая, как она будет исполнена, имитируя этот процесс, а рассматриваем ее запись как структуру, свойства которой могут исследоваться и доказываться формально. (Отсюда наиболее часто употребляемое название этого подхода «структурное программирование» - перевод structured programming как «структурированное программирование» кажется мне не слишком удачным).

Это очень вежливое и лестное утверждение (и весьма скромное, если учесть, что на Дейкстру «валят вину» за это даже ближайшие его сотрудники), но исторически точным его назвать трудно.

И дело не в том, что «Соображениям о более развитом программировании» Дейкстры и последовавшей за ним «дискуссии об операторе GOTO» (1968-70 гг.) сопутствовали не менее жаркие баталии вокруг чуть ранее высказанных в сообществе логических программистов тезисов Дж. Маккарти («Нужно не испытывать программы до тех пор, пока они не окажутся отлаженными, а доказывать, что они имеют желаемые свойства»). И даже не в том, что в ретроспективе «абстракция исполнения» кажется не столь важным моментом (в том же логическом программировании она, по-видимому, никогда не играла такой роли, как в процедурном). По большому счету никто серьезно и не сомневался в том, что коль скоро компьютер - это релейная машина, ничего такого, что нельзя было бы описать в терминах алгебры Буля (исчисления элементарных высказываний), на нем не напрограммируешь.

Заслуга Дейкстры, на мой взгляд, может быть названа в высоком смысле слова педагогической: он показал, как программа на языке, весьма приближенном к «естественным» для программиста, становится математическим объектом, и что из этого следует.

На мой взгляд, именно педагогическая (и эстетическая: «Я задумал изложить некоторое количество изящных алгоритмов таким способом, чтобы читатель смог прочувствовать их красоту») постановка вопроса, ориентация на демонстрацию и заставили его найти те красивые формализмы, которые вошли в «Дисциплину программирования» и mutatis mutandis 1 в теоретическое программирование, каким мы его знаем. В предисловии к своему фундаментальному труду он делится с нами радостью открытия:

«Неожиданность состояла в том, что так называемые «преобразователи предикатов», выбранные мною в качестве средства изъяснения, позволили прямо определять связь между начальным и конечным состояниями без каких-либо ссылок на промежуточные состояния, которые могут возникать во время выполнения программы. Я обрадовался тому, что это позволяет провести четкое разграничение двух основных проблематик программирования: проблематики математической корректности… и инженерной проблематики эффективности.

Пожалуй, самое полезное открытие состоит в том, что один и тот же текст программы допускает две (в известном смысле дополняющие друг друга) интерпретации. Интерпретация в виде кода преобразователей предикатов, которая представляется более подходящей для нас, противостоит интерпретации в виде кода для выполнения - ее я предпочитаю оставлять машинам!»

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

Более тысячи трехсот (!) работ (около восьми тысяч страниц) покойного профессора в электронной форме благодаря усилиям его коллег доступны сегодня на сайте кафедры информатики Университета Техаса (www.cs.utexas.edu/users/EWD). По-русски публиковалась самая известная монография Дейкстры «Дисциплина программирования» (М.: «Мир», 1976), их совместная с У. Далом и К. Хоором книга «Структурное программирование» (М.: «Мир», 1975) и ряд статей. В том же издательстве «Мир» в 1984 году вышел перевод учебника «Наука программирования», написанного одним из самых горячих приверженцев подхода Дейкстры Д. Грисом. Для знакомства не обладающих опытом профессионального программирования студентов с идеями великого теоретика этот труд подходит даже больше, чем оригинальная монография.


1 (обратно к тексту) - лат. - внеся необходимые изменения.
Читайте на сайте тему номера Страдиварство XXI века и другие статьи из журнала "Компьютерра" от 20 августа 2002 года.

Обсудить статью в форуме (0)

Версия для печати | Послать другу | Написать в редакцию

Автор: Максим Отставнов. Другие статьи автора


В ожидании тени

На днях я решил забронировать места на базе отдыха, куда собрался с семьей летом.

Воспоминания о будущем

Очевидный финансовый ренессанс российского кинематографа был бы невозможен без специалистов по компьютерной графике. Это они превратили гостиницу «Космос» в проезжее место, застроили задники в «Турецком гамбите» деревянными строениями и вырастили Волкодаву летучего мыша.

Первое кресло

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

Еще один природный ресурс России

Центр разработок и исследований Intel 7 июня 2007 года открыл новый офис на территории технопарка в поселке Сатис Дивеевского района Нижегородской области.

Во сыром бору

С 18 по 20 апреля в подмосковном пансионате "Бор" проходила теперь, пожалуй, наиболее значимая тусовка деятелей Рунета - вторая конференция "Интернет и Бизнес" (КИБ).

О проекте | Карта сайта | Реклама | Рассылки сайта | Контакты | Вакансии | Архив | КПК-версия
РЕГИОНАЛЬНАЯ КОМПЬЮТЕРРА | Подписка в регионах | RSS 2.0

© ООО "Компьютерра-Онлайн", 1997-2008
Редакция сайта: site@computerra.ru
Техподдержка сайта: websupport@computerra.ru
Редакция журнала: inform@computerra.ru
Отдел рекламы: reklama@computerra.ru
Телефон: (495) 232-22-61, (495) 232-22-63
Работает на «Битрикс: Управление сайтом»
Почта защищена сервером СПАМОРЕЗ

Сайт работает на сервере DEPO Computers

  TopList  Rambler's Top100

Firefox: фантастические изменения на подходе


СЕГОДНЯ В "КОМПЬЮТЕРРЕ"

Музей советских игровых автоматов  #

В музее игровых автоматов "15 копеек" есть около 40 аппаратов. Обычно, правда, половина находится в ремонте: старость - не радость. Впрочем, не только игровыми автоматами едиными. Там есть и работающий аппарат с газировкой!

» Прочитать

Wii Fit: Худеем вместе  #

Внимание! Это не "Гербалайф"! Совершенно реальный способ похудеть! Электронный тренажёр-весы от известного японского производителя! Спешите, количество ограничено!

» Прочитать

Blu-ray на свалке истории  #

Пока новый формат прокладывает дорогу к кошелькам пользователей, он уже успел безнадежно устареть. В Японии придумали такое четкое видео, что на один Blu-ray умещается всего... 7 секунд фильма!

» Прочитать

Как ускорить Windows Vista: советы разработчика  #

Тема оптимизации "Висты" заезжена донельзя. Тем не менее, спустя почти два года после выхода Windows Vista, редмондцы отважились опубликовать документ, рассматривающий вопросы ускорения операционной системы.

» Прочитать

Веб-десктопы: выбираем лучший  #

В интернете есть немало сервисов, реализующих идею переноса визуального пользовательского интерфейса внутрь браузера и представляющих собой некое подобие удалённого рабочего места.

Прочитать

» Статьи, тестирования, обзоры
» Каталог "железа" - Цены

» Форум "Терралаба"