15 февраля исполняется 80 лет выдающемуся швейцарскому учёному и инженеру - Никлаусу Вирту (Niklaus Wirth), лауреату премии Тьюринга - самой престижной премии в компьютерных науках, аналога Нобелевки.

Знаменитый профессор Высшей политехнической школы ETH из Цюриха, где учились Альберт Эйнштейн (1896) и Джон фон Нейман (1923).

Его знают как автора классического Паскаля (1970), но многие даже понятия не имеют, что было десятилетиями позже. Что его разработки во многом инициировали создание Java и C#. Что нынешние космические спутники, новейшие беспилотники и безупречные по качеству швейцарские железные дороги работают благодаря его блестящей инженерной мысли.

Именно он всей своей жизнью показал путь борьбы с надуманной сложностью, которая не только окружает нас повсеместно, но и стала уже смертельно опасной болезнью нынешней цивилизации.

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

Истинное величие И.С.Баха человечество благодаря Феликсу Мендельсону оценило спустя почти сто лет после его смерти. Надеюсь, мудрого профессора Никлауса Вирта - компьютерного Баха - люди оценят по достоинству всё же немного раньше.

Юбилей Никлауса Вирта - очень хорошая проверка на компетентность не только российских СМИ, но и мировых.

Руслан Богатырёв . 15.02.2014, Москва

Профессор Никлаус Вирт (Niklaus K. Wirth), автор языка Паскаль, закончил Швейцарский федеральный технологический институт ETH (Eidgenoessische Technische Hochschule) в родном Цюрихе (1958). В Лавальском университете в Квебеке (Канада) он получил степень магистра (1960). В 1963 г. в Университете Калифорнии в Беркли (США) Вирт под руководством профессора Гарри Хаски реализовал расширение Алгола-60 (язык Euler) и защитил диссертацию. В 1963–1967 гг. Вирт преподавал в Стенфордском университете (США). В это же время он был приглашен в международную экспертную группу IFIP Working Group 2.1, занимавшуюся проектированием языка Алгол-68.

В 1967 г. Вирт вернулся на родину и стал доцентом Университета Цюриха. В 1968 г. он перешел в ETH Zurich, где занялся разработкой языка Паскаль. В 1970 г. был завершен первый компилятор Паскаля. В период 1978–1981 гг. Вирт возглавлял проект, в результате которого был разработан язык Модула-2, ориентированный на него 16-разрядный персональный компьютер Лилит (Lilith) и ОС Medos. Все ПО, включая системное, было полностью реализовано на Модуле-2. В 1984 г. Никлаус Вирт за большой вклад в развитие языков программирования и за создание персонального компьютера Лилит был удостоен премии Алана Тьюринга (The ACM A.M.Turing Award) – самой престижной и почётной в компьютерном мире, которая по своему значению стоит в одном ряду с Нобелевской премией.

В период 1986–1989 гг. Вирт вёл проект по созданию нового языка Oberon, расширяемой объектно-ориентированной ОС Oberon и 32-разрядной рабочей станции Ceres. Многие идеи того проекта были положены сотрудниками Sun Labs в основу языка и технологии Java.

С 1990 г. профессор Вирт руководил Институтом компьютерных систем при ETH Zurich. В 1999 г. он ушёл на заслуженный отдых и стал почётным профессором родного ETH Zurich.

Рекомендуемые материалы
1. (PDF, 2004)
2. Никлаус Вирт в Академгородке (2009)
3. Преподавание информатики: потерянная дорога (2002)
4. Kronos (история одного проекта) (2005-2014)
5. Проект Oberon2005 (Большое турне Вирта по России) (2005)
6. Легендарный профессор Вирт на полигоне НПКЦ «Новик-XXI век» (2005)
7. Хорошие идеи: взгляд из Зазеркалья (2006)
8. Никлаус Вирт: путь к истине (2014)
9. Держаться корней (к 80-летию Никлауса Вирта) (2014)

Видеоинтервью
1. Niklaus Wirth on Teaching Computer Science. IEEE Computer Society, 2012.

2. Google Tech Talk, 2009.

3. Interview with Niklaus Wirth, 2010. Часть 1/3

4. Interview with Niklaus Wirth, 2010. Часть 2/3

5. Interview with Niklaus Wirth, 2010. Часть 3/3

АЛГОРИТМЫ + СТРУКТУРЫ ДАННЫХ = ПРОГРАММЫ

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

