Эдсгер Дейкстра
Четвертый довод относится к способу, при котором количество интеллектуальных усилий, необходимых для составления программы, зависит от длины программы. Высказывалось предположение, что существует некий закон Природы, гласящий, что количество необходимых интеллектуальных усилий Пропорционально квадрату длины программы. Но никто не смог его доказать, и выяснилось, что он не обязательно справедлив. Дейкстра склонялся к предположению, что при надлежащем применении способностей к абстракции интеллектуальное усилие, требующееся для написания программы, Пропорционально длине самой программы.
И последним доводом в пользу технической реализуемости революции он привел широкую применимость хорошо разложимых на компоненты ре. шений.
Вот какой совет дает Эдсгер Дейкстра своим коллегам: “Мы будем лучще справляться с нашей работой программистов, если только мы будем подходить к этой работе с полным сознанием ее ужасающей сложности, если только мы будем верны скромным и элегантным языкам программирования если мы будем учитывать природную ограниченность человеческого ума и приниматься за эту работу как Очень Смиренные Программисты”.
Многим программистам Дейкстра известен как создатель алгоритма “кратчайшего пути”, предложенного им еще в 1952 году, который появился в результате его работы над задачей по оценке производительности компьютера ARCMAC, установленного в Математическом Центре. Этот алгоритм позволяет находить наилучший путь для перемещения между двумя точками. Ученый также использовал этот алгоритм для решения задачи “О нахождении оптимального пути передачи электрического тока всем существенным элементам цепи, минимизируя при этом расход меди”, с которой столкнулись инженеры, разрабатывавшие ARCMAC. Он назвал этот способ “алгоритмом дерева с кратчайшими ветвями”. В начале 60-х годов Дейкстра применил идею взаимного исключения к технологии связи между компьютером и его клавиатурой. Он использовал символы Р и V для представления двух операций, производимых в задаче взаимного исключения. Эта идея стала частью практически всех современных процессоров и модулей памяти, начиная с 1964 года, когда IBM впервые использовала ее в своей архитекту’ ре IBM/360. Он помог программной индустрии стать намного более дисциплинированной, выдвинув тезис, что оператор “go to является вредным • Это означало, что чем больше в программе операторов go to, тем трудна6 разобраться в исходном коде программы. Эдсгер Дейкстра стоял у истоков структурного программирования. В 1972 году он вместе с Оле Далом и ТонИ Хоаром опубликовал основополагающую монографию “Структурное пр0′ граммирование”.