Реферат: Андрей Петрович Ершов (1931-1988)

Андрей Петрович

<img src="/cache/referats/16065/image001.jpg" v:shapes="_x0000_i1025">

Ершов

(1931 – 1988)гг.

Введение

Академик Андрей Петрович Ершов (1931-1988) — один иззачинателей теоретического и системного программирования, создатель Сибирскойшколы информатики. Его существенный вклад в становление информатики как новойотрасли науки и нового феномена общественной жизни широко признан в нашейстране и за рубежом.

Он проводил фундаментальные исследования в областисхем программ и теории компиляции. Книга А. П. Ершова«Программирующая программа для электронной вычислительной машиныБЭСМ» была одной из первых в мире монографий по автоматизациипрограммирования.

Работы Ершова по технологии программирования заложилиосновы этого научного направления в нашей стране.

Язык программирования АЛЬФА и оптимизирующийАльфа-транслятор, первая советская система разделения времени АИСТ-0, системаучебной информатики Школьница, система подготовки печатных изданий Рубин,многопроцессорная рабочая станция МРАМОР — все эти проекты были инициированыА. П. Ершовым и выполнялись под его руководством.

Он одним первых в нашей стране осознал ключевую рольвычислительной техники в прогрессе науки и общества. Его блестящие идеизаложили основу для развития в России таких научных направлений, какпараллельное программирование и искусственный интеллект. Более 20 лет томуназад он начал эксперименты по преподаванию программирования в средней школе,которые привели к введению курса информатики и вычислительной техники в средниешколы страны и обогатили нас тезисом «программирование — втораяграмотность».

Ершов принимал активное участие в подготовкемножества международных конференций и конгрессов, был редактором или членомредколлегии как русских журналов «Микропроцессорные средства исистемы», «Кибернетика», «Программирование», так имеждународных — Acta Informatica, Information Processing Letters, TheoreticalComputer Science.

Академик А.П.Ершов очень много внимания уделялпроблемам информационного обеспечения ученых. Свою научную библиотеку онсобирал всю жизнь. Ко времени безвременной кончины А.П.Ершова в его личнойбиблиотеке хранилось более 30 тысяч книг, журналов, трудов конференций,препринтов и отдельных оттисков статей практически на всех европейскихязыках. После смерти академика А.П.Ершова его наследники передалибиблиотеку в Институт систем информатики, который к тому времени выделился изВычислительного центра. Теперь это Мемориальная библиотека им. А.П.Ершова.

В 1988 году был создан благотворительный Фонд имениА.П.Ершова, основной целью которого являлось развитие информатики какизобретательства, творчества, искусства и образовательной активности.

Андрей Петрович Ершов был не только талантливымученым, учителем и борцом за свои идеи, но и выдающейся, разностороннеодаренной личностью. Он писал стихи, переводил на русский язык стихиР. Киплинга и других английских поэтов, прекрасно играл на гитаре и пел.

Путь в программирование

Андрей Петрович Ершов, выдающийся программист иматематик, лидер советского программирования, родился 19 апреля 1931 г. вМоскве. Умер после тяжелой болезни в Москве 8 декабря 1988 г.

Происходил он из семьи потомственных интеллигентов.Отец был инженером-химиком, мать — библиотекарем.

С 1943 г. родители А.П.Ершова живут в Сибири, вКемерове, где в 1949 г. он закончил среднюю школу. В том же году он поступаетна физико-технический факультет Московского университета, собираясь статьфизиком. Однако из-за запретов учиться на физика ему не дали, а разрешилиперевестись на механико-математический факультет того же университета. Там онстал специализироваться на кафедре вычислительной математики, руководимойакадемиком С.Л.Соболевым, а на последних курсах под влиянием А.А.Ляпуноваувлекся программированием. Еще будучи студентом, в 1953г., он поступил наработу в Институт точной механики и вычислительной техники — организацию, вкоторой складывался один из первых советских коллективов программистов.