Для научных работников, преподавателей, аспирантов и студентов, специализирующихся по математическому обеспечению ЭВМ.

Предисловие редактора перевода

Предисловие

1. Фундаментальные структуры данных

1.1. Введение

1.2. Концепция типа для данных

1.3. Простые типы данных

1.4. Стандартные простые типы

1.5. Ограниченные тисы

1.6. Массивы

1.7. Записи

1.8. Записи с вариантами

1.9. Множество

1.10. Представление массивов, записей и множеств

1.11. Последовательный файл

Упражнения

Литература

2. Сортировка

2.1. Введение

2.2. Сортировка массивов

2.3. Сортировка последовательных файлов

Упражнения

Литература

3. Рекурсивные алгоритмы

3.1. Введение

3.2. Когда не нужно использовать рекурсию

3.3. Два примера рекурсивных программ

3.4. Алгоритмы с возвратом

3.5. Задача о восьми ферзях

3.6 Задача об устойчивых браках

3.7. Задача оптимального выбора

Упражнения

Литература

4. Динамические информационные структуры

4.1. Рекурсивные типы данных

4.3. Линейные списки

4.4. Древовидные структуры

4.5. Сильно ветвящиеся деревья

4.6. Преобразования ключа (расстановка)

Упражнения

Литература

5. Структура языков и трансляторы

5.1. Определение и структура языка

5.2. Анализ предложений

5.3. Построение синтаксического графа

5.4. Построение программы грамматического разбора для заданного

синтаксиса

5.5. Построение таблично-управляемой программы грамматического

5.6. Преобразование БНФ в структуру данных, управляющую

грамматическим разбором

5.7. Язык программирования ПЛ/0

5.8. Программа грамматического разбора для ПЛ/0

5.9. Восстановление при синтаксических ошибках

5.10. Процессор ПЛ/0

5.11. Формирование команд

Упражнения

Литература

Приложение А

Множество символов ASCII

Приложение В

Синтаксические диаграммы Паскаля

Указатель программ

Указатель

Указатель программ

1.1. Вычисление степеней двойки 30

2.6. Сортировка Шелла 89

1.2. Сканер 42

2.7. Просеивание 93

1.3. Чтение вещественного числа 63

2.8. Пирамидальная сортировка 95

1.4. Печать вещественного числа 65

2.9. Разделение 97

Сортировка

простыми

2.10. Быстрая сортировка 99

включениями 79

2.11. Нерекурсивная версия быстрой

Сортировка

бинарными

сортировки 100

включениями 80

2.12. Поиск k-го элемента 105

2.3. Сортировка простым выбором 82

2.13. Сортировка простым слиянием

Сортировка методом

пузырька

2.! 4. Сортировка естественным

2.5. Шейкер-сортировка 86

слиянием 121

2.15. Сортировка сбалансированным

4.6. Построение оптимального дерева

слиянием 126

поиска 274

2.16. Многофазная сортировка 138

4.7. Поиск, включение и удаление в

2.17. Распределение начальных серий

Б-дереве 290

с помощью пирамиды 145

Построение

3.1. Кривые Гильберта 157

перекрестных

3.2. Кривые Серпинского 161

использованием

3.3. Ход коня 167

расстановки 308

3.4. Восемь ферзей (одно решение)

Грамматический

синтаксиса из примера 5 334

3.5. Восемь ферзей (все решения) 174

Грамматический

3.6. Устойчивые браки 180

языка (5.12) 343

3.7. Оптимальная выборка 184

5.3. Транслятор для языка (5.13) 345

4.1. Включение в список 204

5.4. Грамматический разбор для ПЛ/0

4.2. Топологическая сортировка 218

Построение

идеально

5.5. Грамматический разбор для ПЛ/0

сбалансированного дерева 227

с восстановлением при ошибках

4.4. Поиск с включениями 236

Построение

5.6. Транслятор для ПЛ/0 380

перекрестных ссылок 240

Адельсон-Вельский 248

Указатель

Выбором простым 81

Адрес 44, 48

Обменом простым 83

Абсолютный 374

Пирамидальной 90

Базовый 374

С разделением 96

Возврата 374

Слиянием естественным 115

Относительный 374

Слиянием многофазным 137

Алгол-60 17, 320

Простым 109

Алгоритм включения в Б-дерево 285

Сбалансированным N -

В ББ-дерево 296

путевым 122

В сбалансированное дерево 254

Удаления из Б-дерева 288

В список 200

Из сбалансированного дерева

