Под руководством Андрея Петровича Ершова были созданы такие известные оптимизирующие системы программирования, как АЛЬФА, АЛЬФА-6, БЕТА, которые во многом определили современную методологию оптимизирующей трансляции.
Разработка системы АЛЬФА началась с создания языка — это было характерно для традиций программирующих программ. Данный язык отталкивался от первоначальной версии ALGOL 60 — ALGOL 58. Группа, руководимая Ершовым, вела разработку параллельно с международной группой, создающей ALGOL 60. Во многом работы этих групп оказались совпадающими, поэтому после опубликования описания ALGOL 60 новый, созданный группой Ершова, язык был сформулирован как расширение ALGOL 60. Этот язык, носивший предварительные названия "Входной", "Сибирский", окончательно утвердился под названием АЛЬФА-язык.
Как пишет И. В. Поттосин, "в АЛЬФА-языке впервые введено понятие многомерных значений и определены операции над ними, в том числе операции конструирования. Все это вошло в структуру таких языков, как PL/1, ALGOL 68, ADA. Впервые в языке были введены и такие естественные для современных языков концепции, как разнообразие циклов, задание начальных значений выражениями. Интересными, но не повторенными по существу свойствами языка были перечисления и верхние (временные) индексы. В своих метасредствах язык впервые выходил за пределы контекстно- свободных грамматик.
Система АЛЬФА была первой в мировой практике оптимизирующей системой программирования для языков, сложнее, чем FORTRAN. Существовавший в это же время английский проект (Хоукинс и Хакстейбл) для ALGOL 60, аналогичный АЛЬФА по функциональным возможностям, так и не был доведен до конца. Об этом важно сказать потому, что сама возможность существования трансляторов для языков, сложнее FORTRAN, с приемлемой эффективностью объектных программ в то время многими оспаривалась. Система АЛЬФА стала конструктивным доказательством такой возможности, и это существенно, ибо открывало границы созданию новых, семантически более богатых языков. Проект системы был опубликован Ершовым в 1961 году. Монография по системе вышла в свет в 1967 году".
Дальнейшие работы А. П. Ершова по оптимизирующей трансляции привели к появлению широко известной системы АЛЬФА-6. Повторяя во многом систему АЛЬФА, система АЛЬФА-6 обладала более компактной схемой трансляции, более четко был выделен в схеме трансляции внутренний язык представления программы как основа для алгоритмов оптимизирующих преобразований.
В 1969 году А. П. Ершов становится профессором Новосибирского университета (кандидатскую диссертацию он подготовил еще в 1958 году, но в связи с настороженным отношением математиков к новой науке — программированию, защитил ее только в 1962 году. Докторскую диссертацию по методам построения трансляторов он защитил в 1968 году).
В 1971 году А. П. Ершовым была опубликована статья "Универсальный программирующий процессор", которая положила начало работе по проекту БЕТА. Исследования по проекту БЕТА представляли собой многолетнюю (окончательная публикация появилась в 1982 году) методологическую и экспериментальную работу, связанную с осознанием фундаментальных основ трансляции и языков программирования.
"Одной из центральных концепций схемы трансляции БЕТА, — как пишет И. В. Поттосин, — является концепция внутреннего языка. Исследования по внутреннему языку в проекте БЕТА составили заметную часть общемировых исследований, которые ввели понятие внутреннего языка, внутреннего представления программы как фундаментальное для методологии построения большого числа различных языковых процессоров — трансляторов, анализаторов свойств, систем преобразований программ и др. В системе БЕТА внутренний язык выступает в трех качествах — как семантический базис входных языков, как основа для оптимизирующих преобразований на его уровне, как исходное представление для генерации объектного кода на различных ЭВМ".
В 60—70-е годы А. П. Ершов, наряду с решением проблем автоматизации программирования, много внимания уделяет в своих работах вопросам теоретического программирования (первая статья об операторных алгоритмах была опубликована еще в 1958 году). Его работы 1967–1973 годов оказали большое влияние на развитие теоретического программирования. В них был сформулирован ряд проблем теории схем программ, сопоставлены различные направления и модели этой теории, выработана общая система понятий и связаны воедино разнообразные результаты и их применения, иначе говоря, создан фундамент теории схем программ как цельного направления теоретического программирования.
Читать дальше