Таков был его, не совсем добровольный, путь кпрограммированию. Выбор области деятельности, сделанный А.П.Ершовым, оказалсясчастливым как для него, так и для программирования. Действительно, А.П.Ершовбыл многообразно талантлив, он мог бы достигнуть больших результатов и вкакой-либо другой области деятельности, в частности в физике, котораяпервоначально была им выбрана, поэтому нельзя сказать, что программирование — единственное направление, где онмог бы проводить свои исследования. Однако именно в такой зарождающейся науке,как программирование, удивительно к месту пришлись такие грани его таланта, какумение нетрадиционно мыслить, находить ясные основы интуитивно складывающегосязнания, видеть перспективные точки роста. Другая, более определившаяся научнаядисциплина, наверное, дала бы ему меньшие возможности приложения своегоинтеллектуального потенциала — и в этом было счастье его выбора. Но, с другойстороны, и программирование в то нуждалось в ученых с характеромпервооткрывателей — подобных А.П.Ершову — для формирования из разнороднойпрактики начального научного и методического фундамента. Деятельность Ершова, окоторой пойдет речь дальше, оказалась очень созвучной этим нуждампрограммирования, так что выбор, сделанный им, — удача для программирования.

Влияние на науку

В 1954 г. А.П.Ершов закончил университет — это былпервый в советских вузах массовый выпуск по специальности«программирование». С 1954 по 1957 г. он аспирант А.А.Ляпунова вМосковском университете. Кандидатскую диссертацию, посвященную понятиюоператорного алгорифма (существует много определений этого термина. Например,акад. А. Н. Колмогоров дает такое определение: алгоритм или алгорифм — этовсякая система вычислений, выполняемых по строго определенным правилам, котораяпосле какого-либо числа шагов заведомо приводит к решению поставленной задачи.Тьюринг – английский программист-теоретик создал так называемую машинуТьюринга, с помощью которой можно реализовать любой алгоритм, а то, что нельзяна ней реализовать, алгоритмом не является. Машина Тьюринга – это лента, накоторой записаны некоторые символы. По ней «бегает» каретка, которая читаеттекущий символ, и в соответствии с текущим символом и текущим состоянием можетпереходить к следующему или предыдущему символу, либо оставаться на месте именять состояние, а также менять текущий символ на ленте.), он подготовил к1958 г., однако в связи с настороженным отношением математиков к новой наукезащитить ее ему удается только в 1962 г. Докторская диссертация по методампостроения трансляторов защищается им в 1968 г. В 1970 г. он становитсячленом-корреспондентом, а в 1984 г. — академиком АН СССР.

Такое быстрое продвижение связано с тем, что уже вконце 50-х гг. он становится одним из ведущих советских программистов — нетолько благодаря своим блестящим индивидуальным работам, но и как руководительплодотворно работающих программистских коллективов. В 1957 г. он становитсязаведующим отделом автоматизации программирования во вновь созданномВычислительном центре АН СССР. В связи с созданием Сибирского отделения АН СССРпо просьбе директора Института математики СО АН СССР академика C.Л.Соболева онберет на себя обязанность организатора и фактического руководителя отделапрограммирования этого института.

В 1960 г. он становится и формальным главой этогоотдела и окончательно переезжает в Сибирь. Сибирское отделение привлекаломолодых активных ученых большими возможностями организации новых масштабныхисследований, и Ершов был одним из тех молодых ученых, которые в конце 50-х иначале 60-х гг. вместе с академиками-основателями создавали институты новогонаучного центра в Академгородке. В дальнейшем отдел Ершова стал одной из основсозданного в 1964 г. Г.И.Марчуком Вычислительного центра СО АН СССР. БлагодаряЕршову Академгородок становится одним из ведущих центров по программированию.Ершов создал известную новосибирскую школу системного и теоретическогопрограммирования, исследования которой складывались из работ его учеников ипоследователей в различных новосибирских институтах. Сам Ершов, будучи толькозаведующим отделом и отделением Вычислительного центра, стал идейнымруководителем и неформальным главой большого и активно работающего содружествановосибирских программистов.