Вычисления n -го факториального

Шейкер-сортировки 85

Грамматического разбора 324

Алгоритмы рекурсивные 9

Линейного просмотра 203

С возвратом 9, 168

Поиска медианы 103

Анализ алгоритмов сортировки 79,

По дереву с включением 233

80, 82, 85, 88, 94, 100, 113

Построения кустарников 300

Балансировка 288

Сортировки включениями

Банки данных 58

бинарными 79

Барабаны магнитные 57

Простыми 78

Барьер 79, 203, 233

С убывающим приращением

ББ-дерево см. Б-дерево бинарное

(сортировка Шелла) 87

Б-дерево 282

Б-дерево бинарное 295

- - симметричное 298 Буквы латинские 24 Буфер 54

Бэйер 282, 289, 295, 298

Варианты в записях 35 Вес дерева 264 Ветвь 223

Возврат 9, 168, 325

Вольтер 13

Восстановление при ошибках 373 Время патентное 58 Выборочное изменение 28 Выравнивание 46 Выражение 17

Индексное 27

Высота дерева 220

Гаусс 169 Гильберт156

Глубина дерева 220 Горизонтальное распределение 134

Готлиб 267

Грамматический разбор 10, 328

Нисходящий 323

- - целеориентированный 328 Граф распознавания 328

- синтаксический 328

- - детерминированный 332 Графы 19 Данные 11

Дейкстра 7, 12

Дерево 10, 19, 219

АВЛ-сбалансированное 248

Бинарное 223

Вырожденное 220

- идеально сбалансированное 226

- лексикографическое 238

Оптимальное 263

Поиска 231

- сильно ветвящееся 223

Сортировки 91

- упорядоченное 220

Фибоначчи 249 2-3 дерево 295

Диаграмма зависимости 361 Дизъюнкция логическая 23 Диски магнитные 57 Дискриминант типа 36 Длина пути 220

Взвешенная 261

Внешнего 220

- - внутреннего 220 Доступ последовательный 53

Прямой 58

- случайный 25 Заглядывание вперед 55, 68 Заголовок списка 314

Задача об устойчивых браках 174

- о восьми ферзях 169

О ходе коня 164

- оптимального выбора 182

- поиска медианы 103

- построения школьного расписания

Запись (record) 8, 31, 48

- с вариантами 36 Запись бесскобочная 377

Инфиксная 230

Польская 377

Постфиксная 230

Искусственный интеллект 163 Итерация 9, 99, 154 Карта (индексов) 123, 128 Квантиль 105

Ключ 76, 303

Ключей преобразование 303 Ключи переменной длины 318

Кнут 77, 86, 134, 144, 264

Кольца 19 Конкатенация 51, 52, 54 Константа 17 Конструктор 20

Записи 32

Массива 26

Контекстная зависимость 322 Конфликт 304 Конфликтов разрешение 304 Конъюнкция логическая 23 Координаты 15, 31, 36

Декартовы 15, 36 Корень дерева 220

Коэффициент заполнения 312

- использования памяти 46

Кривая Гильберта 156

Серпинского 158

Кустарники 299

Ландис 248, 249

Магнитная 108

Лист дерева 220

Лорин 77 Лукасевич377 Мак-Вити 179 Мак-Крейт 289

Мантисса 15

Массив 19, 25, 44

Матрица 29 Машина ПЛ/0 373 Медиана 101, 103 Метасимволы 320

Метод деления пополам 28

Пузырька 84

- рассеянных таблиц 307 Множеств объединение 40

Пересечение 40

Разность 40

Сложение 40

- умножение 40 Множество 15, 19, 38 Множество-степень 38

Множеству принадлежность 40

Моррис 306

Нотация 52 Область переполнения 306 Обход дерева 229

Оператор варианта 37

- присоединения 34, 286

Процедуры 190

Условный 190

Цикла 29

С параметром 190

С предисловием 190 Операции булевские 23

Над файлами 54

Отношений 40

- преобразования 20 I/O-операции 62 Операция 17, 18, 19 Описание 17

Опробирование квадратичное 307

Линейное 306

Открытая адресация 306 Очередь 198 Ошибки наведенные 373

Память для программы 373

Оперативная 295

Паскаль 8, 11, 16, 19, 62

Переменная буферная 55 Переменные 17, 23 Переупорядочение списка 209 Пирамида 91

ПЛ/0 331, 349 ПЛ/1 20

