АндрейПетрович
/>
Ершов
(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», «TheoreticalComputer Science» и др. Егомеждународныетворческиеи дружескиесвязи былиобширны. Онвыступал сприглашеннымидокладами вбольшом числеорганизацийЕвропы, Япониии США. С 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.
--PAGE_BREAK--
Лексикон
В некоторомсмысле из анализаобщих понятийязыков программированияи осознанияих определеннойограниченностивыросла предложеннаяЕршовым в статье«Математическоеобеспечениечетвертогопоколения»(«Кибернетика»,1973, №1) фундаментальнаяи многообещающаяидея лексиконапрограммированиякак общей средыдля разработкии обоснованияпрограмм. Онопределяетлексикон как«лингвистическуюсистему с фразовойструктурой, содержащуюв себе формальнуюнотацию длявыражения всехобщезначимыхконструкций, употребляемыхпри формулированииусловий задач, при синтезеи преобразованиипрограмм».Лексикон, говоритЕршов, «выражаетне только и нестолько программы, сколько ихсвойства и нашисуждения о них.Язык программированиякодирует объектыпредметнойобласти задачи, а наше знаниеоб этих объектахостается запределамипрограммноготекста. Лексиконже являетсясредствомописания объектовпредметныхобластей исодержит нотациюдля построениябаз знания опредметныхобластях. Программа, выраженнаясредствамилексикона, вопределенномсмысле содержитв своем текстеописание своейсемантики ввиде совокупностинетривиальныхфактов о вычисляемойею функции — вотличие от»чистых" программ, которые неговорят ничегоо своих функциональныхсвойствах.Лексикон, вотличие отконкретногоязыка программирования, является открытойсистемой. Длянего в целомне ставитсязадача трансляциилюбого еготекста в машиннуюпрограмму, хотялюбая машиннаяпрограмма вслучае необходимостиможет бытьвыражена влексиконе.Аналогичноестественномуязыку лексиконобладает способностьюописания однойсвоей частисредствамидругой своейже части. Ненадо думать, что лексикон- это все и навсегда.Это тщательноотобранная, но развивающаясясистема удачныхобозначений.Степень егоуспеха определяетсястепеньюобщезначимостии общепонятностиего нотации".
Смешанноевычислениеи
трансформационнаямашина
Смешанноевычислениепредставляетсобой некоторыйуниверсальныйпроцесс, определяемыйнад парами(программа, данные) и приводящийв общем случаек получениюостаточнойпрограммы ичастичныхрезультатов.Математическиманалогом смешанноговычисленияявляется функционал, который дляопределенногокласса функцийс несколькимиаргументамистроит (призадании некоторыхаргументов)функции с меньшимчислом аргументов.Процесс смешанноговычисленияможет быть, всвою очередь, задан в видепрограммы(смешанноговычислителя), что позволяетставить вопросо самоприменимостисмешанныхвычислений, а сам смешанныйвычислительуподобить s-n-m- функции Клини.
Понятие смешанноговычисления(и смешанноговычислителя)в применениик процессорамобработкипрограмм, длякоторых программыи их атрибутыесть данные, позволяет собщей точкизрения исследоватьи определитьразличные видыобработкипрограмм: оттрансляциии интерпретациидо анализапрограмм, ихпреобразованияи генерациисамих языковыхпроцессоров.В ряде работпо смешаннымвычислениями трансформационномуподходу Ершовметодологическиисследует этуконцептуальнуюсторону смешанныхвычислений.
Именно определениепринципа смешанныхвычисленийкак общей основыбольшого числапроцессовработы надпрограммамиотличает работуЕршова от рядапредыдущихработ и догадокЛомбарди, Футамуры, Турчина и др.Это и сталопричиной того, что работыЕршова леглив основу новогои активноразвивающегосянаправленияв программировании, связанногос теоретическимиисследованиямии практическимиприложениямисмешанныхвычислений.Применениесмешанныхвычисленийоказалосьвесьма полезнымметодологическидля пониманияи трактовкиразличныхпонятий и сущностейпрограммирования.
Понятие смешанныхвычислений, введенноеЕршовым какобщая модельдля различныхвидов обработкипрограмм, снеобходимостьюпотребовалоширокого кругаисследований, как по свойствамсамой модели, так и по ее трактовкев различныхобластях возможногоприменения.Было введенопонятие корректностисмешанныхвычисленийи определенымодели смешанныхвычисленийи полученияостаточнойпрограммы, длякоторых можнобыло доказыватькорректность.Одной из такихмоделей, накоторых фокусировалосьвнимание, сталатрансформационнаямодель, длякоторой смешанноевычислениезадавалосьнабором базовыхтрансформаций.Сама модельсмешанныхвычисленийи их корректностьрассматривалиськак для императивныхязыков, так идля рекурсивныхпрограмм. Былполучен рядважных результатовпо определениюмеханизмазадержки(замораживания)вычисленийи данных, поописанию процессасмешанныхвычисленийдля различныхязыков представленияпрограмм, поформулированиюнабора базовыхтрансформаций, по надежности(незацикливанию)процесса смешанныхвычисленийи пр.
Для реальныхприложенийсмешанныхвычисленийпомимо, разумеется, необходимыхсвойств корректностии надежностиважными оказываютсяих гибкостьи глубина. Издесь Ершовуи его ученикамудалось существеннопродвинутьсяв исследованиях.Гибкость смешанныхвычисленийможет бытьзаметно увеличена, если смешанныйвычислительбудет при полученииостаточнойпрограммыучитывать нетолько свойстваданных иметьконкретноезначение, нои более тонкиесвойства, определяемыеизвестнымисоотношениямимежду данными(предикаты надданными). В этомслучае смешанныйвычислительоперирует снекоторойопределеннойна данныхобстановкой.Глубина смешанныхвычисленийопределяетсясхемой смешанныхвычислений.Наряду со строгойсхемой смешанныхвычислений, введеннойвначале, былаопределенаполивариантнаясхема, связаннаяс продвижениемсмешанныхвычисленийв альтернативы, даже если выборальтернативне может бытьопределен притаком вычислении.
Совместно сОстровскимЕршов исследовалприменениесмешанныхвычисленийв такой традиционноважной области, как трансляция, а именно построениетрансляторовдля заданногоописания входногоязыка. Существенноотметить, чтоздесь былиполучены нетолько результаты, демонстрирующиепрактическуюприменимостьпринципа смешанныхвычислений(удавалосьстроить трансляторысущественноболее эффективные, чем это достигаетсяпри обычномавтоматическомпостроении), но и ряд фактови наблюдений, важных длясопоставленияметодов трансляциии пониманиясущности трансляциии показывающихметодологическуюважность принципасмешанныхвычислений.
Таким образом, в области смешанныхвычисленийЕршову принадлежитне только определениеосновополагающихпонятий и моделей, но и определяющийвклад в теориюи методологиюэтой области.Он по правусчитаетсяоснователеми лидером этогонаправления, активно развиваемогосейчас в разныхколлективахи странах.
Отталкиваясьот трансформационноймодели смешанныхвычисленийи от своих работв области трансляциии оптимизациипрограмм, Ершовопределяетконцепциютрансформационноймашины. Трансформационнаямашина естьабстрактноевычислительноеустройство, выполняющеепрограммы внекотором«сверхязыке», действиямикоторого являютсятрансформациипар (программа, данные). Действияэти поддерживаютсохранениенекоторогоинварианта, что обеспечиваеткорректностьтрансформаций.Концепциятрансформационноймашины представляетсявесьма многообещающей- и как теоретическаямодель дляописания иобоснованияпроцессовобработкипрограмм, и какметодологическаяоснова построенияразличныхинструментальныхпроцессов.
Концепциятрансформационноймашины являетсятем важнымвкладом втрансформационныйподход к построениюпрограмм, энтузиастоми пропагандистомкоторого былА.П.Ершов, иразличныеаспекты которогоисследуютсяв ряде его работ80-х гг. Трансформационныйподход развиваетсясейчас в рядеколлективову нас и за рубежоми представляетсявесьма перспективным, так как он даетвозможностьполучать программыс хорошимипоказателямитаких качеств, как надежностьи эффективность, а также повышаетстепень переиспользованияпрограммногообеспечения.Работы Ершовапо трансформационномуподходу даютестественнуюточку ростадля последующихисследований.
Следует заметить, что наряду сработами поязыкам и методамтрансляцииработы по смешаннымвычислениями трансформационномуподходу былиисточникомуже упоминавшейсяидеи Ершовао лексиконепрограммирования.
Заключаютработы Ершовапо теориипрограммированияего публикации, посвященныепонятию вычислимости.Сам он определяетэти работы какпопытку синтезавзглядов навычислимость, сложившихсякак в математическойлогике, так ив теоретическомпрограммировании.Так как понятиевычислимостиявляется однимиз главных какв той, так и вдругой областии имеет фундаментальноезначение длядругих программистскихпонятий, очевидно, что определениепонятия вычислимости, абстрагированногоот несущественныхсинтаксическихили модельныхпонятий и вместес тем вбирающегонеобходимыедля теории имногочисленнойпрактики сущности, является однойиз главныхзадач, определяющихдальнейшеевзаимовлияниематематикии программирования.В фундаментальнойработе «Проблемыпрограммирования: Всесоюзнаяконференцияв Новосибирске»(Вестник АНСССР, 1970, №6) проводитсяглубокий анализбольшого числаопределенийвычислимости, сложившихсяв указанныхобластях, ихсопоставлениеи оценка вкладав общую теорию.На основанииданного анализаЕршов нащупываетидею определениявычислимости: свести определениевычислимойфункции к понятиюдетерминанта, т.е. того, чтоявляется инвариантнымк различнымспособам заданиявычислений.По-видимому, эти работыЕршова будутиметь такоеже стимулирующеезначение дляисследованийв данной области, как и его работыначала 70-х гг.для теории схемпрограмм.
Проект АИСТ
Одной из важныхзаслуг Ершоваперед отечественными мировымпрограммированиемявляется то, что он умелоценить текущеесостояние наукии практики инаметить тереальные точкироста и перспективыисследований, которые будутопределятьразвитиепрограммирования.Так, во второйполовине 60-хгг. он одним изпервых в странеосознал теновые возможностиобщения с ЭВМ, которые создаютсистемы разделениявремени. В 1966 г.он организуетработы поавтоматическиминформационнымстанциям (проектАИСТ). ПроектАИСТ, создателеми руководителемкоторого былА.П.Ершов, объединялширокий кругисследованийпо архитектуревычислительныхкомплексов, их программномуобеспечениюи моделированиювычислительныхсистем. В рамкахэтого проектабыла созданапервая в странеразвитая системаразделениявремени АИСТ-0, проект которойбыл предметомдоклада наКонгрессе AFIPS1967 г. («Входнойязык системыавтоматическогопрограммирования»предварительноесообщение —М.: ВЦ АН СССР,1961), а итоговыйдоклад былсделан на 2-йВсесоюзнойконференциипо программированиюв 1970 г. («Программирующаяпрограмма длямашины» ТретьеВсесоюзноесовещание повычислительнойматематикеи применениюсредств вычислительнойтехники, 1961).Реализованнаяна многомашинномкомплексе изотечественныхЭВМ, эта системабыла во многомпионерскойи внесла большойвклад в развитиеотечественныхработ по архитектуреЭВМ и операционнымсистемам, которые, к сожалению, были в дальнейшемзаторможеныориентациейна копированиезарубежныхразработок.Ряд таких свойствсистемы, какразделениев процессорахкомплексауправленияи обработки, иерархичностьстроения программногообеспечения, выделение ядраоперационнойсистемы, естественноесочетаниеразличныхрежимов общенияи обработки, обеспечилихорошую эффективностьи гибкостьсистемы.
Осмысливаяопыт проектаАИСТ и другихподобных работу нас в странеи за рубежомв своем докладена КонгрессеИФИП-68, Ершоввыдвигаетнескольконасущных тезисов: о специализациипроцессов вмногопроцессорномкомплексе дляразделениявремени, обуниверсальныхи специализированныхсистемах разделениявремени и областяхих применимости, о различиитребованийпрофессионалови непрофессионаловв программированиик общению ссистемамиразделениявремени и о томаспекте систем, который впоследствиибудет названдружественностьюк пользователю.
Опыт руководстватакими большимипроектами, какАЛЬФА и АИСТ, и работы в этихпроектах далиЕршову осознаниеобщих проблемпрограммированияи созданияпрограммногообеспечения.В 1973 г. — появляетсяоказавшаябольшое влияниена развитиеотечественныхработ статья.В этой работепроводилсяглубокий иразвернутыйанализ каквнешних свойствмашин четвертогопоколения, таки различныхвидов программныхсистем: операционныхсистем, системпрограммированияи их входныхязыков, специализированныхсистем обработкиинформации, в том числепакетов прикладныхпрограмм (вработе даетсяклассификацияППП, сохраняющаясвою ценностьи в наше время).Выделен рядхарактерныхсистем обработкиинформациии определеныих внешние ивнутренниесвойства. Очерченаобщая модельоперационнойсистемы — такназываемаябазовая операционнаясистема сконцентрическимстроением.Отмеченнаяв работе общностьв реализацииязыков программирования, создании процессоровдиалоговыхязыков и системотображенияхотя и не вылилась, как предполагалавтор, в созданиеуниверсальныхсистем, ностимулировалаработы по нахождениюобщей методологиисоздания такихсистем (впрочем, некотораяограниченнаяв своей универсальностимногоязыковаятранслирующаясистема наданной общностибыла построена- это системаБЕТА, о которойговорилосьвыше).
Технологическиепроблемы
Существеннымв этой работебыло также то, что в ней поднималисьтехнологическиепроблемы разработкипрограммногообеспечения.Ершов был однимиз первых встране, ктопоставил проблемусоздания технологиипрограммирования.Надо сказать, что стремлениеЕршова провестианалогию междусозданиемпрограммногообеспеченияи промышленнымпроизводством, ввести дисциплину, организацию, инструментированиев такой казавшийсямногим старымпрограммистамнерегламентируемыйтворческийпроцесс, какпрограммирование, встречало умногих нашихколлег конца60-х гг. активноесопротивлениеи даже резкийпротест. То, что сейчаскажется тривиальнымутверждением, Ершову приходилосьотстаиватьв жарких спорахи дискуссиях.
Ершов еще в60-х гг. отстаивалточку зрения, что программирование, несмотря наинтеллектуальностьи творческийхарактер этогопроцесса, нуждаетсяв организациии регламентации, наборе илисистеме соглашенийи правил, неговоря уже обинструментальномобеспечении.Руководя иактивно участвуяв больших программныхпроектах, Ершовс его пытливымумом не мог незадуматьсянад вопросом:«Как это делается?»Еще в работахпо АЛЬФА и АИСТуон пишет о рядеорганизационныхпринципов ирегламентирующихсоглашений.Первой егоработой, полностьюпосвященнойтехнологиипрограммирования, была статья(«Об одномвиде контактачеловека смашиной»).Автоматизациямыслительныхпроцессов»материалынаучных семинаровпо теоретическими прикладнымвопросам кибернетики,1963.), она же былапервой советскойработой в этомвозникшем вте годы новомнаправлении, и сам русскийтермин — технологияпрограммирования(software ingineering) — был предложенЕршовым. Всоответствиис названиембольшая частьработы былапосвященасобственнотехнологиитрансляции.В ней рассматривалисьобщие вопросыпроектированиятрансляторов: их структуры, системы техническихпроцедур и пр., вопросы выбораметодов реализации, вопросы организацииотладки идокументирования.Отдельнорассматривалисьпроблемыавтоматизациипостроениятрансляторови автоматизированногопостроениядокументации.Важной сторонойработы былото, что проблемытехнологиитрансляциирассматривалисьв общем контекстетехнологиисоздания большихпрограммныхсистем.
В ряде другихработ Ершовисследует иразвивает идеитехнологиипрограммирования.Им была предложенаматричнаяорганизацияколлективаразработчиков, внесен вкладв спецификациюэтапов разработки, в том числеприменительнок разработкетрансляторов, проведен анализреальной разработки(АЛЬФА-6) с точкизрения еетехнологичности.В работе «Алгоритмическиеязыки программирования»(Вестник АНСССР. —1968. — №3), написаннойсовместно сГ.Д.Чининым, определяется, как должен бытьорганизованколлектив, ведущий разработкупромышленныхтрансляторов, как должнарешаться такаяважная проблема, как преемственностьи переиспользованиеразработанногопрограммногообеспечения, как долженпроходить иинформационнообеспечиватьсяпроцесс разработки.Ориентированнаяна технологиютрансляции, эта работа даетряд хорошихидей по технологиямпромышленнойразработкидругих видовпрограммногообеспечения.
С общеметодологическойточки зрениядля развитиятехнологийпрограммирования, их обоснованияи формированияконцептуальногофундаментакрайне важнойявляется работа, представляющаятекст докладаЕршова на заседанииПрезидиумаАкадемии наукСССР. Для программистскойобщественностиэта работа мнекажется неменее важной, чем для членовПрезидиумаАН, которымсделан этотдоклад.
Уже давно ведутсяпопытки построитьпроцесс программированиякак доказательный, при которомправильностьпрограммыобеспечиваемаили проверяемана каждом этапеее построения.Для реальныхтехнологийпрограммированияс их несомненнымтребованиемобеспечениянадежности(высокой степениправильности)программы этипопытки приих удачномпродвиженииимели бы неоценимоезначение. Известен, например, подходЭ.В.Дейкстры, который основанна идеальнойтенденциистроить программукак точныйвывод из математическойпостановкизадачи. Несмотряна свою идеальностьи «навязываемость»жесткой дисциплины, этот подходявляется идейнойосновой (можетбыть, не до концачисто реализуемой)ряда современныхтехнологий.Однако подходЕршова, связанныйс оценкой реальногоопыта программированияи дифференциациейразличных еговидов, — не навязываниедисциплины, а ее извлечениеиз практики- кажется и болеепрактичным, и более широким.
Ершов выделяети анализируеттри вида программирования, обеспечивающихего доказательность: синтезирующее, сборочное иконкретизирующее.Синтезирующеепрограммирование(одним из типовкоторого являетсято, котороеосуществляетсяпо методу Дейкстры)связано савтоматическим, автоматизируемымили ручнымманипулированиемзнанием о задаче, области примененияи общематематическихспособахдоказательногорассуждения.Сборочноепрограммированиеосуществляетпостроениепрограммы изуже существующих(проверенныхна правильность)фрагментов.Конкретизирующеепрограммированиеосновано насистематическомпостроенииспециализированныхпрограмм изуниверсальнойзаготовки(одним из способовтакого программированияявляется применениесмешанныхвычислений).Ершов, с однойстороны, рассматриваетспецификукаждого видаи отмечает ихразличия, которыедолжны выражатьсяв различныхтехнологическихприемах иинструментах, с другой стороны, говорит о том, что при построенииреальногопрограммногообеспеченияэти виды могути нередко должныкомбинироваться.Все это даетоснову длясоздания развитогометодологическогофундаментабудущих технологийпрограммирования.
Мини- и микро-ЭВМ
Работа “AnExperimental Automatic Information Station AIST-O» (AFIPS Conf.Proc., AtlanticCity,April18–20, 1967. — Washington;London:Acad.Press., 1966) оцениваетс точки зренияприменениясредств вычислительнойтехники новыйтогда феномен- появлениемини — и микроЭВМ, прогнозируетте неограниченныевозможности, которые онисоздают, выделяетте новые черты, которые характерныдля программногообеспечениямикроЭВМ: интегральностьподхода к совместномупроектированиюоборудованияи софтвера, специализированностьпрограммногообеспечения(ПО), его ориентацияна использованиенепрофессионаламив программировании.Здесь же делаетсяоправдавшийсявпоследствиивывод о крайнейважности дляПО этих ЭВМпроблем переносаи совместимости, а также намечаютсявозможные путирешения этихпроблем. В однойиз своих работон справедливоотрицаетвыдвигавшийсянекоторымиспециалистамитезис о стабилизацииположения впрограммированиии излагаютактивные точкироста — новыеконцепции вязыках программирования, кристаллизацияи фундаментализацияпонятий трансляции, переход от базданных к базамзнаний (в работеони называются«сложными»базами данных), появлениеинструментальныхкомплексов(что впоследствиис легкой руки«адистов» сталоназываться«окружениемпрограммирования»).Надо сказать, что прогнозЕршова полностьюоправдался.Здесь же оцениваетсясостояниетеории программированияи ее соотношенияс практикой, что весьмасущественнодля определенияпутей развитиятеории. Многов работе говоритсяоб обучениипрограммированию, о подготовкекадров — но обэтой ее сторонескажем позднее.
Программирование– вторая грамотность
Ершов выявили прояснил рядсущественныхчерт, свойственныхпрограммированиюкак науке ичеловеческойдеятельности.Замечания исуждения Ершовапо этому поводуразбросаныво многих егоработах, ноесть несколькошироко известныхего статей, многократнопереведенныхи изданных, которые целикомпосвящены ненаучным илитехническимпроблемампрограммирования, а вопросам, чтоесть программированиекак наука идеятельность, что есть программисткак специалистспецифическогоинтеллектуальноготруда. Это такиеработы, как «Очеловеческоми эстетическомфакторах впрограммировании»,«Программирование- вторая грамотность»,«Два обликапрограммирования»и др. В работе, посвященнойпамяти раноумершего талантливогопрограммистаГ.И.Кожухина, содержитсяконструктивныйанализ противоречий, возникающихмежду творческойприродойпрограммистскоготруда и необходимойдля любых массовыхпрофессийпроизводственнойего организацией.Главный тезисстатьи: «Программированиеобладает богатой, глубокой исвоеобразнойэстетикой, которая лежитв основе внутреннегоотношенияпрограммистак своей профессии, являясь источникоминтеллектуальнойсилы, яркихпереживанийи глубокогоудовлетворения.Корни этойэстетики лежатв творческойприроде программирования, его трудностии общественнойзначимости».Статья полнаглубоких сужденийи замечаний, поясняющихэтот тезис. Встатье отмечаетсяэлитарностьпрограммистови в то же времяговорится онеобходимостисделать искусствопрограммированияобщим достоянием.
Ершов отмечает, что программированиенеобходимосовременномучеловеку нетолько в силутого, что ЭВМв ближайшембудущем пронижетвсе стороныжизни, но и потому, что современнаяжизнь требуетповседневногопланированияи предвидения.Он говорит:«Вторая грамотность- это не толькоумение писатькоманды, но ивоспитаниечеловека, решительногои предусмотрительноговместе». Программирование, заключаетЕршов, являетсясущественнойкомпонентойсовременногообучения ивоспитания.
Ершов четкоформулируетинтуитивноосознававшеесяположение отом, что нельзяпрограммированиерассматриватьединообразно.Он разделяетпрограммированиена два вида: программированиедля себя ипрограммированиедля заказчикаи точно описываеткоренные различияэтих видов, обликов программирования.Соответственноон вводит термины«программист-слуга»и «программист-хозяин»и показывает, как глубокоразличаютсяих манеры, стилии даже критерии.Такая конструктивнаядифференциацияпрограммированиякрайне важнапри созданииреальных технологийпрограммирования, да и для рядаболее общихвещей, выражающихсядаже в этикеи эстетикепрограммирования.В чисто научномплане эта работасодержит модельпрограммнойобстановкидля программиста-хозяина, основаннуюна уже упоминавшейсятрансформационноймашине.
Заметной линиейработ Ершоваявляются работы, посвященныеобщению с ЭВМна естественномязыке. Начальнымподходом кконструктивизацииэтих проблембыла работа«Об одном видеконтакта человекас машиной».Впервые вотечественнойи, по-видимому, мировой литературеЕршов попыталсясформулироватьряд точнопоставленныхзадач реализациитакого общения.Размышленияпо этому поводу, объединенныес исследованиямилингвистов(И.А.Мельчук) исистемныхпрограммистов(А. С. Нариньяни), привели к появлениюпроекта РИТА.Проект РИТАв таком виде, как описывался, не был реализован, но можно четкопроследить, как ряд существенныхидей этогопроекта перешелво впоследствииреализованныелингвистическиепроцессорыи системыискусственногоинтеллекта: выделениепромежуточногоуровня семантическогопредставления, соотношениелингвистическихи программныхсоставляющихдиалоговойсистемы, наличиеинтерфейсныхблоков длядругих (классических)программныхсистем, множественностьзначенийинтерпретирующихфункций (чтопозже былообобщеноА.С.Нариньянив понятиинедоопределенныхмножеств) ит.д.
В последующемЕршов проводитдальнейшуюконструктивизациюпроблем общенияна естественномязыке, выделяяиз естественногоязыка оченьважное подмножествоязыка деловойпрозы. ТакжеА.П.Ершов даетобщее определениеделовой прозекак языковомуносителюпроизводственныхотношенийчеловека иотмечает, чтоона фактическивыделяетсяв особую лингвистическуюкатегорию. Рядсвойств деловойпрозы — внутренняяформализованность, четкость функцийсообщения — говорит обактуальностине тольконеобходимости, но и возможностинаучить машинуполностью(Ершов этоподчеркивает)понимать ивосприниматьэтот язык. ДалееЕршов рассматриваетнекоторыесущественныечерты глобальноймодели полноговосприятияязыка применительнок деловой прозе.
Здесь в своихисследованияхи рассужденияхЕршов выходитза пределысобственнопрограммированияи формулируетфундаментальнуюпроблему созданиямашинного фондарусского языка.Отмечая связьэтой проблемыс решениемзадачи общенияс ЭВМ на естественномязыке, он подчеркиваеточень важнуюнаучную, общекультурнуюи прикладнуюзначимостьэтой проблемы.
Другие проекты
Ершов был инициатороми идейнымруководителеми ряда другихпроектов, неупомянутыхвыше. Приведемв качествепримера такиепроекты, каксистема программированияСЕТЛ для языкасверхвысокогоуровня (языкаспецификаций), профессиональнаярабочая станцияМРАМОР илишкольная системапрограммированияШКОЛЬНИЦА. ХотяЕршов не былразработчикомв таких проектахи не участвовалв публикацияхпо ним, эти проектыпитались егоидеями и обсуждениямис ним.
Научные направлениядеятельностиЕршова многообразны.В принципе этосвойственномногим программистам50-х и начала 60-хгг. — можно привестинемало примеровсоветских изарубежныхпрограммистов, которые имеютхорошие результатыв трех — четырехразличающихсянаучных направлениях.Такой характердеятельностиестествен дляученых, стоящиху истоков новойнаучной дисциплины(и, к сожалению, мало доступентем, кто вступаетв уже сложившуюся, с большим спектромоформившихсянаправленийнауку). Но дажеи на фоне первыхпрограммистовЕршов выделяетсяпоистине«ломоносовской»широтой своихинтересов ирезультатов.
Вывод
АндрейПетрович Ершовопределилразвитие советскогои мировогопрограммированияна десятки летвперед: он проводилфундаментальныеисследованияв областивычислительнойтехники, схемпрограмм, теориикомпиляциии др. Именноблагодаря емупоявилась такназываемаялогическаяЭВМ, не зависящаяот конкретнойреализации.Это был принципиальноновый шаг: раннеекаждая программаписалась толькодля одной конкретноймашины и сильнозависела отконкретныхфизическихсхем и не моглаприменятьсяна других ЭВМ, что сильнозатруднялораспространениепрограммирования.
Возможно, идея лексиконаявляется однойиз основных, оставленныхнам Ершовым.Она может служитьисточникомсоздания научныхи методическихоснов программированияна десятки летвперед. Многомерныезначения –массивы и списки, содержащиесходные данные, были такжепридуманы ивпервые реализованынаучной группойЕршова. Им созданытакие языкипрограммирования, как АЛЬФА, АЛЬФА-6и БЕТА, он активноучаствовалв созданииАлгола и еговариаций. Нельзяне заметить, что наиболеераспространенныйучебный языкпрограммирования– Паскаль инаиболее популярныйязык средипрофессионалов– Си и его модификацииявляютсяалголоподобными, т.е. за основувзяты принципы, используемыев Алголе.
Творческоенаследие академикаА.П.Ершова, одногоиз выдающихсяученых в областиинформатики, внесло определяющийвклад в становлениеи современноесостояниемировогопрограммирования.Оно содержиткак подходыи методы, ужепрочно вошедшиев теорию, методологиюи практикусовременногопрограммированияи овеществленныев них, так и рядидей и концепций, дающих основудля будущихисследований.Именно последниенуждаются вживом продолжениии развитии. Это- концепциясмешанныхвычислений, понятие абстрактнойвычислимости, трансформационныйподход, положенияо научных основахдоказательногопрограммирования, наконец, объединяющаяих идея лексиконапрограммированиякак источникопределенияи интеграцииисследованийпо созданиюбудущего обликапрограммирования.Также он проводилисследованияв областиискусственногоинтеллекта.Влияние нараспространениепрограммированияв массах тожево многом егозаслуга – Ершовмного времениуделял развитиюэтой дисциплиныв школах и вузах.
Таким образом, его можно смелоназвать однимиз основоположниковпрограммирования.Однако нельзязабывать, чтосвоими работамион наложилнекоторыерамки, ставшиеуже шаблонами, что, разумеется, тормозитфундаментальныеисследования, хотя и сильнопомогает приконкретнойреализациипрограмм.
Используемаялитература:
1) thl.narod.ru/a/3.htm, без названия- около 10 декабря2003г..
2) Архив академикаЕршова, электроннаяверсияershov.iis.nsk.su/archive — около 10 декабря2003г.:
А) «Об одномметоде обращенияматриц» — докладАН СССР, 1955г.
Б) «АЛЬФА-рождение, или как создаваласьсистема автоматическогопрограммирования»- «За науку вСибири», 1965.
В) статья Поттосинао Ершове
Г) «Операторныеалгоритмы. Обоператорныхсхемах Янова»- «Проблемыкибернетики»,1968.
3) «Наука в Сибири»,www.sbras.ru/HBC/2001/n25/f09.html, около 10 декабря2003г.
4)«СоветскаяСибирь», www.sovsibir.ru/show.shtml?tp=day&nart=4718, около 10 декабря2003г.