Андрей Петрович Ершов родился 19 апреля 1931 г. в Москве в семье потомственных русских интеллигентов. Его отец был инженером-химиком, мать — библиотекарем.
А.П. Ершов окончил механико-математический факультет Московского государственного университета в 1954 г. Это был первый в СССР выпуск программистов с университетским образованием. Его учителями были С.Л. Соболев, руководивший кафедрой вычислительной математики МГУ и А.А. Ляпунов, прочитавший в МГУ первый курс программирования в 1952/53 гг.
Под руководством А.А. Ляпунова в 1954-1957 гг. А.П. Ершов учился в аспирантуре МГУ. Кандидатскую диссертацию, посвященную понятию операторного алгоритма, А.П. Ершов подготовил в 1957 г., однако защитить ее ему удалось только в 1962 г. в связи с настороженным отношением математиков к новой науке.
С 1957 г. А.П. Ершов заведовал отделом автоматизации программирования в ВЦ АН СССР, директором которого был А.А. Дородницын.
Как большинство отечественных программистов, А.П. Ершов начинал с работ по созданию алгоритмов численных методов и стандартных программ для ЭВМ «Стрела» и БЭСМ. Однако уже тогда в круг научных интересов А.П. Ершова вошли проблемы автоматизации программирования. Изданная в 1958 г. книга А.П. Ершова «Программирующая программа для Быстродействующей электронной счетной машины» была первой в мировой литературе монографией по автоматизации программирования. Уже в 1959 г. ее перевели на английский язык и издали в Англии. Начало работ А.П. Ершова в этом направлении было положено операторными схемами, предложенными А.А. Ляпуновым.
В 1958 г. А.П. Ершов принял участие в Теддингтонском симпозиуме по механизации мыслительных процессов в Национальной физической лаборатории (Англия), где сделал доклады о работах ВЦ АН СССР в области автоматизации программирования и теоретического программирования. Там А.П. Ершов встретился с Джоном Маккарти, работавшим в Стенфордском университете (США). Эта встреча переросла в дружбу и сотрудничество на долгие годы.
В связи с образованием Сибирского отделения АН СССР А.П. Ершов в 1960 г. возглавил отдел программирования Института математики СО АН СССР по приглашению его директора С.Л. Соболева. В дальнейшем отдел программирования, созданный А.П. Ершовым, вошел в состав ВЦ СО АН СССР, организованного в 1964 г. Г.И. Марчуком.
В 60-х годах А.П. Ершов создал новосибирскую школу системного и теоретического программирования, став ее идейным лидером и неформальным главой содружества программистов академической и вузовской науки в Новосибирске.
Проекты «Альфа», «Альфа-6» и «Бета», выполненные под руководством А.П. Ершова, были связаны с разработкой и реализацией языков программирования типа Алгол и положили начало методологии оптимизирующей трансляции. Группа новосибирских программистов (А.П. Ершов, Г.И. Кожухин, Ю.М. Волошин, И.В. Поттосин) вела исследование параллельно с международной группой, разрабатывавшей Алгол-60.
Результаты деятельности этих групп во многом совпали, а Альфа — язык, созданный группой Ершова, был сформулирован как расширение Алгола-60. Реализация системы Альфа стала для мировой практики конструктивным доказательством возможности создания трансляторов для языков, более сложных, чем Фортран, с приемлемой эффективностью объектных кодов. Идея машинно-ориентированного языка, основанного на расширяемости и настраиваемости на объектный язык, была предложена и опубликована А.П. Ершовым совместно с А.Ф. Рарром в 1966 г. (A.P. Ershov, A.F. Rar. Sygma, a Symbolic generator and macroassembler. Proc of the IFIP Working Conf Pisa. ltaly. Sept 5-9.1966. Amsterdam. North-Holland.1968.)
Проект «Бета» охватывал исследования и эксперименты по совместной реализации широкого класса разных языков программирования и создание многоязыковой транслирующей системы. Типовая схема трансляции, разработанная на опыте языков 70-х годов и заложенная в систему Бета, оказалась практически пригодной и для языков 80-х годов: Симула-67, Паскаль, Ада и Модула-2.
Идея метапроцессоров, составляющая основу современных систем построения трансляторов, была реализована в системе Бета. А внутренний язык системы Бета с его машинно-ориентированными свойствами обеспечил практичность генерации объектных кодов на такие разные аппаратные архитектуры, как БЭСМ-6 и СМ ЭВМ.
Работы А.П. Ершова по теоретическому программированию идейно примыкали к его работам по автоматизации программирования. Исходя из предложенного А.А. Ляпуновым понятия логической схемы программы, А.П. Ершов рассматривал операторные алгоритмы применительно к преобразованиям программ.
Модели программ в виде схем Янова, предложенных в 1958 г., были изложены А.П. Ершовым в графовом представлении, что дало возможность ввести большую формализацию, яснее дать аксиоматику и проводить изучение более глубоких свойств схем Янова. Были рассмотрены и решены проблемы взаимных преобразований схем программ над распределенной и общей памятью. Итог исследований А.П. Ершова и его учеников по теории и практике экономии памяти и по схемам Янова был подведен в монографии «Введение в теоретическое программирование; Беседы о методе», изданной издательством «Наука» в 1977 г. и переведенной на английский язык в 1990 г. (Origins of programming: Discourses on metnodology. New York, Springer Verlag. 1990).
А.П. Ершовым в 1977 г. были опубликованы результаты работ, положивших начало новому направлению в системном программировании, которое получило название «смешанные вычисления». Понятие смешанного вычисления позволило с общей точки зрения исследовать и определить различные виды обработки программ: от трансляции и интерпретации до анализа программ, их преобразования и генерации самих языковых процессоров. А.П. Ершовым и его учениками — В.Э. Иткиным, Б.Н. Островским, В.К. Сабельфельдом, М.А. Бульонковым, было проведено исследование общей модели для различных видов обработки программ, введено понятие корректности смешанных вычислений, определены модели смешанных вычислений и получения остаточной программы, для которых можно доказывать корректность. Одна из таких моделей — трансформационная, в которой смешанное вычисление задается набором базовых трансформаций. В связи с этой моделью А.П. Ершов определил концепцию трансформационной машины, эта концепция явилась вкладом в подход к построению программ, опубликованный А.П. Ершовым в 1981 г. (The transformational machine. Theme and variations. Lect Notes in Computer Sci, 1981, v. 118, p. 16-32).
Работы А.П. Ершова по теории программирования включали вопросы, связанные с понятием вычислимости. На основании анализа разных определений вычислимости А.П. Ершов пытался свести определение вычислимой функции к понятию детерминанта, т. е. того, что является инвариантным к различным способам задания вычислений.
Во второй половине 60-х годов А.П. Ершов организовал работы по проекту АИСТ (Автоматические информационные станции), объединявшему исследования по архитектуре, программному обеспечению и моделированию многомашинных комплексов с разделением времени. Принципы построения таких комплексов А.П. Ершов выдвинул в своем докладе на Конгрессе IFIP-68.
А.П. Ершов был одним из первых в стране, кто поставил проблему создания технологии программирования. Первая его статья по технологии разработки систем программирования, опубликованная в 1972 г., стала основополагающей для последующих исследований в этом направлении. Проанализированные А.П. Ершовым три вида программирования, обеспечивающие его доказательность: синтезирующее, сборочное и конкретизирующее, — легли в основу методологии дальнейших работ.
Наконец, А.П. Ершову принадлежат глубокие размышления о программировании как науке и виде профессиональной деятельности, о творческой природе и специфике труда программистов (Two faces of programming. Theory and Practice of Software Technology. Amsterdam, Horth-Holland, 1983, p. 145-149; Aesthetic and the human factor in progamming. Comm of the ACM, 1972, v. 15, № 7, p. 501-505; Datamation, 1972, v. 18, № 7, p. 62-67).
Возможные направления будущих исследований А.П. Ершов сформулировал в Концепции лексикона программирования, интегрирующей подходы к развитию теории программирования и инженерного конструирования программ, которую предстоит еще создать мировой науке. Он говорил, что потребовалось полтора века, чтобы, начиная с Эйлера, построить современное здание математического анализа и на его основе науку инженерного конструирования машин и сооружений. Соразмерную задачу для программ наше и следующие поколения должны решить не более чем за пять десятков лет.
Докторская диссертация, посвященная методам построения трансляторов, была защищена А.П. Ершовым в 1968 г.
А.П. Ершов был первым программистом, избранным в 1970 г. членом-корреспондентом АН СССР, а в 1984 г. — действительным членом АН СССР за научные достижения в области программирования. В 1983 г. за теоретические работы по смешанным вычислениям А.П. Ершову была присуждена престижная премия АН СССР им. академика Крылова за фундаментальные работы в области прикладной математики.
Сознавая серьезные социальные последствия будущего широкого применения компьютеров, А.П. Ершов стал неутомимым борцом за школьную информатику. Он одним из первых предложил ввести в школьное обучение курс «Основы информатики и вычислительной техники», составил необходимые учебные планы и написал первый учебник по этому курсу. А.П. Ершову принадлежит фраза «Программирование — вторая грамотность», которой он образно выразил роль введения основ информатики в школьное обучение как базы информационной культуры будущих поколений.
А.П. Ершов оказал большое влияние на развитие программистской науки и практики в СССР. Это влияние не ограничивалось только тем, что он был главой одной из ведущих научных школ и его собственным научным вкладом. С конца 60-х годов А.П. Ершов находился в центре программистской жизни в СССР. Он был одним из основных организаторов первых национальных конференций по программированию, семинаров и школ, членом редколлегий ведущих журналов и редактором журнала «Микропроцессорные средства и системы». А.П. Ершов активно участвовал в работе Международной ассоциации по обработке информации (IFIP), был членом ряда комитетов и рабочих групп IFIP, организатором рабочих конференций IFIP. Он состоял членом редколлегии международных изданий: Information Processing Letters, Theoretical Computer Science, Acta Informatica и др.
Андрей Петрович Ершов умер 8 декабря 1988 г. Ныне имя А.П. Ершова носит Институт систем информатики СО РАН. В этом институте создан мемориальный фонд А.П. Ершова.
Литература