Поддерево 223 Поиск бинарный 28 -- в списке 202

Медианы 103

- по дереву с включением 233

- по списку самоорганизующийся

Поле 48 Поле признака 36

Порядок Б-дерева 282

Частичный 211

- числа 15 Последовательность 16, 19, 52 Потомок 220 Поэтапное уточнение 11, 67, 344 Правила подстановки 320

Порождающие 320

Построения графа 329

Фиктивные 132

Правило «не поднимай панику» 363

Серпинский 158

Предложения 319

Символ 23, 40, 319

Преобразование (типов) 24

Начальным 320

Ключей 303

Пустой 24

Приоритеты операций 40

Символы внешние 363

Присваивание 19, 21, 189

Возобновления 363

Проблема пустой строки 326

Нетерминальные 320

Программа рабочая 373

Терминальные 320

Таблично-управляемая 328

Управляющие 393

Просеивание 92

Сканер 40, 341

Просмотр на один символ вперед без

Слияние 109

возврата 323

Двухфазное 115

Проход 109

Естественное 115

По списку 201

Каскадное 149

Процедура 190

Многопутевое 122

Путь внешний 222

Однофазное 110

Внутренний 220

Простое 109

Разряд 15, 44

Сбалансированное 110, 122

Расписание школьное 41

Трехленточное 109

Распознавание предложений 322

Слова размер 44

Распределение горизонтальное 134

Словарь частотный 203

Памяти динамическое 51, 193

Слово памяти 44

Расстановка 303

Случайный доступ 25

Повторная 318

Смещение 48, 374

Реализация 47, 50

Сопрограммы 144

Регистр адреса команды 374

Сортировка 9, 74, 77

Команды 374

Быстрая 96

Вершины стека 374

Включениями 77

Редактирование 67

Бинарными 80

Рекурсия 9, 99, 150

Простыми 78

Косвенная 151

Внешняя 75

Прямая 151

Внутренняя 75

СББ-дерево 298

Выбором 77

Связка динамическая 374

Простым 81

Сегмент 57

Массивов 75

Логический 58

Методом пузырька 84

Физический 58

Обменом 83

Простым 83

Селектор 20, 37

Пирамидальная 91

Записи 32

Слиянием 109

Массива 26 Серии 115

Многофазная 128

Максимальные 115

Простым 109

Фиктивные 132

С помощью дерева 89

Топологическая 211

Упаковка 47, 49

Устойчивая 79

Уровень 220

Файлов 75

Файл 14, 19, 53

Шелла88

Индексированный 58

i -сортировка 88

Многоуровневый 57

Список 10, 198

Персональный 14

Двунаправленный 315

С прямым доступом 58

Циклический 314

Фиктивный элемент 79

Сравнение 19

Флойд 92

Методов сортировки массивов 105

Фибоначчи деревья 249

Числа 131

Стек 99, 374

Фиксация 378

Строка разрядов 49

Форма бэкус-наурова 320

Текущая 69

Инфиксная 377

Структуры данных динамические 10

Постфиксная 377

Усложненные 8, 51

Формула Эйлера 247

Фундаментальные 8

Функция 17

Древовидные 219

Аккермана188

Структурирования методы 19

Преобразования 24

Схемы программ 56

Расстановки 304

Таблица рассеянная 307

Упорядочения 75

Расстановки 305

Факториал 150

Таблично-управляемые программы

Характеристическая 49

Ханойские башни 186

Таккер 266

Хоор 7, 8, 12, 96, 103

Ху 266

Тип базовый 18

Центроид 267

Данных 17

Цепочка 115

Регулярный 26

Скалярный 19

Цифры арабские 15, 24

Составной 30

Двоичные!5

Стандартный 19

Римские 15

Индексов 26

Числа вещественные 15

Рекурсивный 314

Комплексные 31

Транслятор 10, 17, 40, 319

Натуральные 150

Трансляция 40

С плавающей запятой 15

Удаление из дерева 241

Факториальные 153

Из списка 200

Цели с 15

Узел дерева внутренний 220

Число гармоническое 83

Специальный 222

Кардинальное 18, 20, 39, 49, 50

Уилсон 179

Читаемый вход 59

Уильямс 91

Указатели 10

Шенкер-сортировка 85

Уолкер 263

Эвристика 267 Эйлер

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

Никлаус Вирт родился 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 г.).

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

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

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

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

Никлаус Вирт (нем. 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.

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

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

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

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

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

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

Николай Вирта. 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.