![]() |
Чарльз Энтони
Ричард Хоар |
Чарльз Энтони Ричард Хоар начал свою карьеру в 1960 году в Англии, где он писал программы для компании "Elliott Brothers Ltd.". За восемь лет, проведенных им в этой фирме, он занимался разработкой всевозможных программных продуктов, от простых подпрограмм до языков программирования высокого уровня. Хоар покинул деловой мир в 1968 году, чтобы преподавать информатику в Королевском Университете в Белфасте, Ирландия.
В 1977 году он перешел на факультет информатики Oxford University, где занимал должность профессора вычислительной математики. 27 октября 1980 г. на ежегодной конференции в Нэшвилле, штат Теннесси, председатель комитета по премиям АСМ им. Тьюринга (Turing Award) Уолтер Карлсон вручил премию Чарльзу Энтони Ричарду Хоару за вклад в формальное определение языков программирования посредством аксиоматической семантики. Превращение программирования в серьезную профессиональную дисциплину стало ведущим мотивом его научной деятельности.
Профессор Хоар был избран Комитетом по премиям им. Тьюринга за свой фундаментальный вклад в определение и создание языков программирования. Его труд отличает неординарное сочетание интуиции, самобытности, элегантности и влияния на развитие информатики. Наибольшую известность он завоевал благодаря работе над аксиоматическими определениями языков программирования при помощи методов, которые принято называть аксиоматическими семантическими методами. Он разработал искусные алгоритмы, такие как алгоритм быстрой сортировки, а также изобрел и пропагандировал современные методы структуры данных в научных языках программирования.
Профессор Хоар много публиковался и входил в состав редколлегий нескольких всемирно известных журналов по информатике. В 1973 г. ему присудили премию АСМ за лучшую работу по языкам программирования и программным системам. В 1978 г. профессор Хоар стал почетным членом Британского вычислительного общества, и ему присудили степень почетного доктора в университете Южной Калифорнии в 1979 г.
В 1961 г. в Брайтоне (Англия) был введен курс Алгола–60, который преподавали Питер Наур, Эдсгер Дейкстра и Питер Ланден. Хоар посещал этот курс вместе с сотрудницей по языковому проекту Джилл Пим, научным руководителем отдела Роджером Куком и коммерческим директором Полом Кингом. Именно здесь он впервые узнал о рекурсивных процедурах и увидел, как программировать метод сортировки, который Хоар раньше считал трудным для объяснения. Именно здесь он написал программу, нескромно названную "быстрая сортировка" (Quick Sort), которая легла в основу его карьеры ученого в области компьютеров.
После завершения курса Алгола–60 в Брайтоне, Роджер Кук вместо разработки нового языка предложил реализовать Алгол–60. С этим предложением все тут же согласились — Чарльз Хоар теперь оценивает это как счастливое для него решение. Но все сотрудники знали в то время, что им не хватит опыта и сноровки реализовать весь язык, и потому Хоару предстояло реализовать скромное его подмножество. В этом проекте он принял некоторые основные принципы, которые не утратили своей правильности и по сей день.
Первым принципом была надежность. Согласно этому принципу, каждая синтаксически неправильная программа должна быть отброшена компилятором, а на каждую синтаксически корректную программу должен быть выдан результат или сообщение об ошибке, которое должно быть предсказуемым и понятным в терминах текста исходной программы.
Второй принцип в разработке — краткость объектного кода, порожденного компилятором, и компактность рабочих данных в ходе выполнения.
Третий принцип при разработке заключается в том, что входные и выходные соглашения для процедур и функций должны быть столь же компактными и эффективными, как и для написанных в машинном коде подпрограмм.
Четвертый принцип состоял в том, что компилятор должен быть однопроходным. Компилятор состоял из набора взаимно рекурсивных процедур, каждая из которых могла анализировать и транслировать основные синтаксические единицы языка — оператор, выражение, объявление и т. д. Он был разработан и документирован на Алголе–60 и затем перекодирован в десятичный машинный код с использованием явного стека для рекурсии. Без понятия рекурсии в Алголе–60, в то время весьма спорного, мы не смогли бы написать этот компилятор.
В середине 1963 г. главным образом в результате работы Джилл Пим и Джеффа Холмора была готова первая версия компилятора. В результате работы над Алголом в августе 1962 г. Хоар был приглашен в новую рабочую группу 2.1 IFIP, образованную для поддержки и развития Алгола. Первой главной целью этой группы была разработка такого подмножества этого языка, из которого были бы удалены его наименее удачные свойства.