Хоар, Чарльз Энтони Ричард
Сэр Чарльз Э́нтони Ри́чард Хо́ар (англ. Charles Antony Richard Hoare или Tony Hoare или C.A.R. Hoare; род. 11 января 1934, Коломбо, Шри-Ланка[4]) — английский учёный, специализирующийся в области информатики и вычислительной техники. Наиболее известен как разработчик алгоритма «быстрой сортировки» (1960), на сегодняшний день являющегося наиболее популярным алгоритмом сортировки.
Другие известные результаты его работы: язык Z спецификаций и параллельная модель взаимодействия последовательных процессов (CSP, Communicating Sequential Process). В числе его заслуг — разработка логики Хоара (англ. Hoare Logic), научной основы для конструирования корректных программ, используемой для определения и разработки языков программирования. Хоар создал ряд трудов по созданию спецификаций, проектированию, реализации и сопровождению программ, показывающих важность научных результатов для увеличения производительности компьютеров и повышения надёжности программного обеспечения.
Общие сведения
| Чарльз Энтони Ричард Хоар | |
|---|---|
| Charles Antony Richard Hoare | |
| Дата рождения | 11 января 1934[1][2] (92 года) |
| Место рождения | Коломбо, Цейлон, Британская империя, ныне Шри-Ланка |
| Дата смерти | 5 марта 2026 |
| Место смерти | Кембридж, Великобритания |
| Страна | |
| Научная сфера | информатика |
| Место работы | |
| Образование | |
| Научный руководитель | Leslie Fox[3] |
| Известен как | создатель алгоритма «быстрой сортировки». |
| Награды и премии |
|
| Сайт | cs.ox.ac.uk/people/tony.… |
Биография
Родился в Коломбо в Шри-Ланке. Получил степень бакалавра по классическим языкам в Оксфордском университете в 1956 году. Проходил службу в Королевском военно-морском флоте Великобритании в 1956—1958 годы. Изучив русский язык, в 1959 году Хоар обучался в МГУ компьютерному переводу, а также теории вероятностей в школе Колмогорова. В 1960, из-за политического кризиса, связанного с уничтожением разведывательного самолёта У-2, он покинул Советский Союз и начал работать в небольшой компании по производству компьютеров Elliott Brothers, где занимался реализацией языка ALGOL60. Там же он начал заниматься разработкой алгоритмов.
В 1968 году стал профессором информатики и вычислительной техники в университете Квинс в Белфасте.
В 1977 году вернулся в Оксфорд, как профессор вычислительной техники, чтобы возглавить исследовательскую группу Programming Research Group, в задачу которой входило укрепление связей промышленных, академических и государственных структур, работающих в сфере информационных технологий. Тематика его исследований в Оксфорде: корректность программных спецификаций, проектирование и разработка критичных и некритичных систем.
В 1999 году вышел на пенсию в звании почётного профессора и перешёл на должность старшего ведущего исследователя в Microsoft Research в Кембридже, которую занимал до 2015 года, после чего перешёл в статус почётного исследователя (Emeritus Researcher)[5].
Скончался 5 марта 2026 года в Кембридже в возрасте 92 лет дома в окружении семьи[4].
Научный вклад
Основной научный вклад Чарльза Хоара включает разработку ряда фундаментальных теорий и алгоритмов:
- Быстрая сортировка (Quicksort) (1960) — алгоритм сортировки, основанный на принципе «разделяй и властвуй». Среднее время его работы составляет O(n log n), что является асимптотически оптимальным для алгоритмов, основанных на сравнении (в худшем случае сложность достигает O(n²)). Изначально метод был создан для сортировки информации на магнитной ленте с минимальным числом перемоток[6].
- Логика Хоара (1969) — формальная система для доказательства корректности компьютерных программ. Она использует «тройки Хоара» вида
{P} C {Q}, гдеP— предусловие,C— программа (команда), аQ— постусловие. Система заложила основы для формальной верификации программ и контрактного программирования. - Взаимодействующие последовательные процессы (CSP) (1978) — формальный язык для описания шаблонов взаимодействия в параллельных (конкурентных) системах. CSP описывает системы как наборы независимых процессов, взаимодействующих друг с другом исключительно через передачу сообщений по каналам. Эта модель оказала влияние на дизайн языков программирования, ориентированных на параллелизм (Occam, Erlang, Go), и позволяет математически строго анализировать и предотвращать взаимные блокировки и недетерминизм[7].
Награды
В число наград входят:
- 1980 — Премия Тьюринга (премия ACM) за «его выдающиеся достижения в определении и дизайне языков программирования»[8].
- 1981 — Мемориальная премия Гарри Гуда.
- 1985 — Медаль Фарадея.
- 1990 — Пионер компьютерной техники.
- 2000 — рыцарский титул за заслуги в области образования и компьютерных наук, Премия Киото.
- 2006 — Fellow Awards от Музея компьютерной истории.
- 2011 — Медаль Джона фон Неймана.
В 2013 году был удостоен звания почётного доктора Санкт-Петербургского национального исследовательского университета информационных технологий, механики и оптики[9].
Книги
- O.-J. Dahl, E. W. Dijkstra and C. A. R. Hoare, Structured Programming. Academic Press, 1972. ISBN 0-12-200550-3. Перевод: Дал У., Дейкстра Э., Хоор К., Структурное программирование. М.:"Мир", 1975.
- C. A. R. Hoare, Communicating Sequential Processes. Prentice Hall International Series in Computer Science, 1985. ISBN 0-13-153271-5 hardback or ISBN 0-13-153289-8 paperback. Перевод: Хоар Ч., Взаимодействующие последовательные процессы . М: Мир, 1989.
- C. A. R. Hoare and M. J. C. Gordon, Mechanised Reasoning and Hardware Design. Prentice Hall International Series in Computer Science, 1992. ISBN 0-13-572405-8.
- C. A. R. Hoare and He Jifeng, Unifying Theories of Programming. Prentice Hall International Series in Computer Science, 1998. ISBN 0-13-458761-8.
Примечания
Ссылки
- http://research.microsoft.com/en-us/people/thoare/ Microsoft Research — короткая биография
- http://web.comlab.ox.ac.uk/oucl/people/tony.hoare.html Оксфордский университет-Хоар — почетный профессор информатики
- https://web.archive.org/web/20030315091028/http://www.braithwaite-lee.com/opinions/p75-hoare.pdf Стенограмма выступления на вручении Приза Тьюринга в 1980г
- http://www.usingcsp.com/ Книга о CSP