Жизнь и достижения никлауса вирта. Вирта николай евгеньевич

Никлаус Вирт (нем. Niklaus Wirth, род. 15 февраля 1934) - швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования. Ведущий разработчик языков Паскаль, Модула-2, Оберон, профессор компьютерных наук (ETH), Лауреат премии Тьюринга 1984 года.

Никлаус Вирт родился 15 февраля 1934 года в Винтертуре, в предместье Цюриха (Швейцария). Родители - Уолтер и Хедвиг Вирт. Отец Никлауса был школьным учителем.

Никогда программы не содержат так мало ошибок, как при отсутствии каких-либо средств отладки.

Вирт Никлаус

В детстве Никлаус Вирт увлекался авиамоделизмом и постройкой ракет, увлечение электроникой и системами программного управления началось с разработки устройств дистанционного управления для моделей. В 1954 году поступил на факультет электроники Швейцарского федерального технологического института (ETH) в Цюрихе, где за четыре года получил степень бакалавра по электротехнике.

Продолжил обучение в Лавальском университете (Квебек, Канада), в 1960 году получил степень магистра. Затем был приглашён в университет Калифорнии в Беркли (США), где в 1963 году, под руководством профессора Хаски, защитил диссертацию, темой которой стал язык программирования Эйлер (Euler) - расширение Алгола средствами языка Лисп.

Диссертация Вирта была замечена сообществом разработчиков языков программирования, и в том же 1963 году он был приглашён в Комитет по стандартизации Алгола IFIP (Международной федерации информатики), который разрабатывал новый стандарт языка Алгол, впоследствии ставший Алголом-68.

Вместе с Чарльзом Хоаром Вирт отстаивал в комитете линию на разработку умеренно модифицированной версии Алгола, свободной от недостатков исходного языка и дополненной минимумом действительно необходимых средств. Вирт и Хоар представили комитету язык Algol-W (W - от Wirth), представлявший собой именно такую переработку Алгола, но поддержки не встретили.

По завершении работы комитета в 1968 году Вирт вошёл в число тех, кто критиковал Алгол-68, говоря о его недостаточной надёжности и чрезвычайной избыточности. Параллельно, с 1963 по 1967 годы Вирт работал ассистентом в Стэнфордском университете, США.

Вместе с Джимом Уэльсом разработал и реализовал язык PL/360, предназначенный для программирования на платформе IBM/360 - алголоподобный язык, в который был введён ряд системно-зависимых возможностей, связанных с архитектурой IBM/360.

В 1967 году вернулся в звании доцента в университет Цюриха, в 1968 году получил в ETH звание профессора компьютерных наук. В течение 31 года работал в ETH. Много занимался организационной деятельностью, совершенствуя систему обучения своего университета.

В 1970 году создал язык программирования Паскаль. В 1970-х годах разработал, вместе с Ч. Хоаром и Э. Дейкстрой технологию структурного программирования. Вышедшая в 1971 году статья Вирта «Разработка программы методом пошагового уточнения» описала и обосновала ставшую впоследствии классической методологию разработки программного обеспечения «сверху вниз».

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

В 1975 году разработал язык Модула, в котором реализовал идеи разработки модульных программ с хорошо определёнными межмодульными интерфейсами и параллельного программирования. Кроме того, в Модуле был изменён синтаксис языка - Вирт избавился от унаследованной ещё от Алгола-60 необходимости применять составные операторы в конструкциях ветвления и циклах.

Модула не была широко известна и имела всего одну экспериментальную реализацию, но её доработанная версия - Модула-2, разработка которой началась в 1977 и закончилась в 1980 году, предназначенная для реализации системного ПО разрабатываемой в ETH системы Lilith - 16-разрядного персонального компьютера, стала известна и довольно популярна, хотя и не превзошла по популярности Паскаль, особенно его коммерческие реализации.

Система Lilith обогнала тенденции компьютерной индустрии на несколько лет, позднее Вирт с сожалением говорил, что, не реализовав потенциал этой системы, швейцарская компьютерная индустрия упустила свой исторический шанс. Развитием Модулы-2 стал язык Модула-3, разработанный совместно фирмами DEC и Olivetti; в его создании Вирт участия не принимал.

Во второй половине 1970-х Вирт участвовал в конкурсе министерства обороны США на разработку нового языка для программирования встроенных систем, в результате которого был создан язык Ада. Повторилась история с Алголом-68 - проект группы, в которой работали Вирт и Хоар, не был одобрен комитетом по языку. В итоге конкурс выиграл проект, основанный на Паскале, но гораздо более сложный и объёмный.

С 1982 по 1984 и с 1988 по 1990 годы Вирт возглавлял факультет компьютерных наук ETH, с 1990 года - Институт компьютерных систем при ETH.

В 1988 году в содружестве с Юргом Гуткнехтом (Jurg Gutknecht) Вирт разработал язык программирования Оберон. Целью разработки было создание языка для реализации системного ПО проектируемой новой рабочей станции. Основой для Оберона стала Модула-2, которую существенно упростили, но при этом дополнили новыми возможностями.

В 1992 году Вирт и Мёссенбёк выпустили сообщение о новом языке программирования - Оберон-2, - минимально расширенной версии Оберона. В этом же году была образована дочерняя компания ETH - Oberon microsystems, которая занялась разработкой систем Оберон. Вирт стал одним из членов её совета директоров.

В 1999 году эта компания выпустила следующую версию Оберона - Component Pascal, более приспособленную для компонентного программирования. В 1996 году Вирт разработал ещё один оригинальный язык программирования - Lola, предназначенный для разработки настраиваемых электронных схем.

1 апреля 1999 года Вирт вышел на пенсию, достигнув предельного для государственного служащего в Швейцарии возраста 65 лет (ETH - государственный ВУЗ, его работники являются госслужащими и их работа подчиняется соответствующему законодательству).

Член национальных академий: Swiss Academy of Engineering (Швейцария), U. S. Academy of Engineering (США), Berlin-Brandenburg Academy (Германия).

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

Премии и награды

IEEE Emanuel Piore Award (1983)
ACM Turing Award (Премия Тьюринга) (1984)
ACM Award for Outstanding Contributions to Computer Science Education (1987, 1989)
IEEE Computer Pioneer (1988)
Prix Max Petitpierre (1989)
IBM Europe Science and Technology Prize (1989)
Marcel Benoit Prize (1990)
Orden Pour le Merite (1996)
Leonardo da Vinci Medal (1999)
ACM Outstanding Research Award in Software Engineering (1999).

Достижения

Вирт разработал или участвовал в разработке языков программирования: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. Наиболее известная его разработка, безусловно - язык программирования Паскаль, оказавший огромное влияние на несколько поколений программистов и ставший базой для создания большого числа языков программирования.

Ещё одна фундаментальная работа, участником которой стал Вирт - разработка технологии структурного программирования, ставшая в программировании, безусловно, самой сильной формализацией как минимум 1970-х - 1980-х годов. Эта технология разработана, обоснована и внедрена в жизнь всего тремя выдающимися людьми - Виртом, Дейкстрой и Хоаром.

