1980 год

C. Anthony R. Hoare (1934)


«За его фундаментальный вклад в определение и разработку языков программирования»


Страна: Великобритания

Образование: Бакалавр науки в области классической литературы и языков, Оксфордский университет, 1956


О лауреате

Anthony Hoare наиболее известен как разработчик алгоритма “быстрой сортировки” на сегодняшний день являющегося наиболее популярным алгоритмом сортировки. Другие известные результаты его работы: язык Z спецификаций и параллельная модель взаимодействия последовательных процессов. В числе его заслуг – разработка логики Hoare, научной основы для конструирования конкретных программ, используемой для определения и разработки языков программирования.

В 1959 году Hoare обучался по обмену в Московском Государственном Университете, где изучал машинный перевод с А. Колмогоровым. Hoare рассказывал, что на протяжении этого времени он наблюдал проблему сортировки и именно здесь он подумал о новом алгоритме сортировки, который стал позже известен как Quicksort. Возвращаясь в Британию после обучения в МГУ, он присоединился к компании “ Elliott Brothers ”. Одним из крупнейших его проектов было руководство командой, которая производила компилятор ALGOL 60 для Elliott 503. Во время курсов языка программирования ALGOG 60 (который преподавали такие известные люди как Edsger Dijkstra, Peter Landin и Peter Naur) Тони заметил, что концепт рекурсии – это ключ к ясному представлению алгоритма быстрой сортировки.

Также, Hoare сообщил, что невозможность поставки операционной системы для Elliott 503 побудила его к исследованию параллелизма в выполнении программы.

1968 году он стал профессором в Университете Куинс, Белфаст. Долгое время он был недоволен принятым способом документирования семантики языков программирования и стремился к стилю, позволяющему записывать те места, где разработчик языка намеренно оставляет некоторые особенности недоопределенными.

Hoare сделал два смелых дополнительных шага, и его “An axiomatic basis for computer programming” стал одним из самых влиятельных трудов по теории программирования. Сначала он отбросил блок-схемы и разработал логическую систему для рассуждения о программах, используя спецификации поведения оператора, которые стали известны как Hoare triples. Во-вторых, он утверждал, что его “аксиоматическую" систему можно рассматривать как абстрактный способ записи семантики языков программирования. Позже Hoare опубликовал ряд разработок этой идеи. Стремление к «семантике Hoare» оказало большое влияние на понимание языков программирования и задачу исследования программ.

В 1978 году в журнале “Communications of the ACM” (и впоследствии в своей книге “Communicating Sequential Processes”) он предложил язык CSP, где взаимодействие между программами ограничивалось заранее запланированными коммуникациями. Первоначально CSP был только программным средством, но оно также породило транспьютерную архитектуру машины.




Ключевые слова: Quicksort (алгоритм "быстрой сортировки"), Hoare logic (логика Хоара), Hoare triples (тройка Хоара), Quickselect (алгоритм выбора), Null reference (нулевой указатель), Communicating Sequential Processes (взаимодействующие последовательные процессы, формальный язык для описания моделей взаимодействия в параллельных системах), Structured programming (структурное программирование)


Краткая библиография

1.

Hoare, C.A.R., An axiomatic basis for computer programming, Communications of the ACM, Vol. 12, Num. 10, October 1969, pp. 576-580, 583.

В этой статье он показал, как следует рассуждать о выполнении программы, используя логические спецификации поведения операторов, которые стали известны как Hoare triples.

2.

Hoare, C.A.R., Hints on programming language design, Technical Report STAN-CS-73-403, Stanford University, October 1973.

Эта статья представляет точку зрения, что язык программирования - это средство, которое должно помогать программисту в наиболее сложных аспектах его деятельности, а именно: дизайне программ, документации и отладке.

3.

Hoare, C.A.R., The emperor's old clothes, Communications of the ACM, Vol. 24, Num. 2, February 1981, pp. 75-83.

В этой статье Hoare снова предупреждает о том, что простота и элегантность являются необходимыми, если программное обеспечение остается в пределах интеллектуального контроля.