Велико влияние Ершова и на развитие программистскойнауки и практики в стране в целом. Это влияние далеко не ограничивалось тем,что он был главой одной из ведущих советских научных школ, или тем научнымвкладом, о котором речь пойдет ниже. С конца 60-х гг. он становится в центрепрограммистской жизни в СССР. Он был одним из основных организаторов первыхнациональных конференций по программированию, большого числа национальныхконференций, семинаров и школ по различным проблемам системного итеоретического программирования, членом редколлегий основных советскихпрограммистских журналов, редактором (с момента его образования) журнала«Микропроцессорные средства и системы», председателем ряданациональных комиссий и рабочих групп. В 1987 г. он становится председателемСовета по кибернетике, который координирует все отечественные академическиеисследования по информатике и программированию.

Ершов уделял много внимания научно-организационнойработе, в том числе в мировом масштабе. Он был членом ряда комитетов и рабочихгрупп IFIP (International Federation on Information Processing), активнымучастником ряда конгрессов, в том числе вице-председателем программногокомитета IFIP-68, приглашенным докладчиком IFIP-71, организатором рабочихконференций IFIP. В 1980 г. награжден «Серебряным сердечником»(Silver Core). Также состоял членом редколлегии таких международных изданий,как «Information Processing Letters», «Theoretical ComputerScience» и др. Его международные творческие и дружеские связи былиобширны. Он выступал с приглашенными докладами в большом числе организацийЕвропы, Японии и США. С 1965 г. он — член Association for Computing Machinery(АСМ), в 1974 г. стал почетным членом Британского Компьютерного общества. Впоследние годы жизни А.П.Ершов уделяет много внимания международной работе поинформатике в образовании.

Теоретическое и системноепрограммирование

А.П.Ершов — один из тех ведущих мировых ученых,благодаря деятельности которых выделились и оформились такие научныенаправления современного программирования, как теоретическое и системноепрограммирование. Его творческое наследие обширно, оно включает более 200 книг,статей, препринтов, не считая большого числа предисловий, редакционных статей,отзывов и т.п., а также газетных публикаций, стихов (и хороших стихов!) и пр.Объем этой статьи не позволяет дать достаточно подробный обзор всех работЕршова, и здесь мы ограничимся изложением основных идей и ведущих публикаций.

А.П.Ершов был одним из первых советскихпрограммистов, внесшим определяющий вклад в отечественное программирование,поэтому естественно, что становление и развитие его научных интересов в большейстепени соответствует становлению и развитию как советского, так и мировогопрограммирования.

Как и большинство программистов 50-х гг., А.П.Ершовначинал с создания алгоритмов численных методов и стандартных программ. Перваяего работа («Об одном методе обращения матриц» — доклад АН СССР, 1955) была посвящена разработанному им методу обращенияматриц, относящемуся к классу методов пополнения. Хорошая алгоритмичностьметода — компактность алгоритма, удобные рекуррентные соотношения — позволилаэтому методу быть основой для стандартных программ для ряда первых советскихЭВМ (для одной из них — БЭСМ — такая программа была разработана Ершовым). Середина50-х гг. была временем становления теоретического и системного программирования.Системное программирование начиналось с направления, названного тогдаавтоматизаций программирования и связанного с разработкой языковпрограммирования и методов их трансляции. Начальный толчок этому направлениюдали работы Рутисхаузера и Ляпунова. Первые советские языки программированиябыли связаны с операторными схемами, предложенными А.А.Ляпуновым. Эти схемызадавали структуру программы в терминах операторов некоторых фиксированныхклассов с последующим заданием представления этих операторов. А.П.Ершов былруководителем и создателем одних из первых советских программирующих программдля ЭВМ БЭСМ и «Стрела» (программирующими программами тогданазывались интегральные разработки языка и системы программирования). На основеданных работ им была написана монография («Опонятии вычислительного алгорифма» — тезис доклада совещания по вычислительнойматематике и применению средств вычислительной техники, 1958), первая вмировой литературе монография по автоматизации программирования, практическинемедленно переведенная и изданная за рубежом, а также ряд работ овычислительной технике и реализации алгоритмов на ней в 1956-1958 гг. В монографиии этих работах А.П.Ершовым был впервые предложен ряд понятий, подходов иметодов, вошедших в классический багаж языков и систем программирования. Здесьи понятие цикла как фундаментальной конструкции языков программирования, итриадное внутреннее представление выражений, и метод функции расстановки дляпоиска совпадающих фрагментов (имен), и алгоритм оптимального распределениярабочих ячеек (регистров), и начальные идеи потокового анализа, и пр.