Комментаторы не раз отмечали, что идеи Вирта зачастую опережали развитие компьютерной индустрии на годы, иногда - на десятилетия.

Разработанная в начале 1970-х система Pascal-P, предполагающая компиляцию программ на Паскале в универсальный «пи-код» и реализацию на любой платформе интерпретатора пи-кода (одна из известных её реализаций - UCSD-Pascal Университета Сан-Диего), которая позволяла с минимальными затратами переносить Паскаль-системы на новые аппаратные платформы, более чем на два десятилетия опередила идеи интерпретатора промежуточного кода, реализованные в системах, поддерживающих исполнение программ на языке Java и в платформе. NET.

Идея совмещения системы программирования со сборщиком мусора, освобождающим программиста от необходимости отслеживать время жизни объектов, динамически размещённых в памяти, была реализована в 1988 году в языке и операционной системе Оберон. Обе эти идеи были использованы разработчиками Java и. NET во второй половине 1990-х годов.

Научные принципы

Возможно, одним из наиболее точных выражений принципов, которых придерживается Вирт в разработке всех своих проектов, является фраза Эйнштейна, вынесенная в эпиграф к «Сообщению о языке Оберон»: «Делай просто, насколько возможно, но не проще этого».

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

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

Даже расширение существующих языков и систем всегда сопровождалось упрощением.

По подсчётам, опубликованным в статье Сергея Свердлова «Арифметика синтаксиса», «линия Вирта», как он её назвал - линейка языков, включающая Паскаль, Модулу-2, Оберон и Оберон2 - это единственный пример «генетической линии» языков-потомков Алгола-60, в которой сложность языка, определённая как количество лексем в его описании, стабильно снижалась и в настоящее время оказывается ниже, чем у общего «прародителя» - Алгола-60.

Все языки «линии Вирта» проще Алгола-60, и каждый следующий язык в этой линии проще предыдущего. В то же время Ада более чем вдвое сложнее своего предшественника - Паскаля, C++ приблизительно в 1,7 раза сложнее Си, а в линейке Паскаль - Турбо Паскаль разных версий - Object Pascal сложность экспоненциально растёт от версии к версии.

Вирт часто критикует «американский подход» к разработке средств программирования, в котором маркетинговые соображения превалируют над требованиями математической стройности и гарантированной надёжности, и каждое новое модное поветрие сопровождается некритичным внесением в языки программирования новых синтаксических элементов.

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

Известно ехидное замечание Вирта по поводу привычки американцев к антропоцентризму в терминологии: «Они называют расширение типа „наследованием“, но, вообще то, наследство обычно переходит к потомку только тогда, когда предок умирает».

Ещё один принцип, которым всегда руководствовался Вирт, можно сформулировать так: «Инструмент должен соответствовать задаче. Если инструмент не соответствует задаче, нужно придумать новый, который бы ей соответствовал, а не пытаться приспособить уже имеющийся». Он не приветствует разработку «языков, универсальных вообще».

Каждая разработанная Виртом система имела чётко сформулированное назначение, область применения, и он всегда без колебаний исключал из разработки всё, что не было нужно для данного конкретного назначения.

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

Изданы на русском языке:
Систематическое программирование. Введение. М.: Мир, 1977;
Паскаль. Руководство для пользователя и описание языка. М.: Финансы и статистика, 1982 (в соавторстве с К. Иенсен);
Алгоритмы + структуры данных = программы. М.: Мир, 1985;
Программирование на языке Модула-2. М.: Мир, 1987;
Алгоритмы и структуры данных. М.:Мир, 1989. ISBN 5-03-001045-9 (версия книги на языке Модула-2)
Алгоритмы и структуры данных. СПб.: Невский диалект. 2001.

Книга Вирта «Алгоритмы + структуры данных = программы» издавалась на русском языке несколько раз в разных вариантах и считается первым из трёх классических учебников по структурному программированию.

Никлаус Вирт - фото

Никлаус Вирт - цитаты

Программы становятся медленнее более быстро, чем компьютеры становятся быстрее.

Никогда программы не содержат так мало ошибок, как при отсутствии каких-либо средств отладки.

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

Никлаус Вирт родился 70 лет назад - 15 февраля 1934 г. - в небольшом городке Винтертуре в предместье Цюриха. Родился Никлаус в семье Уолтера и Хедвиг Вирт. Они жили неподалеку от школы, где преподавал его отец. В их доме была хорошая библиотека, где Вирт находил немало интересных книг, рассказывавших про железные дороги, турбины и телеграф.

Небольшой городок Винтертур имеет многовековую историю и славится своим машиностроением: там выпускаются локомотивы и дизельные двигатели. С детских лет Вирт увлекался техникой, особенно авиамоделированием. Он буквально грезил небом. Но для запуска ракет нужно было топливо, и потому он занялся химией. Юный Вирт оборудовал в подвале школы «секретную» лабораторию. Ничто не могло его остановить: однажды сделанная им модель отклонилась от заданной траектории и угодила под ноги директору школы. Однако Вирт все равно продолжал упорно идти к намеченной цели.

Спустя несколько десятилетий Никлаусу Вирту, как и Кену Томпсону, автору UNIX, довелось полетать на МИГе с военного аэродрома в Кубинке, что находится под Москвой. Сбылась его заветная мечта. Лучше всего мотивацию профессионального творчества Вирта раскрыл его коллега по Стэнфордскому университету (США), профессор Дональд Кнут: «Вирт всегда хотел создавать аэропланы, и ему нужен был самый лучший инструментарий. Вот почему он проектировал много компьютерных языков и микрокомпьютеров...»

От строительства моделей Никлаус довольно быстро перешел к разработке дистанционного управления для них. Когда ему исполнилось 18 лет, он с еще двумя цюрихскими авиамоделистами получили из Англии желанную радиоаппаратуру. Это предопределило его дальнейшую судьбу - в 1954 г. Вирт поступил на факультет электроники в цюрихский ETH (Eidgenoessische Technische Hochschule, Швейцарский федеральный технологический институт). После четырех лет обучения Вирт получил степень бакалавра в области электротехники. А затем начинается славное десятилетнее заокеанское научное «турне» будущего «отца Паскаля» и «короля компиляторов» по маршруту Швейцария - Канада - США - Швейцария.

Свое обучение Вирт продолжил в Лавальском университете г. Квебека (Канада), где в 1960 г. получил степень магистра. Затем его пригласили в университет Калифорнии в Беркли (США) - будущую жемчужину Кремниевой долины. Там под руководством профессора Хаски в 1963 г. Никлаус Вирт защитил диссертацию, посвященную развитию Алгола средствами Лиспа (язык Euler). Эта работа в буквальном смысле дала ему путевку в жизнь: Вирта приметили мэтры программирования и пригласили в Комитет IFIP по стандартизации Алгола. Та школа не прошла даром: на всю жизнь Вирт запомнил, что доказывать свою правоту нужно делом, особенно когда тебя не хотят слышать. В разработке языков он навсегда отказался от абстрактно-научного подхода в пользу математически-инженерного. По его словам, лучше сначала реализовать язык и лишь потом следует о нем писать.

