Андрей Петрович Ершов (1931-1988)
ределяющий
вклад в теорию и методологию этой области. Он по праву считается
основателем и лидером этого направления, активно развиваемого сейчас в
разных коллективах и странах.
Отталкиваясь от трансформационной модели смешанных вычислений и от своих
работ в области трансляции и оптимизации программ, Ершов определяет
концепцию трансформационной машины. Трансформационная машина есть
абстрактное вычислительное устройство, выполняющее программы в некотором
"сверхязыке", действиями которого являются трансформации пар (программа,
данные). Действия эти поддерживают сохранение некоторого инварианта, что
обеспечивает корректность трансформаций. Концепция трансформационной машины
представляется весьма многообещающей - и как теоретическая модель для
описания и обоснования процессов обработки программ, и как методологическая
основа построения различных инструментальных процессов.
Концепция трансформационной машины является тем важным вкладом в
трансформационный подход к построению программ, энтузиастом и
пропагандистом которого был А.П.Ершов, и различные аспекты которого
исследуются в ряде его работ 80-х гг. Трансформационный подход развивается
сейчас в ряде коллективов у нас и за рубежом и представляется весьма
перспективным, так как он дает возможность получать программы с хорошими
показателями таких качеств, как надежность и эффективность, а также
повышает степень переиспользования программного обеспечения. Работы Ершова
по трансформационному подходу дают естественную точку роста для последующих
исследований.
Следует заметить, что наряду с работами по языкам и методам трансляции
работы по смешанным вычислениям и трансформационному подходу были
источником уже упоминавшейся идеи Ершова о лексиконе программирования.
Заключают работы Ершова по теории программирования его публикации,
посвященные понятию вычислимости. Сам он определяет эти работы как попытку
синтеза взглядов на вычислимость, сложившихся как в математической логике,
так и в теоретическом программировании. Так как понятие вычислимости
является одним из главных как в той, так и в другой области и имеет
фундаментальное значение для других программистских понятий, очевидно, что
определение понятия вычислимости, абстрагированного от несущественных
синтаксических или модельных понятий и вместе с тем вбирающего необходимые
для теории и многочисленной практики сущности, является одной из главных
задач, определяющих дальнейшее взаимовлияние математики и программирования.
В фундаментальной работе «Проблемы программирования: Всесоюзная конференция
в Новосибирске» (Вестник АН СССР, 1970, №6) проводится глубокий анализ
большого числа определений вычислимости, сложившихся в указанных областях,
их сопоставление и оценка вклада в общую теорию. На основании данного
анализа Ершов нащупывает идею определения вычислимости: свести определение
вычислимой функции к понятию детерминанта, т.е. того, что является
инвариантным к различным способам задания вычислений. По-видимому, эти
работы Ершова будут иметь такое же стимулирующее значение для исследований
в данной области, как и его работы начала 70-х гг. для теории схем
программ.
Проект АИСТ
Одной из важных заслуг Ершова перед отечественным и мировым
программированием является то, что он умел оценить текущее состояние науки
и практики и наметить те реальные точки роста и перспективы исследований,
которые будут определять развитие программирования. Так, во второй половине
60-х гг. он одним из первых в стране осознал те новые возможности общения с
ЭВМ, которые создают системы разделения времени. В 1966 г. он организует
работы по автоматическим информационным станциям (проект АИСТ). Проект
АИСТ, создателем и руководителем которого был А.П.Ершов, объединял широкий
круг исследований по архитектуре вычислительных комплексов, их программному
обеспечению и моделированию вычислительных систем. В рамках этого проекта
была создана первая в стране развитая система разделения времени АИСТ-0,
проект которой был предметом доклада на Конгрессе AFIPS 1967 г. («Входной
язык системы автоматического программирования» предварительное сообщение —
М.: ВЦ АН СССР, 1961), а итоговый доклад был сделан на 2-й Всесоюзной
конференции по программированию в 1970 г. («Программирующая программа для
машины» Третье Всесоюзное совещание по вычислительной математике и
применению средств вычислительной техники, 1961). Реализованная на
многомашинном комплексе из отечественных ЭВМ, эта система была во многом
пионерской и внесла большой вклад в развитие отечественных работ по
архитектуре ЭВМ и операционным системам, которые, к сожалению, были в
дальнейшем заторможены ориентацией на копирование зарубежных разработок.
Ряд таких свойств системы, как разделение в процессорах комплекса
управления и обработки, иерархичность строения программного обеспечения,
выделение ядра операционной системы, естественное сочетание различных
режимов общения и обработки, обеспечили хорошую эффективность и гибкость
системы.
Осмысливая опыт проекта АИСТ и других подобных работ у нас в стране и
за рубежом в своем докладе на Конгрессе ИФИП-68, Ершов выдвигает несколько
насущных тезисов: о специализации процессов в многопроцессорном комплексе
для разделения времени, об универсальных и специализированных системах
разделения времени и областях их применимости, о различии требований
профессионалов и непрофессионалов в программировании к общению с системами
разделения времени и о том аспекте систем, который впоследствии будет
назван дружественностью к пользователю.
Опыт руководства такими большими проектами, как АЛЬФА и АИСТ, и работы
в этих проектах дали Ершову осознание общих проблем программирования и
создания программного обеспечения. В 1973 г. - появляется оказавшая большое
влияние на развитие отечественных работ статья. В этой работе проводился
глубокий и развернутый анализ как внешних свойств машин четвертого
поколения, так и различных видов программных систем: операционных систем,
систем программирования и их входных языков, специализированных систем
обработки информации, в том числе пакетов прикладных программ (в работе
дается классификация ППП, сохраняющая свою ценность и в наше время).
Выделен ряд характерных систем обработки информации и определены их внешние
и внутренние свойства. Очерчена общая модель операционной системы - так
называемая базовая операционная система с концентрическим строением.
Отмеченная в работе общность в реализации языков программирования, создании
процессоров диалоговых языков и систем отображения хотя и не вылилась, как
предполагал автор, в создание универсальных систем, но стимулировала работы
по нахождению общей методологии создания таких систем (впрочем, некоторая
ограниченная в своей универсальности многоязыковая транслирующая система на
данной общности была построена - это система БЕТА, о которой говорилось
выше).
Технологические проблемы
Существенным в этой работе было также то, что в ней поднимались
технологические проблемы разработки программного обеспечения. Ершов был
одним из первых в стране, кто поставил проблему создания технологии
программирования. Надо сказать, что стремление Ершова провести аналогию
между созданием программного обеспечения и промышленным производством,
ввести дисциплину, организацию, инструментирование в такой казавшийся
многим старым программистам нерегламентируемый творческий процесс, как
программирование, встречало у многих наших коллег конца 60-х гг. активное
сопротивление и даже резкий протест. То, что сейчас кажется тривиальным
утверждением, Ершову приходилось отстаивать в жарких спорах и дискуссиях.
Ершов еще в 60-х гг. отстаивал точку зрения, что программирование,
несмотря на интеллектуальность и творческий характер этого процесса,
нуждается в организации и регламентации, наборе или системе соглашений и
правил, не говоря уже об инструментальном обеспечении. Руководя и активно
участвуя в больших программных проектах, Ершов с его пытливым умом не мог
не задуматься над вопросом: "Как это делается?" Еще в работах по АЛЬФА и
АИСТу он пишет о ряде организационных принципов и регламентирующих
соглашений. Первой его работой, полностью посвященной технологии
программирования, была статья («Об одном виде контакта человека с
машиной»). Автоматизация мыслительных процессов» материалы научных
семинаров по теоретическим и прикладным вопросам кибернетики, 1963.), она
же была первой советской работой в этом возникшем в те годы новом
направлении, и сам русский термин - технология программирования (software
ingineering) - был предложен Ершовым. В соответствии с названием большая
часть работы была посвящена собственно технологии трансляции. В ней
рассматривались общие вопросы проектирования трансляторов: их структуры,
системы технических процедур и пр., вопросы выбора методов реализации,
вопросы организации отладки и документирования. Отдельно рассматривались
проблемы автоматизации построения трансляторов и автоматизированного
построения документации. Важной стороной работы было то, что проблемы
технологии трансляции рассматривались в общем контексте технологии создания
больших программных систем.
В р
| | скачать работу |
Андрей Петрович Ершов (1931-1988) |