АЛЬФА- и БЕТА-  языки

Первым большим проектом, скоторого начиналась новосибирская школа, был трансляторный проект«Альфа». В отличие от предыдущих проектов программирующих программпроект Альфа был хорошо, практически по-современному специфицирован: былоподготовлено формальное описание входного языка, была создана развернутаяфункциональная спецификация системы.

Отправной точкой проекта былапубликация начальной версии нового языка программирования, суммировавшегонакопившийся программистский опыт и создаваемого международной рабочей группой- так называемого Алгола 58. Группа, руководимая А.П.Ершовым, стала готовить наоснове Алгола 58 новый проект языка — параллельно с работавшей международнойгруппой. Во многом направления развития языка оказались совпадающими, но вновосибирском проекте появился ряд существенно новых механизмов, поэтому, вконце концов, язык был сформулирован как правильное расширение окончательнойверсии международного языка — Алгола 60. В Альфа-языке впервые были разработанасредства, характерные для последующих за Алголом 60 языков. Было определеностоль важное для вычислительных алгоритмов понятие многомерных значений,определены операции над ними, в том числе, их конструирование. Были введенысвойственные современным языкам концепции, такие, как разнообразие видовциклов, задание начальных значений и т.п. В формальном определении языкавпервые была сделана попытка выйти за пределы контекстно-свободных грамматик.

Сама работа над транслятором былав большой мере и исследовательской, и пионерской. Именно в этой работе началисьскладываться принципы современной оптимизирующей трансляции. Дело в том, чтосам Алгол 60 был определенным вызовом для существовавших методов трансляции.Его существенно рекурсивная структура, мощность механизма процедур, возможнаяих вложенность и потенциальная рекурсивность, общность циклов и индексныхвыражений — все это требовало заметной модификации и развития техники трансляции,а самое главное — ставило вопрос о возможности получения эффективного кода. Попоследнему поводу высказывалось ряд сомнений, и Альфа-транслятор сталдействительно первым конструктивным доказательством того, что для языков,сопоставимых по мощности с Алголом, можно построить транслятор, дающийсравнимый с ручным программированием код.

Достижению поставленной целипослужил богатый набор оптимизаций, реализованный в Альфа-трансляторе. Былапредложена смешанная стратегия программирования (то, что позднее на Западе былоназвано "casing") таких конструкций, как процедуры, циклы, индексные выражения, когдана основании анализа контекста выбирался наиболее эффективный из допустимыхспособов генерации конструкций. Особенно изощренно программировались процедурыи подстановка параметров для них: выбор осуществлялся среди 11 способов. Врезультате алголовские процедуры при всей мощности механизма программировалисьоптимальным образом (что стимулировало программистов активно использовать этосредство). Существовавшая ранее оптимизация экономии выражений была существенноразвита — полностью учитывались свойства коммутативности и ассоциативности;если это преобразование не стало глобальным, то оно уже было квазилокальным.Впервые была реализована глобальная чистка циклов. Тщательной оптимизацииподвергались операции над многомерными значениями — то, что не было встандартном Алголе, но активно использовалось вычислителями. Впервые былареализована глобальная экономия памяти, опирающаяся на теоретические работыА.П.Ершова и С.С.Лаврова.

Альфа-транслятор стал первым вмире транслятором с Алгола с большими оптимизирующими возможностями. Похожийанглийский проект Хоукинса и Хакстебла, который разрабатывался в это время, таки не был до конца завершен из-за сложности задачи. Конечно, успехуспособствовало не только механическое соединение многих оптимизаций, но исущественное развитие существовавшей методологии оптимизации программ. Былавыдвинута идея внутреннего языка, к программе на котором и применяютсяоптимизации, которая, хотя и не совсем в чистом виде, была реализована. Былреализован практически глобальный анализ контекста, хотя и разрозненно дляразличных оптимизаций, учет которого существенно увеличил мощность оптимизаций- зародыш современного потокового анализа. Стремление практически всегдаполучать эффективный код привело к отказу от некоторых средств Алгола,важнейшим из которых была рекурсивность процедур.

Альфа-транслятор активноиспользовался в большом числе организаций страны. Хотя его интерфейсы спользователем и простота эксплуатации желали много лучшего, но высокаяэффективность получаемого кода обеспечила хороший интерес пользователей к этойсистеме. Поэтому когда на смену М-20 пришла существенно болеевысокопроизводительная машина БЭСМ-6, организации, связанные с большимизадачами, стимулировали создание версии Альфа-транслятора для БЭСМ-6. Самымбыстрым решением была простая переделка Альфа-транслятора, при которой та егочасть, которая отвечала за генерацию кода, была заменена генератором кода дляБЭСМ-6. Возник транслятор Алгибр (“Альфа гибридный”), который был одним изпервых отечественных кросс-трансляторов. Такое решение имело ряд недостатков,но зато оно было реализовано быстро, и транслятор Алгибр стал первымтранслятором для новой машины БЭСМ-6. Решение существенно облегчалось тем, чтов Альфе-трансляторе уже существовал внутренний язык, хотя и не до конца единыйдля всех оптимизирующих преобразований.

Основным затруднением приАлгибр-трансляции была передача оттранслированного кода с М-20 на БЭСМ-6. В ВЦСО АН СССР был даже разработан специальный канал передачи информации междуинструментальной и объектной ЭВМ, однако это не могло быть серийным решениемпри массовой трансляции. Возникла необходимость «родного» трансляторадля БЭСМ-6.

У разработчиков Альфа-трансляторавозникала и внутренняя потребность модифицировать и улучшить как схемутрансляции, так и пользовательские свойства транслятора, в первую очередь, егоинтерфейс с пользователем. Альфа-транслятор, несмотря на его достаточно широкуюиспользуемость, носил черты эксперимента и поиска — хотя идейные решения былинайдены верно, но реализационные решения были характерны скорее дляэкспериментального, чем производственного транслятора (большое число просмотровпрограммы — 24, некоторое дублирование анализа контекста, не всегда оправданноеусложнение оптимизирующих преобразований). Не нужно забывать, что этоттранслятор был первым оптимизирующим транслятором с Алгола. Дополнительный опыт- транслятор Алгибр, незавершенный проект Альфа-транслятора для ЭВМ Урал-14(проект ТАУ) — давал основу для новых решений.

Новый транслятор — трансляторАльфа-6 — был улучшенной версией оптимизирующего транслятора с Алгола. Рядпредыдущих решений был приведен к более чистому и эффективному виду. Болеечетко был выделен внутренний язык и этап потокового анализа программ навнутреннем языке. Общая схема трансляции уже могла рассматриваться как типоваясхема оптимизирующей трансляции (для одноязыкового транслятора), онанасчитывала всего 10 просмотров. Лучше была решена проблема взаимного влиянияразличных оптимизирующих преобразований. Идентификация и визуализация ошибокпользователя была более совершенной, что облегчало эксплуатацию. В результатесистема Альфа-6 стала достаточно широко используемой системой у пользователейБЭСМ-6.

Лексикон

В некотором смысле из анализа общих понятий языковпрограммирования и осознания их определенной ограниченности вырослапредложенная Ершовым в статье «Математическоеобеспечение четвертого поколения» («Кибернетика», 1973, №1) фундаментальнаяи многообещающая идея лексикона программирования как общей среды для разработкии обоснования программ. Он определяет лексикон как «лингвистическуюсистему с фразовой структурой, содержащую в себе формальную нотацию длявыражения всех общезначимых конструкций, употребляемых при формулированииусловий задач, при синтезе и преобразовании программ». Лексикон, говоритЕршов, «выражает не только и не столько программы, сколько их свойства инаши суждения о них. Язык программирования кодирует объекты предметной областизадачи, а наше знание об этих объектах остается за пределами программноготекста. Лексикон же является средством описания объектов предметных областей исодержит нотацию для построения баз знания о предметных областях. Программа,выраженная средствами лексикона, в определенном смысле содержит в своем текстеописание своей семантики в виде совокупности нетривиальных фактов о вычисляемойею функции — в отличие от „чистых“ программ, которые не говорятничего о своих функциональных свойствах. Лексикон, в отличие от конкретногоязыка программирования, является открытой системой. Для него в целом неставится задача трансляции любого его текста в машинную программу, хотя любаямашинная программа в случае необходимости может быть выражена в лексиконе.Аналогично естественному языку лексикон обладает способностью описания однойсвоей части средствами другой своей же части. Не надо думать, что лексикон — это все и навсегда. Это тщательно отобранная, но развивающаяся система удачныхобозначений. Степень его успеха определяется степенью общезначимости иобщепонятности его нотации».

Смешанное вычисление и

трансформационная машина

Смешанное вычисление представляет собой некоторыйуниверсальный процесс, определяемый над парами (программа, данные) и приводящийв общем случае к получению остаточной программы и частичных результатов.Математическим аналогом смешанного вычисления является функционал, который дляопределенного класса функций с несколькими аргументами строит (при заданиинекоторых аргументов) функции с меньшим числом аргументов. Процесс смешанноговычисления может быть, в свою очередь, задан в виде программы (смешанноговычислителя), что позволяет ставить вопрос о самоприменимости смешанныхвычислений, а сам смешанный вычислитель уподобить s-n-m — функции Клини.

Понятие смешанного вычисления (и смешанноговычислителя) в применении к процессорам обработки программ, для которыхпрограммы и их атрибуты есть данные, позволяет с общей точки зрения исследоватьи определить различные виды обработки программ: от трансляции и интерпретациидо анализа программ, их преобразования и генерации самих языковых процессоров.В ряде работ по смешанным вычислениям и трансформационному подходу Ершовметодологически исследует эту концептуальную сторону смешанных вычислений.

Именно определение принципа смешанных вычислений какобщей основы большого числа процессов работы над программами отличает работуЕршова от ряда предыдущих работ и догадок Ломбарди, Футамуры, Турчина и др. Этои стало причиной того, что работы Ершова легли в основу нового и активноразвивающегося направления в программировании, связанного с теоретическимиисследованиями и практическими приложениями смешанных вычислений. Применениесмешанных вычислений оказалось весьма полезным методологически для понимания итрактовки различных понятий и сущностей программирования.

Понятие смешанных вычислений, введенное Ершовым какобщая модель для различных видов обработки программ, с необходимостьюпотребовало широкого круга исследований, как по свойствам самой модели, так ипо ее трактовке в различных областях возможного применения. Было введенопонятие корректности смешанных вычислений и определены модели смешанныхвычислений и получения остаточной программы, для которых можно было доказыватькорректность. Одной из таких моделей, на которых фокусировалось внимание, сталатрансформационная модель, для которой смешанное вычисление задавалось наборомбазовых трансформаций. Сама модель смешанных вычислений и их корректностьрассматривались как для императивных языков, так и для рекурсивных программ.Был получен ряд важных результатов по определению механизма задержки(замораживания) вычислений и данных, по описанию процесса смешанных вычисленийдля различных языков представления программ, по формулированию набора базовыхтрансформаций, по надежности (незацикливанию) процесса смешанных вычислений ипр.

Для реальных приложений смешанных вычислений помимо,разумеется, необходимых свойств корректности и надежности важными оказываютсяих гибкость и глубина. И здесь Ершову и его ученикам удалось существеннопродвинуться в исследованиях. Гибкость смешанных вычислений может быть заметноувеличена, если смешанный вычислитель будет при получении остаточной программыучитывать не только свойства данных иметь конкретное значение, но и болеетонкие свойства, определяемые известными соотношениями между данными (предикатынад данными). В этом случае смешанный вычислитель оперирует с некоторойопределенной на данных обстановкой. Глубина смешанных вычислений определяетсясхемой смешанных вычислений. Наряду со строгой схемой смешанных вычислений,введенной вначале, была определена поливариантная схема, связанная спродвижением смешанных вычислений в альтернативы, даже если выбор альтернативне может быть определен при таком вычислении.

Совместно с Островским Ершов исследовал применениесмешанных вычислений в такой традиционно важной области, как трансляция, аименно построение трансляторов для заданного описания входного языка.Существенно отметить, что здесь были получены не только результаты,демонстрирующие практическую применимость принципа смешанных вычислений(удавалось строить трансляторы существенно более эффективные, чем это достигаетсяпри обычном автоматическом построении), но и ряд фактов и наблюдений, важныхдля сопоставления методов трансляции и понимания сущности трансляции ипоказывающих методологическую важность принципа смешанных вычислений.

Таким образом, в области смешанных вычислений Ершовупринадлежит не только определение основополагающих понятий и моделей, но иопределяющий вклад в теорию и методологию этой области. Он по праву считаетсяоснователем и лидером этого направления, активно развиваемого сейчас в разных коллективахи странах.

Отталкиваясь от трансформационной модели смешанныхвычислений и от своих работ в области трансляции и оптимизации программ, Ершовопределяет концепцию трансформационной машины. Трансформационная машина естьабстрактное вычислительное устройство, выполняющее программы в некотором«сверхязыке», действиями которого являются трансформации пар(программа, данные). Действия эти поддерживают сохранение некоторогоинварианта, что обеспечивает корректность трансформаций. Концепция трансформационноймашины представляется весьма многообещающей — и как теоретическая модель дляописания и обоснования процессов обработки программ, и как методологическаяоснова построения различных инструментальных процессов.

Концепция трансформационной машины является темважным вкладом в трансформационный подход к построению программ, энтузиастом ипропагандистом которого был А.П.Ершов, и различные аспекты которого исследуютсяв ряде его работ 80-х гг. Трансформационный подход развивается сейчас в рядеколлективов у нас и за рубежом и представляется весьма перспективным, так какон дает возможность получать программы с хорошими показателями таких качеств, какнадежность и эффективность, а также повышает степень переиспользованияпрограммного обеспечения. Работы Ершова по трансформационному подходу даютестественную точку роста для последующих исследований.

Следует заметить, что наряду с работами по языкам иметодам трансляции работы по смешанным вычислениям и трансформационному подходубыли источником уже упоминавшейся идеи Ершова о лексиконе программирования.

Заключают работы Ершова по теории программированияего публикации, посвященные понятию вычислимости. Сам он определяет эти работыкак попытку синтеза взглядов на вычислимость, сложившихся как в математическойлогике, так и в теоретическом программировании. Так как понятие вычислимостиявляется одним из главных как в той, так и в другой области и имеетфундаментальное значение для других программистских понятий, очевидно, чтоопределение понятия вычислимости, абстрагированного от несущественныхсинтаксических или модельных понятий и вместе с тем вбирающего необходимые длятеории и многочисленной практики сущности, является одной из главных задач,определяющих дальнейшее взаимовлияние математики и программирования. Вфундаментальной работе «Проблемы программирования: Всесоюзнаяконференция в Новосибирске» (Вестник АН СССР, 1970, №6) проводитсяглубокий анализ большого числа определений вычислимости, сложившихся вуказанных областях, их сопоставление и оценка вклада в общую теорию. Наосновании данного анализа Ершов нащупывает идею определения вычислимости:свести определение вычислимой функции к понятию детерминанта, т.е. того, чтоявляется инвариантным к различным способам задания вычислений. По-видимому, этиработы Ершова будут иметь такое же стимулирующее значение для исследований вданной области, как и его работы начала 70-х гг. для теории схем программ.

Проект АИСТ

Одной из важных заслуг Ершова перед отечественным имировым программированием является то, что он умел оценить текущее состояниенауки и практики и наметить те реальные точки роста и перспективы исследований,которые будут определять развитие программирования. Так, во второй половине60-х гг. он одним из первых в стране осознал те новые возможности общения сЭВМ, которые создают системы разделения времени. В 1966 г. он организует работыпо автоматическим информационным станциям (проект АИСТ). Проект АИСТ,создателем и руководителем которого был А.П.Ершов, объединял широкий кругисследований по архитектуре вычислительных комплексов, их программномуобеспечению и моделированию вычислительных систем. В рамках этого проекта быласоздана первая в стране развитая система разделения времени АИСТ-0, проекткоторой был предметом доклада на Конгрессе AFIPS 1967 г. («Входной язык системы автоматического программирования»предварительное сообщение — М.: ВЦ АН СССР, 1961), а итоговый доклад былсделан на 2-й Всесоюзной конференции по программированию в 1970 г. («Программирующая программа для машины» Третье Всесоюзноесовещание по вычислительной математике и применению средств вычислительнойтехники, 1961). Реализованная на многомашинном комплексе изотечественных ЭВМ, эта система была во многом пионерской и внесла большой вкладв развитие отечественных работ по архитектуре ЭВМ и операционным системам,которые, к сожалению, были в дальнейшем заторможены ориентацией на копированиезарубежных разработок. Ряд таких свойств системы, как разделение в процессорахкомплекса управления и обработки, иерархичность строения программногообеспечения, выделение ядра операционной системы, естественное сочетаниеразличных режимов общения и обработки, обеспечили хорошую эффективность игибкость системы.

Осмысливая опыт проекта АИСТ и других подобных работу нас в стране и за рубежом в своем докладе на Конгрессе ИФИП-68, Ершоввыдвигает несколько насущных тезисов: о специализации процессов вмногопроцессорном комплексе для разделения времени, об универсальных испециализированных системах разделения времени и областях их применимости, о различиитребований профессионалов и непрофессионалов в программировании к общению ссистемами разделения времени и о том аспекте систем, который впоследствии будетназван дружественностью к пользователю.

Опыт руководства такими большими проектами, как АЛЬФАи АИСТ, и работы в этих проектах дали Ершову осознание общих проблемпрограммирования и создания программного обеспечения. В 1973 г. — появляетсяоказавшая большое влияние на развитие отечественных работ статья. В этой работепроводился глубокий и развернутый анализ как внешних свойств машин четвертогопоколения, так и различных видов программных систем: операционных систем,систем программирования и их входных языков, специализированных системобработки информации, в том числе пакетов прикладных программ (в работе даетсяклассификация ППП, сохраняющая свою ценность и в наше время). Выделен рядхарактерных систем обработки информации и определены их внешние и внутренниесвойства. Очерчена общая модель операционной системы — так называемая базоваяоперационная система с концентрическим строением. Отмеченная в работе общностьв реализации языков программирования, создании процессоров диалоговых языков исистем отображения хотя и не вылилась, как предполагал автор, в созданиеуниверсальных систем, но стимулировала работы по нахождению общей методологиисоздания таких систем (впрочем, некоторая ограниченная в своей универсальностимногоязыковая транслирующая система на данной общности была построена — этосистема БЕТА, о которой говорилось выше).

Технологические проблемы

Существенным в этой работе было также то, что в нейподнимались технологические проблемы разработки программного обеспечения. Ершовбыл одним из первых в стране, кто поставил проблему создания технологиипрограммирования. Надо сказать, что стремление Ершова провести аналогию междусозданием программного обеспечения и промышленным производством, ввестидисциплину, организацию, инструментирование в такой казавшийся многим старымпрограммистам нерегламентируемый т

еще рефераты
Еще работы по компьютерам. программированию