С 1963 по 1967 г. Вирт работал доцентом (assistant professor) в Стэнфордском университете и в 1967 г. вернулся в этом звании в университет Цюриха. А в 1968 г. он получил в ETH звание профессора компьютерных наук и начал возводить на родине свой «швейцарский» Стэнфорд. Двадцатилетие с 1969 по 1989 г. было, пожалуй, самым плодотворным периодом в жизни Вирта (табл. 1 ). Он продолжал строить свою школу, уделяя немало времени организационной деятельности. C 1982 по 1984 г. (а потом и с 1988 по 1990 г.) Вирт возглавлял в ETH факультет компьютерных наук, а с 1990 г. руководил Институтом компьютерных систем (Institute of Computer Systems) при ETH. На пенсию профессор Вирт ушел 1 апреля 1999 г. по достижении 65-летнего возраста.

Романтические 1960-е годы положили начало дружбе трех патриархов структурного программирования - голландца Эдсгера Дейкстры, англичанина Энтони Хоара и швейцарца Никлауса Вирта. Этих «нобелевских» лауреатов (премия Тьюринга, присуждаемая ассоциацией ACM, вручается раз в жизни и приравнивается в компьютерных науках к Нобелевской) сблизили не столько абстракции компьютерных наук, сколько четкая профессиональная позиция.

Самым известным достижением профессора Вирта считается язык Паскаль. Безусловно, многие об этом языке слышали и знают его. Паскаль сыграл огромную роль в формировании мировоззрения нескольких поколений программистов. Но этот язык далеко не идеальный. В свое время Брайан Керниган, известный популяризатор языка Си, соавтор классического руководства по Си (K&R), написал критическую статью «Почему Паскаль не является моим любимым языком программирования». Если с ней внимательно ознакомиться, то можно решить, что Никлаус Вирт сделал из нее правильные выводы и в языке Modula-2 под воздействием статьи устранил многие изъяны канонического Паскаля. Однако следует иметь в виду одно немаловажное обстоятельство. Наделавшая шума работа Кернигана была написана 2 апреля 1981 г., т.е. через два года (!) после реализации группой Вирта в ETH первого компилятора Modula-2 и через год после выпуска аппаратной реализации Modula-2 - персонального компьютера Lilith. В апреле 1993 г. на Конференции ACM по истории языков программирования Вирт в ответ на вопрос одного из своих коллег поставил языку Modula-2 оценку «6 баллов» (наивысшая оценка в школах Швейцарии).

Компьютерная индустрия отставала от работ Вирта как минимум на 5-7 лет. В том же 1979 г. намного уступавший Lilith легендарный компьютер Apple II только-только обрел компилятор Apple Pascal, ориентированный на UCSD-реализацию Паскаля. До появления первого скромного Turbo Pascal Андерса Хейльсберга оставалось целых четыре года! Впоследствии Вирт с грустью говорил о том, что с проектом Lilith швейцарская промышленность упустила свой уникальный шанс.

Подлинной жемчужиной творчества Вирта стал проект Oberon. Созданная почти два десятилетия назад система Oberon (Oberon System, http://www.oberon.ethz.ch ) играет в наши дни приблизительно ту же роль, что в начале 1980-х годов играли проекты Alto и Xerox Star знаменитого центра Xerox PARC, откуда взяли начало современные персональные компьютеры и текстовые редакторы. Для таких корпораций, как Microsoft, IBM и Sun Microsystems, проект Oberon стал источником плодотворных идей, среди которых можно выделить документо-ориентированный интерфейс, браузеры, промышленные языки разработки ПО (Java и C#), машинно-независимый мобильный код (JVM и.NET CLR), аплеты, компонентное ПО, динамическую компиляцию (JIT, AOC, DAC), смарт-теги, веб-службы и др.

Мы живем в эпоху торжества безумной технологической гонки и надуманной сложности. Всю свою жизнь Никлаус Вирт посвятил борьбе с этими пагубными явлениями, но его не слышат или не хотят слышать. «Крайнюю степень ума, - писал Блез Паскаль, - обвиняют в безумии точно так же, как полное отсутствие ума. Хороша только посредственность».

Вирт был и остается последователем европейской инженерной культуры. Американские достижения давали ему богатую пищу для размышлений: многие идеи он пропускал через себя и выкристаллизовывал самое ценное. Все три ключевых языка (Паскаль, Modula-2 и Oberon) были созданы Виртом буквально два-три года спустя после возвращения из-за океана. (В 1967 г. Вирт завершал работы по компилятору Algol-W в Стэнфорде, а в 1976 г. и 1984 г. на год уезжал в лаборатории Xerox PARC.) Работы Вирта создавались не в ваккуме. Его окружали единомышленники - коллеги и ученики, среди которых можно выделить Юрга Гуткнехта (соавтора по проекту Oberon), Ханспетера Мессенбока (соавтора языка Oberon-2), Ричарда Орана (соавтора при создании Lilith), Куно Пфистера (основателя Oberon microsystems и идеолога инструментария BlackBox), Клеменса Шиперски (идеолога компонентной архитектуры в Oberon System) и Михаэля Франца (автора концепции динамической кодогенерации, прообраза JIT-компиляции Java).

Большую роль в популяризации в нашей стране языков и систем Никлауса Вирта в 1980-1990-х годах сыграла рабочая группа по Modula-2, бессменным руководителем и вдохновителем которой был Д. М. Сагателян из Института общей физики АН СССР. Нельзя не вспомнить и работы группы профессора И. В. Поттосина из Сибирского отделения АН СССР (НГУ и Институт систем информатики им. А. П. Ершова). Создание инструментария для бортового ПО отечественных спутников (проект СОКРАТ), семейство компьютеров KRONOS (Дмитрий Кузнецов, Алексей Недоря, Евгений Тарасов, Владимир Васекин и др.), XDS-семейство компиляторов Modula-2/Oberon-2 - вот, пожалуй, самые яркие страницы отечественной истории, связанные с именем Вирта. Нарастающая волна интереса к Oberon, вершине творчества патриарха надежного программирования, в связи с острой потребностью в высококачественном программном обеспечении, в частности, в физике, привела к возникновению проекта «Информатика-21» (http://www.inr.ac.ru/~info21/ ), к которому с огромным интересом относится Вирт. Более того, в марте этого года в швейцарском Центре ядерных исследований (CERN), где 15 лет назад взяла свое начало сеть World Wide Web, специально для физиков проводился Oberon Day (http://cern.ch/oberon.day ).

Никлаус Вирт заложил традицию присвоения языкам программирования имен математиков прошлого. В 1963 г. он дал имя Леонарда Эйлера, великого швейцарского математика, много лет проработавшего в России, своему первому творению - языку Euler. А в 1970 г. Блез Паскаль, великий французский математик и философ, творчеством которого восхищались Н. Г. Чернышевский и Л. Н. Толстой, был увековечен Виртом в языке Паскаль. Интересные параллели: 11 мая 1994 г., выступая в С.-Петербургском университете, Дональд Кнут подчеркнул, что для него особенно приятен тот факт, что звание почетного доктора информатики ему присуждает университет, в котором преподавал еще великий Эйлер. Никлаус Вирт 27 июня 1996 г. надел почетную докторскую мантию в Новосибирском Академгородке, созданном М. А. Лаврентьевым и С. Л. Соболевым по образу и подобию того самого Стэнфорда, который Вирт взял за основу строительства своей европейской школы в ETH. Вклад Вирта в развитие компьютерных наук и программной инженерии был оценен по достоинству. Он не только стал членом трех академий (Swiss Academy of Engineering, U.S. Academy of Engineering, Berlin-Brandenburg Academy), но и лауреатом самых престижных наград (табл. 2 ).

Жизненное кредо Никлауса Вирта лучше всего, пожалуй, передают слова великого Блеза Паскаля, написавшего три с лишним столетия назад: «Все наше достоинство заключено в мысли. Не пространство и не время, которых мы не можем заполнить, возвышают нас, а именно она, наша мысль. Будем же учиться хорошо мыслить...

Руслан Богатырев - научный редактор «Мира ПК», главный редактор «Мир ПК - диска», [email protected] .

Полную версию статьи см. в электронном альманахе «Искусство программирования», опубликованном в мартовском приложении «Мир ПК-диска» (№ 3/04).

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

Никлаус Вирт (Швейцария, Швейцарский федеральный технологический институт).

Из речи при вручении премии Тьюринга (Сан-Франциско, США, октябрь 1984 г.).

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

Эдсгер Дейкстра (Нидерланды, Эйндховенский технологический университет).

Почти все в программном обеспечении может быть реализовано, продано и даже использовано, если проявить достаточную настойчивость... Но существует одно качество, которое нельзя купить, - это надежность. Цена надежности - погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.

Энтони Хоар (Великобритания, Оксфордский университет).

Николай Евгеньевич Вирта

Николай Вирта. 1939 год.

Вирта Николай Евгеньевич (1906-1976). Советский писатель, драматург. Один из самых именитых деятелей искусства сталинской эпохи. Родился в с. Большая Лазовка близ Тамбова в семье приходского священника. Отца расстреляли как сторонника Антонова.1) После окончания школы Николай был пастухом, писарем в сельсовете. С 1923 г. работал репортером, журналистом, ответственным секретарем в различных областных и краевых газетах и на радио. Во время Великой Отечественной войны - военный корреспондент. Член Союза писателей СССР.

Вирта был награжден орденом Ленина (1939) и стал четырежды лауреатом Сталинской премии: в 1941 г. - за роман «Одиночество», в 1948 г. - за пьесу «Хлеб наш насущный», в 1949 г. - за пьесу «Заговор обреченных», в 1950 г. - за киносценарий «Сталинградская битва».

В творческой биографии Вирты есть совершенно уникальный сюжет, непосредственно связанный с именем Сталина. А. Ваксберг рассказывает: «После стольких лет гонений и травли Сталин вдруг в 1943 г. вспомнил о церкви. Решил привлечь, поддержать. Патриотическая позиция церкви и ее влияние на значительную часть населения в военных условиях могли пригодиться. Для начала было разрешено ограниченным тиражом издать Библию. Организацию и надзор Сталин поручил Молотову. Тот передоверил Вышинскому.

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

Так или иначе, мысль эта пришла, и цензор со специальными полномочиями явился по вызову к академику в его кабинет на Кузнецком мосту.

Это был известный писатель Николай Вирта, совсем недавно еще травимый как „антоновец", а потом вдруг обласканный, отмеченный

Сталинской премией, удостоенный похвальных рецензий: Сталину понравился его роман „Одиночество", как понравились (причуды тирана!) булгаковские „Дни Турбиных" и пастернаковские переводы из грузинских поэтов.

Впоследствии Вирта рассказывал, что предложение стать цензором и редактором Библии повергло его в смятение. Но и отказаться было бы самоубийством. К тому же Вышинский изложил поручение так: „Задание товарища Сталина и личная просьба самого митрополита Сергия", который был тогда местоблюстителем патриаршего престола. Попробуй - откажись...

Вирта взялся за работу. Наконец-то представилась возможность спокойно, не торопясь, прочитать Великую, Книгу. Увы, насладиться мыслью, поэзией, духом было ему не дано: ведь читал он не для души - искал „крамолу" - нежелательные «намеки», аллюзии, ассоциации...

С особым старанием отыскивал портретные черты: вдруг, к примеру, появится где-то человек с усами - не воспримет ли это читатель, наш простой советский читатель, не воспримет ли он „усы" как-то не так? „В современном ключе"...

Митрополит, „по просьбе" которого Вирта взялся за эту работу, узнав, что тот намерен редактировать Библию, пришел в смятение, но деваться было некуда - разве что ждать. По счастью, цензор-редактор крамолы в Библии не нашел, издание разрешил и явился к Вышинскому доложить об исполненном поручении.

Через несколько лет Вирта снова получит Сталинскую премию. Потом подряд - еще и еще. И каждый раз Вышинский исправно поздравит его "с заслуженно высокой наградой". И Молотов - тоже» (Вакс-берг А. Царица доказательств. М., 1992. С. 257-258).

Примечания

1) А.С. Антонов (1855-1922) - руководитель антибольшевистского восстания крестьян в Тамбовской и Воронежской губерниях (1920-1921), недовольных политикой «военного коммунизма». Восстание было жестоко подавлено частями Красной Армии под командованием М.Н. Тухачевского.

Использованы материалы кн.: Торчинов В.А., Леонтюк А.М. Вокруг Сталина. Историко-биографический справочник. Санкт-Петербург, 2000.

Прозаик и драматург XX века

Вирта Николай Евгеньевич (настоящая фамилия Карельский; псевдоним Артём) - прозаик, драматург.

Родился в семье сельского священника.

С 1911 семья надолго осела в с. Большая Лазовка, которое по ошибке указывается как место рождения Вирта и которое фигурирует в романах Вирта под названием Дворики. В «автобиографической повести» «Как это было и как это есть» (1973) Вирта счел необходимым подчеркнуть: «Никакого особенного религиозного воспитания в доме мы не получали; в церковь могли ходить, а могли и не ходить, посты соблюдать и не соблюдать» (СС. Т.4. С.357). С детских лет Вирта приобщился к крестьянскому труду, работая в поле, в огороде и в саду. Первоначальное образование получил в Большелазовской школе.

Октябрьскую революцию будущий писатель воспринимал как освобождение от вековой нужды и отсталости. Вирта рано лишился родителей: они были расстреляны, по некоторым данным, в 1921. В Большой Лазовке началась его трудовая биография: был пастухом, работал писарем в сельском совете и т.п.

В 1921-22 Вирта был учителем по ликвидации неграмотности в 263-м Кунгурском полку 30-й дивизии.

Перебравшись вскоре в Тамбов, Вирта в 1923 начинает репортерскую деятельность в газете «Тамбовская правда», где его наставником был журналист Г.И.Осетров, в числе первых заметивший литературное дарование юноши. Первые рассказы Вирта, построенные на деревенском материале, были напечатаны в литературном приложении к газете «Тамбовская правда». Тогда и появился псевдоним - Вирта (название небольшой северной реки, этим псевдонимом он отдал дань уважения своим далеким предкам).

Вирта позже работал в газетах Костромы, Махачкалы, Саратова; на страницах костромского журнала «Ледокол» появился рассказ Вирта о борьбе с антоновщиной; летом 1928 в молодежной газете «Смена» были напечатаны (за подписью Н.Карельский) главы первого романа Вирта «Тайна заброшенной хижины».

В 1930 Вирта переезжает в Москву, где сотрудничает в газетах «Вечерняя Москва», «Труд» и «Электрозавод»; увлеченно работал в ТРАМе (театре рабочей молодежи), выступая и автором ряда пьес, и актером, и режиссером, и директором. Широкую известность Вирта принес роман «Одиночество» (1935), посвященный событиям, развернувшимся на Тамбовщине в годы Гражданской войны (борьба с антоновщиной).

В 1930-е роман «Одиночество» выдержал 12 изданий. Успех «Одиночества» был предопределен синтезом исторической достоверности и психологической глубины. В главном герое романа - Петре Сторожеве (Вирта хорошо знал человека, ставшего его прототипом) - читатели и критики усматривали некоторое сходство с Григорием Мелеховым из эпопеи М.А.Шолохова «Тихий Дон».

В 1941 за роман «Одиночество» писатель был удостоен Сталинской премии 2-й степени. По мотивам романа Вирта написал трагедию «Земля» (1937), которая с успехом шла на сцене МХАТа.

В 1957 Вирта подготовил новую редакцию «Одиночества», где под влиянием времени были несколько изменены социально-психологические акценты и мотивировки. Сюжет романа «Одиночество» послужил основой оперы Т.Н.Хренникова «В бурю» (1939; 2-я ред. 1952).

Второй роман Вирта «Закономерность» (1937), сюжетно связанный с «Одиночеством», оказался менее удачным. Рецензия А.С.Макаренко называлась «Закономерная неудача» (Литературная газета. 1937. №47. 10 авг. С.3). Не понравилась «Закономерность» и М.А.Шолохову (см. об этом: Эйдельман Я. Оправдать доверие многомиллионных масс: Беседа с Михаилом Шолоховым // Литературная газета. 1937. №56. 15 окт. С.1). В романе «Закономерность» повествуется о жизни и делахмолодых людей губернского г.Верхнереченска - выходцев из зажиточных, интеллигентских семей, об их трудном пути в революцию. Здесь получил материализацию тезис И.В.Сталина о том, что по мере строительства социализма классовая борьба в обществе обостряется.

Уже в довоенную пору Вирта заявил о себе как о талантливом драматурге: трагедия «Земля», пьеса «Заговор» (1938), комедия «Клевета, или Безумные дни Антона Ивановича» (1939), пьеса «В старой фактории» (1940) не остались не замеченными читателями и зрителями конца 1930-х.

За свою активную и плодотворную литературную деятельность Вирта был награжден в 1939 орденом Ленина.

В период финской кампании (1939-40) и в годы Великой Отечественной войны Вирта был военным корреспондентом «Правды», «Известий» и «Красной звезды». Писатель побывал на многих фронтах, своими глазами видел оборону Мурманска, осажденный Ленинград и Сталинградскую битву. Кроме статей, очерков, корреспонденции и репортажей, из-под пера Вирта в военные годы выходят и драматургические произведения: «Мой друг полковник»(1942), «Солдатские женки» (1943),«Солдаты Сталинграда» (1944).

Вскоре после войны Вирта пишет сценарий художественно-документального фильма «Сталинградская битва» (1947), за который получил в 1950 Сталинскую премию 1-й степени. И на литературном сценарии, и на снятом в 1949 на его основе 2-серийном фильме сказалось влияние культа личности Сталина, о чем, однако, критики заговорили лишь после 1953. Из сценария «Сталинградская битва» писатель сделал пьесу (драматическую хронику) «Великие дни» (1947), шедшую в некоторых театрах.

По окончании войны Вирта часто обращается к сельской теме, которая была близка ему с самого начала его творческой биографии. Пьеса «Хлеб наш насущный» (1947) посвящена жизни колхозной деревни, в основе ее конфликта - борьба передовых колхозников против расхитителей общественной собственности, борьба двух типов сознания. За эту пьесу в 1948 Вирта был удостоен Сталинской премии 2-й степени.

В 1951 Вирта издает большой роман «Вечерний звон», работу над которым он начал еще в 1939 и продолжал урывками в годы войны. Роман повествует о жизни крестьян д.Дворики в конце XIX - начале XX в., о начале революционной борьбы на Тамбовщине. «Вечерний звон» предвосхищает события, которые были изображены Вирта в романе «Одиночество». Здесь читатель вновь встречается с семьей Сторожевых. Романом «Вечерний звон», характеризующимся широким охватом событий и людских судеб, открывается трилогия, запечатлевшая историю семьи Луки Лукича Сторожева и его потомков («Одиночество», «Закономерность»). На «Вечерний звон» писатель смотрел как на начало задуманного им цикла из 6 романов, воссоздающих народную жизнь на протяжении длительного исторического периода - от конца XIX в. до современности. Известно также, что Вирта мечтал написать 2-ю часть романа «Одиночество».

Не расставался Вирта и с драматургией: в первые послевоенные годы им написаны пьесы «Заговор обреченных» («В одной стране») (1948; сталинская премия 1-й степени в 1949), «Три года спустя» (1952) - продолжение «Заговора обреченных», литературный сценарий «Тихий угол» (1952), комедия «Гибель Помпеева» (1953, новая литературная редакция) и др.

Проза и драматургия В. 1930-х - начала 1950-х отвечали идейным и эстетическим требованиям сталинской эпохи, с ее культом личности Сталина и «теорией бесконфликтности». Выступления Вирта по вопросам литературы и искусства также свидетельствуют о том, что он был едва ли не добровольным пленником и заложником своего сложного времени. После смерти Сталина положение Вирта, обладателя четырех Сталинских премий, резко изменилось к худшему.

В 1954 Вирта был исключен из СП СССР за то, что, как утверждалось, на своей подмосковной даче вел привилегированный образ жизни. Однако у В. хватило сил для того, чтобы устоять на ногах.

В 1956 он, судя по всему, был восстановлен в Союзе Писателей. После XX съезда КПСС начался новый этап в творчестве Вирта, не прекращавшего работать даже в самые тяжелые для него дни.

В романе «Крутые Горы» (1956) Вирта стремился отразить те перемены, которые произошли в жизни колхозного крестьянства после XX съезда КПСС. Примечательно, что свои «картины сельской жизни» Вирта писал после длительного пребывания в с.Горелое. Многие действующие лица произведения срисованы с натуры. На материале романа «Крутые Горы» Вирта создал пьесу «Дали-дальние, неоглядные...» (1957).

В 1960 Вирта опубликовал роман «Степь да степь кругом...» (др. название «Возвращенная земля»), который посвящен освоению целинных земель Казахстана. Романом «Быстробегущие дни» (1964) писатель откликнулся на острые споры, развернувшиеся по поводу проекта канала Иртыш-Караганда.

В конце 1950-х - начале 1960-х Вирта не раз напоминал о себе как о плодовитом драматурге: в этот период им были написаны такие пьесы, как «Летом небо высокое», «Три камня веры» (обе - 1959), «Желанная» (1961), «Кружатся, кружатся ветры.» (1963), «Секреты фирмы "Клеменс и сын"» (1964) и др. Судьба обширного и разнопланового драматургического наследия В. оказалась сложной: значительная часть драматургических произведений Вирта так и осталась невостребованной.

С конца 1950-х Вирта довольно часто обращался к жанру повести: «Наша Берта» (1959), «Жизнеописание Остапа Чуба, составленное с его слов и со слов его достопочтенной супруги и опубликованное для всеобщего сведения, а также в назидание потомству» (1960), «Призрак покидает Зеленый холм» (1964), «Тех лет глубокие следы» (1970), «Кольцо Луизы» (1971), «Ваши радиограммы подтверждены боями... (По следам одного подвига)», «Побег», «Скала» (все - 1973) и др.

Известен Вирта и как талантливый рассказчик. Небольшие сборники его рассказов выходили начиная со второй половины 1930-х. Некоторые из рассказов и «маленьких повестей» Вирта сохраняют свою художественную ценность и по настоящее время: «На проезжей дороге», «Старый Андриян», «Вечерние тени» (все - 1947), «Обходчик» (1969), «Воодушевленный Егор» (1974) и др. Вирта писал также юмористические рассказы и рассказы и повести для детей. Перу Вирта принадлежат многочисленные очерки и статьи, а также ряд киносценариев.

В течение многих лет Вирта работал над романом-хроникой «Черная ночь», две книги которого были опубликованы после смерти писателя, в начале 1990-х (Кн.1. Молодая гвардия. 1990. № 6,7; Кн.2. Там же. 1991. №7-9). Своеобразными ступенями к этому большому хроникальному произведению стали очерк «Как был взят в плен Паулюс» (1943) и повесть «Катастрофа» (1962), в которой «на фоне действительных событий прослеживались зигзаги души и пути человека (фельдмаршала Паулюса.- П. 5.), слишком поздно понявшего гибельность и преступность дела, которому он верой и правдой служил до часа пленения» (СС. Т.4. С.10). Роман-хроника «Черная ночь» рассказывает о Гитлере, нацизме и движении общеевропейского Сопротивления. Он остался незавершенным. Судя по опубликованным частям, это крупное произведение Вирта обещало быть основательным и значительным.

В богатом архиве писателя, который находится у его вдовы, хранится еще немало неопубликованных рукописей.

Жизнь и творчество Вирта многими нитями связаны с тамбовской землей. Свою «автобиографическую повесть» «Как это было и как это есть» писатель не случайно завершил словами признания в любви к Тамбову.

Основные произведения Вирта переведены на многие иностранные языки.

Л.В.Бекедин

Использованы материалы кн.: Русская литература XX века. Прозаики, поэты, драматурги. Биобиблиографический словарь. Том 1. с. 390-393.

Далее читайте:

Русские писатели и поэты (биографический справочник).

Сочинения:

"Роман-газета", 1939 г., №№ 7 (171) - 9 (173). Вирта Н. . Закономерность. Роман.

СС: в 4 т. / сост. Т.А.Вирты; вступ. статья И.Л.Гринберга. М., 1980-82.;

Избранные произведения: в 2 т. / вступ. статья И.Л.Гринберга. М., 1973;

Пьесы. М., 1950;

Ответы на анкету «Как мы пишем» // Вопросы литературы. 1962. №7. С.164-167;

Литература:

Кин В.П. Талантливая книга // Новый мир. 1936. №7. С.234-238;

Николай Евгеньевич Вирта / сост. В.М.Акимов // Русские советские писатели. Прозаики. Л., 1959. Т.1. Библиографический указатель. С. 346-374;

Емельянов Б. Парадоксы Николая Вирты // Театр. 1962. №5. С.66-70;

Захаркин А. О романе Н.Вирты «Закономерность» // Вирта Н.Е. Закономерность. М., 1972. С.436-440;

Вирта Н.Е. 70 лет со дня рождения // Календарь знаменательных и памятных дат по Тамбовской области на 1976 год. Тамбов, 1975. С.24-26;

Николай Вирта: К 70-летию со дня рождения: сб. Тамбов, 1976;

Гринберг И.Л. Труд и вдохновение. М., 1983. С.248-261;

Караваев В. Последний роман Николая Вирты // Молодая гвардия. 1990. №6. С.67-69.

Поступил на факультет электроники Швейцарского федерального технологического института (ETH) в Цюрихе , где за четыре года получил степень бакалавра по электротехнике. Продолжил обучение в Лавальском университете (Квебек , Канада), в 1960 году получил степень магистра . Затем был приглашён в университет Калифорнии в Беркли (США), где в 1963 году , под руководством профессора Хаски, защитил диссертацию, темой которой стал язык программирования Эйлер (Euler) - расширение Алгола средствами языка Лисп .

Диссертация Вирта была замечена сообществом разработчиков языков программирования, и в том же 1963 году он был приглашён в Комитет по стандартизации Алгола IFIP (Международной федерации информатики), который разрабатывал новый стандарт языка Алгол, впоследствии ставший Алголом-68 . Вместе с Чарльзом Хоаром Вирт отстаивал в комитете линию на разработку умеренно модифицированной версии Алгола, свободной от недостатков исходного языка и дополненной минимумом действительно необходимых средств. Вирт и Хоар представили комитету язык Algol-W (W - от Wirth), представлявший собой именно такую переработку Алгола, но поддержки не встретили. По завершении работы комитета в 1968 году Вирт вошёл в число тех, кто критиковал Алгол-68, говоря о его недостаточной надёжности и чрезвычайной избыточности. Параллельно, с по годы Вирт работал ассистентом в Стэнфордском университете , США . Вместе с Джимом Уэльсом разработал и реализовал язык PL/360, предназначеннвый для программирования на платформе IBM/360 - алголоподобный язык, в который был введён ряд системно-зависимых возможностей, связанных с архитектурой IBM/360.

Премии и награды

  • IEEE Emanuel Piore Award (1983)
  • ACM Turing Award (Премия Тьюринга) (1984)
  • ACM Award for Outstanding Contributions to Computer Science Education (1987, 1989)
  • IEEE Computer Pioneer (1988)
  • Prix Max Petitpierre (1989)
  • IBM Europe Science and Technology Prize (1989)
  • Marcel Benoit Prize (1990)
  • Orden Pour le Merite (1996)
  • Leonardo da Vinci Medal (1999)
  • ACM Outstanding Research Award in Software Engineering (1999).

Достижения

Вирт разработал или участвовал в разработке языков программирования: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. Наиболее известная его разработка, безусловно - язык программирования Паскаль, оказавший огромное влияние на несколько поколений программистов и ставший базой для создания большого числа языков программирования. Ещё одна фундаментальная работа, участником которой стал Вирт - разработка технологии структурного программирования , ставшая в программировании, безусловно, самой сильной формализацией как минимум 1970-х - 1980-х годов. Эта технология разработана, обоснована и внедрена в жизнь всего тремя выдающимися людьми - Виртом, Дейкстрой и Хоаром.

Комментаторы не раз отмечали, что идеи Вирта зачастую опережали развитие компьютерной индустрии на годы, иногда - на десятилетия. Разработанная в начале 1970-х система Pascal-P, предполагающая компиляцию программ на Паскале в универсальный «пи-код» и реализацию на любой платформе интерпретатора пи-кода (одна из известных её реализаций - UCSD-Pascal Университета Сан-Диего), которая позволяла с минимальными затратами переносить Паскаль-системы на новые аппаратные платформы, более чем на два десятилетия опередила идеи интерпретатора промежуточного кода, реализованные в системах, поддерживающих исполнение программ на языке.NET. Идея совмещения системы программирования со сборщиком мусора, освобождающим программиста от необходимости отслеживать время жизни объектов, динамически размещённых в памяти, была реализована в 1988 году в языке и операционной системе Оберон. Обе эти идеи были использованы (и широко разрекламированы как абсолютно новое слово в технологии и небывалое достижение!) американскими разработчиками тех же Java и.NET во второй половине 1990-х годов.

Научные принципы

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

Даже расширение существующих языков и систем всегда сопровождалось упрощением. По подсчётам, опубликованным в статье Сергея Свердлова «Арифметика синтаксиса» , «линия Вирта», как он её назвал - линейка языков, включающая Паскаль, Модулу-2, Оберон и Оберон2 - это единственный пример «генетической линии» языков-потомков Алгола-60, в которой сложность языка, определённая как количество лексем в его описании, стабильно снижалась и в настоящее время оказывается ниже, чем у общего «прародителя» - Алгола-60. Все языки «линии Вирта» проще Алгола-60, и каждый следующий язык в этой линии проще предыдущего. В то же время Ада более чем вдвое сложнее своего предшественника - Паскаля, C++ приблизительно в 1,7 раза сложнее Си, а в линейке Паскаль - Турбо Паскаль разных версий - Object Pascal сложность экспоненциально растёт от версии к версии.

Вирт часто критикует «американский подход» к разработке средств программирования, в котором маркетинговые соображения превалируют над требованиями математической стройности и гарантированной надёжности, и каждое новое модное поветрие сопровождается некритичным внесением в языки программирования новых синтаксических элементов. Это приводит к неправильной оценке роли некоторых идей и, в конечном итоге, к неправильной расстановке приоритетов в разработке ПО. В частности, говоря об ООП , Вирт неоднократно отмечал, что оно является достаточно тривиальным расширением того же структурного подхода, сдобренным новой терминологией, и вряд ли может претендовать на звание «революционной методологии программирования». Известно ехидное замечание Вирта по поводу привычки американцев к антропоцентризму в терминологии: «Они называют расширение типа „наследованием“, но, вообще-то, наследство обычно переходит к потомку только тогда, когда предок умирает».

Ещё один принцип, которым всегда руководствовался Вирт, можно сформулировать так: «Инструмент должен соответствовать задаче. Если инструмент не соответствует задаче, нужно придумать новый, который бы ей соответствовал, а не пытаться приспособить уже имеющийся». Он не приветствует разработку «языков, универсальных вообще». Каждая разработанная Виртом система имела чётко сформулированное назначение, область применения, и он всегда без колебаний исключал из разработки всё, что не было нужно для данного конкретного назначения.

Книги

Изданы на русском языке:

  • Систематическое программирование. Введение. М.: Мир, 1977;
  • Паскаль. Руководство для пользователя и описание языка. М.: Финансы и статистика, 1982 (в соавторстве с К. Иенсен);
  • Алгоритмы + структуры данных = программы. М.: Мир, 1985;
  • Программирование на языке Модула-2. М.: Мир, 1987;
  • Алгоритмы и структуры данных. М.:Мир, 1989. ISBN 5-03-001045-9 (версия книги на языке Модула-2)
  • Алгоритмы и структуры данных. СПб.: Невский диалект. 2001.

Книга Вирта «Алгоритмы + структуры данных = программы» издавалась на русском языке несколько раз в разных вариантах и считается первым из трёх классических учебников по структурному программированию .

В настоящее время вся классическая трилогия Вирта переведена его учениками на язык Оберон и доступна для скачивания из Сети в виде

Примечания

Ссылки

  • Перевод статьи Н.Вирта «Хорошие идеи: взгляд из Зазеркалья»

Некоторые считают, что современный мир почти не знает Никлауса Вирта и даже не догадывается о его огромном вкладе в мировую компьютерную науку. Кто-то полагает его «отцом Паскаля». Вирта вспоминают не только педагоги в ВУЗах, когда преподают студентам Turbo Pascal, но и коммерческие разработчики, пишущие на Delphi.

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

Детство, образование, увлечения

Никлаус Вирт родился 15 февраля 1934 года в небольшом городке Винтертуре, в предместье Цюриха. Его родители - Уолтер и Хедвиг Вирт. Отец Никлауса был школьным учителем. Он жил неподалеку от школы, где преподавал его отец. В их доме была хорошая библиотека, где Вирт находил немало интересных книг про железные дороги, турбины и телеграф.

Винтертур имеет многовековую историю и славится своими машиностроением: там выпускаются локомотивы и дизельные двигатели. С детских лет Вирт увлекался техникой, особенно авиамоделированием. Для запуска ракет нужно было получать топливо, и потому он занялся химией. Юный Вирт оборудовал в подвале школы «секретную» лабораторию. Ничто не могло его остановить: однажды сделанная им модель отклонилась от заданной траектории и угодила под ноги директору школы. Однако Вирт все равно продолжал упорно идти к намеченной цели.

Хобби оказалось настолько серьезным, что Вирт даже построил более десятка моделей по собственным чертежам. Между прочим, позднее он занялся настоящими полетами и пронес это увлечение через всю свою жизнь. Даже в весьма почтенном возрасте создатель популярного языка программирования не отказывал себе в удовольствии полетать на реактивном истребителе.

Когда ему исполнилось 18 лет, то он с еще двумя цюрихскими авиамоделистами выписали из Англии желанную радиоаппаратуру. Это предопределило его дальнейшую судьбу – в 1954 году Вирт поступил на факультет электроники в цюрихский ETH (Eidgenoessische Technische Hochschule – Швейцарский федеральный технологический институт). После четырех лет обучения Вирт получил степень бакалавра в области электротехники. А затем начинается славное десятилетнее заокеанское научное «турне» будущего «отца Паскаля» и «короля компиляторов» по маршруту Швейцария – Канада – США – Швейцария.

Свое обучение Вирт продолжил в Лавальском университете города Квебек (Канада), где в 1960 году получил степень магистра. Затем его пригласили в университет Калифорнии в Беркли (США) – будущую жемчужину Кремниевой долины. Там под руководством профессора Хаски в 1963 году Никлаус Вирт защитил диссертацию, посвященную развитию Алгола средствами Лиспа (Euler).

Путевка в жизнь

Эта работа в буквальном смысле дала ему путевку в жизнь: Вирта приметили мэтры программирования и пригласили в Комитет IFIP по стандартизации Алгола.

Министерство поставило задачу разработать единый язык программирования для систем управления автоматизированными комплексами, функционирующими в реальном времени. Имелись в виду, прежде всего, бортовые системы управления военными объектами. Язык назван в честь математика Ады Лавлейс .

Повторилась история с Алголом-68 - проект группы, в которой работали Вирт и Хоар, не был одобрен комитетом по языку. Чарльз Хоар и Никлаус Вирт выбыли из конкурса после первого этапа. В конкурсе победил проект, основанный на Паскале, но гораздо более сложный и объёмный.

Хоар выразил своё сожаление тем, что «погремушки и побрякушки возобладали над фундаментальными требованиями надёжности и безопасности» и предостерёг от «армады ракет, летящих не туда из-за не обнаруженной вовремя ошибки в компиляторе Ada».

Никлаус Вирт высказался более сдержанно, но тоже негативно. Он сказал: «Слишком много всего вываливается на программиста. Я не думаю, что, изучив треть Ada, можно нормально работать. Если вы не освоите всех деталей языка, то в дальнейшем можете споткнуться на них, и это приведёт к неприятным последствиям».

Жан Ишбиа, руководитель группы разработчиков Ada, выразив своё «уважение и восхищение» Виртом, не согласился с ним, сказав: «Вирт верит в простые решения сложных проблем. Я не верю в такие чудеса. Сложные проблемы требуют сложных решений».

Оберон

В 1988 году в содружестве с Юргом Гуткнехтом Вирт разработал язык программирования Оберон. Целью разработки было создание языка для реализации системного ПО проектируемой новой рабочей станции. Основой для Оберона стала Модула-2, которую существенно упростили, но при этом дополнили новыми возможностями.


Юрг Гуткнехт

Никлаус Вирт с коллегами разработали первую версию системы «Оберон», машину, компилятор языка Оберон и операционную систему System Oberon, которая обладала графическим интерфейсом пользователя, расширенными концепциями использования текста в интерфейсе и в целом являла собой материальное доказательство применимости концепций Вирта.

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

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

В 1992 году Вирт и Мёссенбёк выпустили сообщение о новом языке программирования - Оберон-2, - минимально расширенной версии Оберона. В этом же году была образована дочерняя компания ETH - Oberon microsystems, которая занялась разработкой систем Оберон. Вирт стал одним из членов её совета директоров. В 1999 году эта компания выпустила следующую версию Оберона - Компонентный Паскаль, более приспособленную для компонентного программирования.

Оберон послужил прямым предком для языка параллельного программирования (Active Oberon), различных модификаций языка Оберон под другие среды исполнения (Component Pascal, Zonnon), был реализован на нескольких платформах (JVM, CLR, JS), послужил прообразом языка Java. Сама система Оберон послужила прообразом для проекта Microsoft Singularity.

Как известно , появление виртуальной (абстрактной) машины Java преподносилось ее разработчиками из Sun Labs едва ли как не фундаментальное открытие в практике языков программирования.

Один из учеников Вирта, Михаэль Франц, заметил по этому поводу следующее: «Переносимость Java основана на наличии виртуальной машины, позволяющей легко имитировать большое число архитектур. Идея виртуальной машины была очень популярна уже более двадцати лет назад, хотя впоследствии о ней забыли. Тогда речь шла о Pascal-P – созданной в ETH реализации Паскаля, которая сыграла решающую роль в распространении этого языка. Интересно, что виртуальные машины для Паскаля и Java весьма схожи по архитектурe».

На пороге 2000-х

«А теперь обсудим характеристики «самого современного, самого объектно-ориентированного и очень простого» языка Java», писал Сергей Свердлов.
Java не только не может считаться простым, но является одним из самых сложных языков, более сложным, чем Си++, и вдвое более сложным, чем Оберон.

Но может быть, сопоставление с тем же Обероном некорректно? Ведь, наверное, Java все же более богатый язык, чем этот ваш Оберон? Ничего подобного! В Java есть всего две существенные вещи, которых нет в Обероне: встроенная многопоточность и обработка исключений. Целесообразность включения средств параллельного программирования непосредственно в язык подвергается сомнению многими специалистами. Это могло бы решаться на уровне библиотек. К тому же тот механизм, который реализован в Java, - решение отнюдь не самое удачное.



Сравнение объема синтаксиса языков
Общее число лексем в описании синтаксиса языка может служить обобщенной характеристикой размера этого описания.

Зато в маленьком Обероне есть и полноценные записи (объекты), и нормальные многомерные массивы, а не только указатели на них. Имеются в Обероне и привычные строки с нулем на конце, которые являются просто массивами символов, а никакими не объектами, а значит, не требуют специальных средств для манипуляций.
Вопреки пропаганде Java содержит мало чего-либо действительно нового. Та же концепция виртуальной машины - первое, что приходит в голову, если задуматься о многоплатформности. Лет двадцать пять назад это было удачным и свежим решением.


Такое мнение было высказано более 15 лет назад, когда подобные споры были актуальны. Вопрос о том, насколько теперь Java стал лучше или хуже в этом плане, оставим открытым.

Педагогическая и общественная деятельность

С 1963 по 1967 годах Вирт работал доцентом (assistant professor) в Стэнфордском университете и в 1967 вернулся в этом звании в университет Цюриха. А в 1968 году он получил в ETH звание профессора компьютерных наук и начал возводить на родине свой «швейцарский» Стэнфорд.

Двадцатилетие с 1969 по 1989 год было, пожалуй, самым плодотворным периодом в жизни Вирта. Он продолжал строить свою школу, уделяя немало времени организационной деятельности.

Понравилась статья? Поделиться с друзьями: