Андрей Петрович Ершов (1931-1988)
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферати безкоштовно, образец титульный реферата
| Добавил(а) на сайт: Zhivkov.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата
Следует заметить, что наряду с работами по языкам и методам трансляции работы по смешанным вычислениям и трансформационному подходу были источником уже упоминавшейся идеи Ершова о лексиконе программирования.
Заключают работы Ершова по теории программирования его публикации, посвященные понятию вычислимости. Сам он определяет эти работы как попытку
синтеза взглядов на вычислимость, сложившихся как в математической логике, так и в теоретическом программировании. Так как понятие вычислимости
является одним из главных как в той, так и в другой области и имеет
фундаментальное значение для других программистских понятий, очевидно, что
определение понятия вычислимости, абстрагированного от несущественных
синтаксических или модельных понятий и вместе с тем вбирающего необходимые
для теории и многочисленной практики сущности, является одной из главных
задач, определяющих дальнейшее взаимовлияние математики и программирования.
В фундаментальной работе «Проблемы программирования: Всесоюзная конференция
в Новосибирске» (Вестник АН СССР, 1970, №6) проводится глубокий анализ
большого числа определений вычислимости, сложившихся в указанных областях, их сопоставление и оценка вклада в общую теорию. На основании данного
анализа Ершов нащупывает идею определения вычислимости: свести определение
вычислимой функции к понятию детерминанта, т.е. того, что является
инвариантным к различным способам задания вычислений. По-видимому, эти
работы Ершова будут иметь такое же стимулирующее значение для исследований
в данной области, как и его работы начала 70-х гг. для теории схем
программ.
Проект АИСТ
Одной из важных заслуг Ершова перед отечественным и мировым
программированием является то, что он умел оценить текущее состояние науки
и практики и наметить те реальные точки роста и перспективы исследований, которые будут определять развитие программирования. Так, во второй половине
60-х гг. он одним из первых в стране осознал те новые возможности общения с
ЭВМ, которые создают системы разделения времени. В 1966 г. он организует
работы по автоматическим информационным станциям (проект АИСТ). Проект
АИСТ, создателем и руководителем которого был А.П.Ершов, объединял широкий
круг исследований по архитектуре вычислительных комплексов, их программному
обеспечению и моделированию вычислительных систем. В рамках этого проекта
была создана первая в стране развитая система разделения времени АИСТ-0, проект которой был предметом доклада на Конгрессе AFIPS 1967 г. («Входной
язык системы автоматического программирования» предварительное сообщение —
М.: ВЦ АН СССР, 1961), а итоговый доклад был сделан на 2-й Всесоюзной
конференции по программированию в 1970 г. («Программирующая программа для
машины» Третье Всесоюзное совещание по вычислительной математике и
применению средств вычислительной техники, 1961). Реализованная на
многомашинном комплексе из отечественных ЭВМ, эта система была во многом
пионерской и внесла большой вклад в развитие отечественных работ по
архитектуре ЭВМ и операционным системам, которые, к сожалению, были в
дальнейшем заторможены ориентацией на копирование зарубежных разработок.
Ряд таких свойств системы, как разделение в процессорах комплекса
управления и обработки, иерархичность строения программного обеспечения, выделение ядра операционной системы, естественное сочетание различных
режимов общения и обработки, обеспечили хорошую эффективность и гибкость
системы.
Осмысливая опыт проекта АИСТ и других подобных работ у нас в стране и за рубежом в своем докладе на Конгрессе ИФИП-68, Ершов выдвигает несколько насущных тезисов: о специализации процессов в многопроцессорном комплексе для разделения времени, об универсальных и специализированных системах разделения времени и областях их применимости, о различии требований профессионалов и непрофессионалов в программировании к общению с системами разделения времени и о том аспекте систем, который впоследствии будет назван дружественностью к пользователю.
Опыт руководства такими большими проектами, как АЛЬФА и АИСТ, и работы
в этих проектах дали Ершову осознание общих проблем программирования и
создания программного обеспечения. В 1973 г. - появляется оказавшая большое
влияние на развитие отечественных работ статья. В этой работе проводился
глубокий и развернутый анализ как внешних свойств машин четвертого
поколения, так и различных видов программных систем: операционных систем, систем программирования и их входных языков, специализированных систем
обработки информации, в том числе пакетов прикладных программ (в работе
дается классификация ППП, сохраняющая свою ценность и в наше время).
Выделен ряд характерных систем обработки информации и определены их внешние
и внутренние свойства. Очерчена общая модель операционной системы - так
называемая базовая операционная система с концентрическим строением.
Отмеченная в работе общность в реализации языков программирования, создании
процессоров диалоговых языков и систем отображения хотя и не вылилась, как
предполагал автор, в создание универсальных систем, но стимулировала работы
по нахождению общей методологии создания таких систем (впрочем, некоторая
ограниченная в своей универсальности многоязыковая транслирующая система на
данной общности была построена - это система БЕТА, о которой говорилось
выше).
Технологические проблемы
Существенным в этой работе было также то, что в ней поднимались технологические проблемы разработки программного обеспечения. Ершов был одним из первых в стране, кто поставил проблему создания технологии программирования. Надо сказать, что стремление Ершова провести аналогию между созданием программного обеспечения и промышленным производством, ввести дисциплину, организацию, инструментирование в такой казавшийся многим старым программистам нерегламентируемый творческий процесс, как программирование, встречало у многих наших коллег конца 60-х гг. активное сопротивление и даже резкий протест. То, что сейчас кажется тривиальным утверждением, Ершову приходилось отстаивать в жарких спорах и дискуссиях.
Ершов еще в 60-х гг. отстаивал точку зрения, что программирование, несмотря на интеллектуальность и творческий характер этого процесса, нуждается в организации и регламентации, наборе или системе соглашений и
правил, не говоря уже об инструментальном обеспечении. Руководя и активно
участвуя в больших программных проектах, Ершов с его пытливым умом не мог
не задуматься над вопросом: "Как это делается?" Еще в работах по АЛЬФА и
АИСТу он пишет о ряде организационных принципов и регламентирующих
соглашений. Первой его работой, полностью посвященной технологии
программирования, была статья («Об одном виде контакта человека с
машиной»). Автоматизация мыслительных процессов» материалы научных
семинаров по теоретическим и прикладным вопросам кибернетики, 1963.), она
же была первой советской работой в этом возникшем в те годы новом
направлении, и сам русский термин - технология программирования (software
ingineering) - был предложен Ершовым. В соответствии с названием большая
часть работы была посвящена собственно технологии трансляции. В ней
рассматривались общие вопросы проектирования трансляторов: их структуры, системы технических процедур и пр., вопросы выбора методов реализации, вопросы организации отладки и документирования. Отдельно рассматривались
проблемы автоматизации построения трансляторов и автоматизированного
построения документации. Важной стороной работы было то, что проблемы
технологии трансляции рассматривались в общем контексте технологии создания
больших программных систем.
В ряде других работ Ершов исследует и развивает идеи технологии
программирования. Им была предложена матричная организация коллектива
разработчиков, внесен вклад в спецификацию этапов разработки, в том числе
применительно к разработке трансляторов, проведен анализ реальной
разработки (АЛЬФА-6) с точки зрения ее технологичности. В работе
«Алгоритмические языки программирования» (Вестник АН СССР. —1968. — №3), написанной совместно с Г.Д.Чининым, определяется, как должен быть
организован коллектив, ведущий разработку промышленных трансляторов, как
должна решаться такая важная проблема, как преемственность и
переиспользование разработанного программного обеспечения, как должен
проходить и информационно обеспечиваться процесс разработки.
Ориентированная на технологию трансляции, эта работа дает ряд хороших идей
по технологиям промышленной разработки других видов программного
обеспечения.
С общеметодологической точки зрения для развития технологий программирования, их обоснования и формирования концептуального фундамента крайне важной является работа, представляющая текст доклада Ершова на заседании Президиума Академии наук СССР. Для программистской общественности эта работа мне кажется не менее важной, чем для членов Президиума АН, которым сделан этот доклад.
Уже давно ведутся попытки построить процесс программирования как
доказательный, при котором правильность программы обеспечиваема или
проверяема на каждом этапе ее построения. Для реальных технологий
программирования с их несомненным требованием обеспечения надежности
(высокой степени правильности) программы эти попытки при их удачном
продвижении имели бы неоценимое значение. Известен, например, подход
Э.В.Дейкстры, который основан на идеальной тенденции строить программу как
точный вывод из математической постановки задачи. Несмотря на свою
идеальность и "навязываемость" жесткой дисциплины, этот подход является
идейной основой (может быть, не до конца чисто реализуемой) ряда
современных технологий. Однако подход Ершова, связанный с оценкой реального
опыта программирования и дифференциацией различных его видов, - не
навязывание дисциплины, а ее извлечение из практики - кажется и более
практичным, и более широким.
Ершов выделяет и анализирует три вида программирования, обеспечивающих
его доказательность: синтезирующее, сборочное и конкретизирующее.
Синтезирующее программирование (одним из типов которого является то, которое осуществляется по методу Дейкстры) связано с автоматическим, автоматизируемым или ручным манипулированием знанием о задаче, области
применения и общематематических способах доказательного рассуждения.
Сборочное программирование осуществляет построение программы из уже
существующих (проверенных на правильность) фрагментов. Конкретизирующее
программирование основано на систематическом построении специализированных
программ из универсальной заготовки (одним из способов такого
программирования является применение смешанных вычислений). Ершов, с одной
стороны, рассматривает специфику каждого вида и отмечает их различия, которые должны выражаться в различных технологических приемах и
инструментах, с другой стороны, говорит о том, что при построении реального
программного обеспечения эти виды могут и нередко должны комбинироваться.
Все это дает основу для создания развитого методологического фундамента
будущих технологий программирования.
Мини- и микро- ЭВМ
Работа “An Experimental Automatic Information Station AIST-O» (AFIPS
Conf. Proc., Atlantic City, April 18–20, 1967. — Washington; London: Acad.
Press., 1966) оценивает с точки зрения применения средств вычислительной
техники новый тогда феномен - появление мини - и микроЭВМ, прогнозирует те
неограниченные возможности, которые они создают, выделяет те новые черты, которые характерны для программного обеспечения микроЭВМ: интегральность
подхода к совместному проектированию оборудования и софтвера, специализированность программного обеспечения (ПО), его ориентация на
использование непрофессионалами в программировании. Здесь же делается
оправдавшийся впоследствии вывод о крайней важности для ПО этих ЭВМ проблем
переноса и совместимости, а также намечаются возможные пути решения этих
проблем. В одной из своих работ он справедливо отрицает выдвигавшийся
некоторыми специалистами тезис о стабилизации положения в программировании
и излагают активные точки роста - новые концепции в языках
программирования, кристаллизация и фундаментализация понятий трансляции, переход от баз данных к базам знаний (в работе они называются "сложными"
базами данных), появление инструментальных комплексов (что впоследствии с
легкой руки "адистов" стало называться "окружением программирования"). Надо
сказать, что прогноз Ершова полностью оправдался. Здесь же оценивается
состояние теории программирования и ее соотношения с практикой, что весьма
существенно для определения путей развития теории. Много в работе говорится
об обучении программированию, о подготовке кадров - но об этой ее стороне
скажем позднее.
Программирование – вторая грамотность
Ершов выявил и прояснил ряд существенных черт, свойственных программированию как науке и человеческой деятельности. Замечания и суждения Ершова по этому поводу разбросаны во многих его работах, но есть несколько широко известных его статей, многократно переведенных и изданных, которые целиком посвящены не научным или техническим проблемам программирования, а вопросам, что есть программирование как наука и деятельность, что есть программист как специалист специфического интеллектуального труда. Это такие работы, как "О человеческом и эстетическом факторах в программировании", "Программирование - вторая грамотность", "Два облика программирования" и др. В работе, посвященной памяти рано умершего талантливого программиста Г.И.Кожухина, содержится конструктивный анализ противоречий, возникающих между творческой природой программистского труда и необходимой для любых массовых профессий производственной его организацией. Главный тезис статьи: "Программирование обладает богатой, глубокой и своеобразной эстетикой, которая лежит в основе внутреннего отношения программиста к своей профессии, являясь источником интеллектуальной силы, ярких переживаний и глубокого удовлетворения. Корни этой эстетики лежат в творческой природе программирования, его трудности и общественной значимости". Статья полна глубоких суждений и замечаний, поясняющих этот тезис. В статье отмечается элитарность программистов и в то же время говорится о необходимости сделать искусство программирования общим достоянием.
Ершов отмечает, что программирование необходимо современному человеку
не только в силу того, что ЭВМ в ближайшем будущем пронижет все стороны
жизни, но и потому, что современная жизнь требует повседневного
планирования и предвидения. Он говорит: "Вторая грамотность - это не только
умение писать команды, но и воспитание человека, решительного и
предусмотрительного вместе". Программирование, заключает Ершов, является
существенной компонентой современного обучения и воспитания.
Ершов четко формулирует интуитивно осознававшееся положение о том, что
нельзя программирование рассматривать единообразно. Он разделяет
программирование на два вида: программирование для себя и программирование
для заказчика и точно описывает коренные различия этих видов, обликов
программирования. Соответственно он вводит термины "программист-слуга" и
"программист-хозяин" и показывает, как глубоко различаются их манеры, стили
и даже критерии. Такая конструктивная дифференциация программирования
крайне важна при создании реальных технологий программирования, да и для
ряда более общих вещей, выражающихся даже в этике и эстетике
программирования. В чисто научном плане эта работа содержит модель
программной обстановки для программиста-хозяина, основанную на уже
упоминавшейся трансформационной машине.
Заметной линией работ Ершова являются работы, посвященные общению с
ЭВМ на естественном языке. Начальным подходом к конструктивизации этих
проблем была работа "Об одном виде контакта человека с машиной". Впервые в
отечественной и, по-видимому, мировой литературе Ершов попытался
сформулировать ряд точно поставленных задач реализации такого общения.
Размышления по этому поводу, объединенные с исследованиями лингвистов
(И.А.Мельчук) и системных программистов (А. С. Нариньяни), привели к
появлению проекта РИТА. Проект РИТА в таком виде, как описывался, не был
реализован, но можно четко проследить, как ряд существенных идей этого
проекта перешел во впоследствии реализованные лингвистические процессоры и
системы искусственного интеллекта: выделение промежуточного уровня
семантического представления, соотношение лингвистических и программных
составляющих диалоговой системы, наличие интерфейсных блоков для других
(классических) программных систем, множественность значений
интерпретирующих функций (что позже было обобщено А.С.Нариньяни в понятии
недоопределенных множеств) и т.д.
В последующем Ершов проводит дальнейшую конструктивизацию проблем
общения на естественном языке, выделяя из естественного языка очень важное
подмножество языка деловой прозы. Также А.П.Ершов дает общее определение
деловой прозе как языковому носителю производственных отношений человека и
отмечает, что она фактически выделяется в особую лингвистическую категорию.
Ряд свойств деловой прозы - внутренняя формализованность, четкость функций
сообщения - говорит об актуальности не только необходимости, но и
возможности научить машину полностью (Ершов это подчеркивает) понимать и
воспринимать этот язык. Далее Ершов рассматривает некоторые существенные
черты глобальной модели полного восприятия языка применительно к деловой
прозе.
Здесь в своих исследованиях и рассуждениях Ершов выходит за пределы
собственно программирования и формулирует фундаментальную проблему создания
машинного фонда русского языка. Отмечая связь этой проблемы с решением
задачи общения с ЭВМ на естественном языке, он подчеркивает очень важную
научную, общекультурную и прикладную значимость этой проблемы.
Другие проекты
Ершов был инициатором и идейным руководителем и ряда других проектов, не упомянутых выше. Приведем в качестве примера такие проекты, как система
программирования СЕТЛ для языка сверхвысокого уровня (языка спецификаций), профессиональная рабочая станция МРАМОР или школьная система
программирования ШКОЛЬНИЦА. Хотя Ершов не был разработчиком в таких
проектах и не участвовал в публикациях по ним, эти проекты питались его
идеями и обсуждениями с ним.
Научные направления деятельности Ершова многообразны. В принципе это
свойственно многим программистам 50-х и начала 60-х гг. - можно привести
немало примеров советских и зарубежных программистов, которые имеют хорошие
результаты в трех - четырех различающихся научных направлениях. Такой
характер деятельности естествен для ученых, стоящих у истоков новой научной
дисциплины (и, к сожалению, мало доступен тем, кто вступает в уже
сложившуюся, с большим спектром оформившихся направлений науку). Но даже и
на фоне первых программистов Ершов выделяется поистине "ломоносовской"
широтой своих интересов и результатов.
Вывод
Андрей Петрович Ершов определил развитие советского и мирового
программирования на десятки лет вперед: он проводил фундаментальные
исследования в области вычислительной техники, схем программ, теории
компиляции и др. Именно благодаря ему появилась так называемая логическая
ЭВМ, не зависящая от конкретной реализации. Это был принципиально новый
шаг: раннее каждая программа писалась только для одной конкретной машины и
сильно зависела от конкретных физических схем и не могла применяться на
других ЭВМ, что сильно затрудняло распространение программирования.
Возможно, идея лексикона является одной из основных, оставленных нам
Ершовым. Она может служить источником создания научных и методических основ
программирования на десятки лет вперед. Многомерные значения – массивы и
списки, содержащие сходные данные, были также придуманы и впервые
реализованы научной группой Ершова. Им созданы такие языки
программирования, как АЛЬФА, АЛЬФА-6 и БЕТА, он активно участвовал в
создании Алгола и его вариаций. Нельзя не заметить, что наиболее
распространенный учебный язык программирования – Паскаль и наиболее
популярный язык среди профессионалов – Си и его модификации являются
алголоподобными, т.е. за основу взяты принципы, используемые в Алголе.
Рекомендуем скачать другие рефераты по теме: дипломная работа аудит, сочинение бульба.
Категории:
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата