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


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


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


Никлаус Вирт прежде всего известен как создатель языка программирования PASCAL. Кроме этого, на его счету такие великолепные разработки, как MODULA-2, OBERON и многое-многое другое. Никлаус Вирт прежде всего известен как создатель языка программирования PASCAL. Кроме этого, на его счету такие великолепные разработки, как MODULA-2, OBERON и многое-многое другое.


Достижения. Программа Паскаль (1970 г.); Программа Паскаль (1970 г.); MODULA-2 (1978 г); MODULA-2 (1978 г); OBERON(). OBERON().


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


Модула-2 (Modula-2) язык программирования общего назначения. Язык Модула-2 структурный, модульный язык программирования, с синтаксисом, основанным на языке Паскаль, но заметно переработанным и улучшенным. Его основные характерные особенности приведены ниже: Модула-2 (Modula-2) язык программирования общего назначения. Язык Модула-2 структурный, модульный язык программирования, с синтаксисом, основанным на языке Паскаль, но заметно переработанным и улучшенным. Его основные характерные особенности приведены ниже: Программа представляет собой набор модулей самостоятельных единиц компиляции, которые могут компилироваться раздельно. Программа представляет собой набор модулей самостоятельных единиц компиляции, которые могут компилироваться раздельно. Импорт определений, описанных в прочих модулях, полностью контролируется. Импорт определений, описанных в прочих модулях, полностью контролируется. Все средства ввода-вывода исключены из языка. Вместо них используются библиотечные модули, на которые возложена задача реализации ввода-вывода на конкретных системах. Все средства ввода-вывода исключены из языка. Вместо них используются библиотечные модули, на которые возложена задача реализации ввода-вывода на конкретных системах. В язык введён минимум понятий и примитивов для многопоточного программирования, добавлена также стандартная библиотека, поддерживающая параллельные программы. В язык введён минимум понятий и примитивов для многопоточного программирования, добавлена также стандартная библиотека, поддерживающая параллельные программы. Включены средства прямого доступа к аппаратуре компьютера, в частности, реализовано прямое отображение структур данных на память, в том числе с прямым заданием адреса. Включены средства прямого доступа к аппаратуре компьютера, в частности, реализовано прямое отображение структур данных на память, в том числе с прямым заданием адреса.


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


Сейчас доктор Вирт совместно с тремя другими коллегами занимается вопросами автоматизированного проектирования аппаратных средств компьютерных систем. Сейчас доктор Вирт совместно с тремя другими коллегами занимается вопросами автоматизированного проектирования аппаратных средств компьютерных систем. Все работы доктора Вирта внесли большой вклад в компьютерную науку PASCAL сделал языки программирования более легкими для использования и изучения, а компьютеры более доступными для массового пользователя" Его проекты, от EULER до OBERON, стремились упростить и уничтожить барьеры между аппаратными средствами и программным обеспечением, сделать языки программирования более легкими в использовании. Все работы доктора Вирта внесли большой вклад в компьютерную науку PASCAL сделал языки программирования более легкими для использования и изучения, а компьютеры более доступными для массового пользователя" Его проекты, от EULER до OBERON, стремились упростить и уничтожить барьеры между аппаратными средствами и программным обеспечением, сделать языки программирования более легкими в использовании.



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

Никлаус Вирт родился 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, вручается раз в жизни и приравнивается в компьютерных науках к Нобелевской) сблизили не столько абстракции компьютерных наук, сколько четкая профессиональная позиция.

Эдсгер Дейкстра (Нидерланды, Эйндховенский технологический университет). Из речи при вручении премии Тьюринга (Бостон, США, 14 августа 1972 г.).

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

Энтони Хоар (Великобритания, Оксфордский университет). Из речи при вручении премии Тьюринга (Нэшвилл, США, 27 октября 1980 г.).

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

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

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

Самым известным достижением профессора Вирта считается язык Паскаль (1970). Безусловно, многие об этом языке слышали и знают его. Паскаль сыграл огромную роль в области формирования мировоззрения нескольких поколений программистов. Главное его достоинство в простоте и элегантности: он построен на четких принципах структурного программирования, сформулированных Эдсгером Дейкстрой, на красивой математической базе, заложенной Энтони Хоаром, и на блестящем архитектурном воплощении идей Algol-W, реализованных Никлаусом Виртом. С технологической точки зрения, Паскаль был интересен не только тем, что его компилятор, созданный в ETH, стал одной из первых реализаций языков высокого уровня на самом себе, примерно на два года опередив компилятор Си. В ходе работ над ним в 1973 г. была придумана абстрактная Pascal-машина (P-машина), исполняющая специальный P-код. Чтобы решить проблему переноса компилятора Паскаля на разные платформы, Вирт решил воспользоваться испытанными временем методами интерпретации. Из наиболее известных решений, предшествовавших P-коду, можно назвать реализацию языка Snobol-4 (Р. Грисуолд, 1967), где в качестве кода абстрактной машины использовался язык SIL (System Implementation Language).

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

Идеи P-кода нашли применение не только в платформах Java и NET, не только в других языках и машинах баз данных, но и в реализации аппаратных средств. Например, для непосредственного исполнения P-кода в Western Digital в 1979 г. был разработан специальный набор WD9000 PEngine. В Стэнфордском университете в 1980 г. был создан экспериментальный процессор POMP. Появившаяся в 1978 г. коммерческая реализация Паскаля – UCSD Pascal стала еще более известной, и многие забыли, где же впервые возникли P-код и P-машина. Вот что говорит об этом Вирт: "После того как стало известно о существовании Паскаля, несколько человек попросили нас помочь в его реализации на различных машинах, подчеркивая, что они намерены использовать его для обучения и что быстродействие для них не имеет первостепенного значения. После этого мы решили создать версию компилятора, которая генерировала бы код для машины нашей собственной конструкции. Позднее этот код стал известен как P-код... Pascal- P оказался исключительно удачным языком для распространения среди большого числа пользователей. И если бы у нас хватило мудрости предвидеть масштабы такого развития событий, то мы приложили бы больше усилий и тщательности при разработке и документировании P-кода".

Язык Паскаль многими воспринимался прежде всего как язык для преподавания компьютерных наук. Но сам Вирт не согласен с таким заведомым сужением его потенциала (1984): "Утверждалось, что Паскаль был разработан в качестве языка для обучения. Хотя это утверждение справедливо, но его использование при обучении не являлось единственной целью. На самом деле я не верю в успешность применения во время обучения таких инструментов и методик, которые нельзя использовать при решении каких-то практических задач. По сегодняшним меркам Паскаль обладал явными недостатками при программировании больших систем, но 15 лет назад он представлял собой разумный компромисс между тем, что было желательно, и тем, что было эффективно".

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

Язык Modula-2 был не только компактной и эффективной альтернативой языку Ada, он намного опережал те реализации идей модульного программирования, которые лишь спустя годы и в гораздо менее продуманном виде нашли свое отражение в Turbo Pascal и Delphi. Знаменитая операционная система OS/400 для IBM AS/400 была реализована на Modula-2. Центр системных исследований корпорации Digital (DEC Systems Research Center) взял этот язык в качестве основы реализации своих внутренних проектов, создав впоследствии язык Modula-3.

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

Подлинной жемчужиной творчества Вирта стал проект Oberon (1988). Созданная почти два десятилетия назад система 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), смарт-теги, веб-службы и др.

Сейчас это кажется невероятным, но чтобы перекомпилировать операционную систему Oberon и компилятор Oberon, требовалось в общей сложности всего 15 секунд! И это на оборудовании начала 1990-х годов.

Михаэль Франц в феврале 1994 г. защитил в ETH диссертацию, которая называлась "Динамическая кодогенерация – ключ к переносимому программному обеспечению". В ней были четко обозначены проблемы виртуальных машин и предложен крайне простой и довольно необычный подход к достижению переносимости. В диссертации Франца не только подробно разбирался принцип формирования и хранения промежуточного представления, но и делался вывод о том, что для подобного класса языков он остается практически неизменным. Другими словами, для языка Java этот принцип вполне подходил. Кстати, понятие applet тоже фигурировало в работах Франца. Через год после появления Java Михаэль Франц к лету 1996 г. подготовил среду под названием Juice, выполненную в виде подключаемого модуля для браузеров Netscape и Microsoft. Модуль состоял из компактного варианта ОС Oberon и полнофункционального компилятора Oberon, размер которых (в Oberon-формате) в общей сложности составляет всего лишь 100 Кбайт. В марте 1994 г. Михаэль Франц сделал в Sun Labs несколько докладов, и к весне того же года Билл Джой (вице-президент Sun и идеолог проекта создания Java) уже имел на руках всю необходимую информацию, включая и диссертацию Франца. Джой стал одним из первых обладателей лицензии на ETH Oberon. В июне 1994 г. Биллу Джою пришла в голову (а вот как это произошло, история стыдливо умалчивает) идея переориентировать язык Oak Джеймса Гослинга на иные задачи – создание компактной ОС. В пожарном порядке был сверстан проект, который получил название LiveOak. Все это необходимо учитывать при взгляде на нынешние проблемы Java.

Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота (наглядность исходных текстов), надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий – скорость реализации идей. А это неизбежно ведет к резкому снижению влияния самого языка и возрастанию роли инструментальной среды, которой подчас вообще все равно, чем оперировать, и прежде всего ее возможностей визуализации. Как точно отмечает Никлаус Вирт, "постоянный недостаток времени – вот, вероятно, первейшая причина, приводящая к появлению громоздкого программного обеспечения". Приоритет времени разработки в общем-то понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?

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

Языки программирования, разработанные Виртом:

(1970) Паскаль

(1988) Оберон

Никлаус Вирт в Академгородке.

2 и 3 октября в качестве гостя Института систем информатики им. А. Ершова Академгородок посетил знаменитый ученый, автор алгоритмических языков Паскаль, Модула и Оберон, профессор Высшей технической школы Цюриха Никлаус Вирт. С Академгородком у Вирта давние связи. В 1965 году он познакомился с академиком Ершовым, который приезжал в США на конгресс ИФИП (Международная федерация по обработке информации). Научные контакты складывались как по линии рабочей группы ИФИП по языку Алгол, так и по линии использования языка Паскаль для реализации системы <Бета>. Свидетельства дружественных отношений двух ученых хранит архив академика Ершова.

Большую роль в популяризации в нашей стране языков и систем Никлауса Вирта сыграли работы группы профессора И. Поттосина из ИСИ СО РАН. Игорь Васильевич являлся научным руководителем Дмитрия Кузнецова, одного из разработчиков архитектуры <Кроноса> (первый отечественный 32-разрядный компьютер), и именно он подал идею повторить эксперимент Никлауса Вирта - реализовать процессор с архитектурой, ориентированной на языки высокого уровня.

Утром 2 октября Вирт принял участие в открытии Потоссинской олимпиады в НГУ, выразив надежду, что созданные им языки программирования - преемники Паскаля - займут достойное место в системе IT-образования. В три часа того же дня Большая физическая аудитория НГУ была до отказа заполнена желающими прослушать доклад профессора Вирта об эволюции языков и программирования, где в очень доступной логической форме был дан анализ инноваций в компьютерных науках за последние 40 лет.

В начале своего выступления он извинился, что так и не доучил русский язык до того уровня, чтобы беспрерывно и внятно говорить на нем целых два часа. Предложение прочесть доклад на немецком аудитория встретила смущенным молчанием. <Самой серьезной ошибкой, сделанной еще в 1957 году, была ошибка: Y = X>, - отметил профессор. В зале раздались легкие смешки. Речь шла о том, что не все могут воспринимать это равенство как команду присваивания. Кроме вышеупомянутой ошибки, Вирт отметил и целый ряд других промахов, усложняющих языки настолько, что их практическое использование серьезно затрудняется. В этой связи Вирт объяснил, что намеренно пришел к использованию в своих языках нисходящего синтаксиса, а также выразил удивление о существующей до сих пор команде виртуальной переадресации, которая была необходима лишь во времена, когда память исчислялась кило-, а не мегабайтами.

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

Желающих получить автограф знаменитого Вирта оказалось немало - профессор подписывал все предложенные предметы около получаса. Самые серьезные студенты гордо принесли с собой книги самого Никлауса Вирта <Алгоритмы и структуры данных>, <Системное программирование> и <Модула-2>. Другие ограничились росчерком гения в зачетке или на студенческом билете. Пока ученый раздавал автографы, на крыльце НГУ собралась пара сотен человек, чтобы запечатлеть торжественный момент истории.

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

За большой вклад в информатику доктор Никлаус Вирт получил многочисленные награды и почести. Американский Совет Магистров присвоил ему звание член-корреспондента; Компьютерное Общество Института Инженеров по электронике и радиотехнике - звание компьютерного пионера; он получил приз IBM европейской науки и техники; стал членом Швейцарской Академии Инженерии и иностранным партнером Американской Академии Инженерии, а также получил орден "Pur le merte" и премию Тьюринга. Вирт получил почетные докторские степени от многих университетов: университет Лавапь, Квебек (Канада), университет Калифорнии, Беркли, университет Йорк (Англия), университет Лине Иоганна Кеплера (Австрия), университет Новосибирска (Россия), Открытый университет Англии, университет Пре-тории (Южная Африка).


Богатырев - руководитель «Студии программных технологий 1024» при издательстве «Открытые системы». E-mail: [email protected]. Из биографии Н. Вирта Профессор Никлаус Вирт (Niklaus K. Wirth), автор языка Паскаль, закончил Швейцарский федеральный технологический институт ETH (Eidgenoessische Technische Hochschule) в родном Цюрихе (1958). В Лавальском университете в Квебеке (Канада) он получил...


Описание программного продукта. 3.1 Работа с электронным пособием Данный электронный ресурс предназначен для студентов ВУЗов, с целью подготовки к лекционным, практическим и лабораторным занятиям. Электронное пособие выполнено в среде AutoPlay Media Studio 7.0. Для начала работы с программным продуктом необходимо запустить.exe файл. Титульный лист данного пособия представлен на рис. ...

Степень доктора наук в области электротехники и компьютерных наук Вирт получал в Университете Калифорнии в Беркли (США); в стенах именно этого учебного заведения он в 1963 году защищал свою диссертацию, написанную под руководством знаменитого профессора Гарри Хаски (Harry Huskey), пионера графического дизайна.


Никлаус Эмиль Вирт (Niklaus Emil Wirth) родился в 1934 году в швейцарском городе Винтертур (Winterthur, Switzerland). Известно, что отец его работал учителем в школе, а сам Никлаус с детства увлекался авиамоделированием. Именно эта его страсть впоследствии привела его к увлечению электроникой и системами программного управления.

В 1954 году Вирт стал студентом факультета электроники Швейцарского федерального технологического института в Цюрихе (Swiss Federal Institute of Technology Zürich), именно здесь он получил свою степень бакалавра по электротехнике. Далее следовала учеба в Лавальском Университете в канадском Квебеке (Université Laval, Canada), в котором Вирт получил степень магистра в 1960-м.

Степень доктора наук в области электротехники и компьютерных наук Вирт получал в Университете Калифорнии в Беркли (США); в стенах именно этого учебного заведения он в 1963 году защищал свою диссертацию, написанную под руководством знаменитого профессора Гарри Хаски (Harry Huskey), пионера графического диза

йна. Диссертация его оказалась замеченной в заинтересованном мире, и Вирта пригласили в комитет по стандартизации Алгола Международной федерации информатики (International Federation for Information Processing, IFIP); комитет как раз работал над разработкой нового стандарта языка Алгол, впоследствии ставшего известным как Алгол-68. Версией Вирта был усовершенствованный язык, так называемый Algol-W, однако его разработки не были приняты.

С 1963 по 1967 год Никлаус параллельно работал в качестве помощника профессора в Стэнфордском Университете (Stanford University), а затем последовала работа в Университете Цюриха (University of Zurich). Известно, что помимо собственно научных изысканий, Вирт приложил немало усилий для усовершенствования системы обучения в университете.

В 1970-м Вирт выступил разработчиком языка программирования Паскаль, в 1975-м - разрабатывал язык Модула, а в конце 1970-х Никлаус Вирт принял участие в конкурсе министерства обороны США, став одним из разработчиков нового языка для программирован

ия встроенных систем, ставшего известным как язык Ада. Его проект, впрочем, принят не был, как и в случае с языком Алгол в 1960-х.

В 1980-х Вирт возглавлял Высшую техническую школу Цюриха (Eidgenössische Technische Hochschule, ETH), а с 1990-го работал в созданном при этом же учебном заведении Институте компьютерных систем.

В 1990-х Вирт участвовал в разработке языка Оберон-2, несколько расширенной версии Оберона.

Весной 1999-го Никлаус Вирт вышел на пенсию, будучи 65-летним. К этому моменту он был одним из уважаемых во всем мире разработчиков, на его счету – работа над как минимум восемью языками программирования, был он также разработчиком технологии структурного программирования.

Известно, что Вирт – обладатель нескольких очень престижных премий ("Turing Award", "SIGPLAN Programming Languages Achievement Award"), а также почетных степеней нескольких учебных заведений.

"В нашей профессии, точность и совершенство являются не необязательной роскошью, а просто необходимостью", - сказал как-то ученый

Выдающийся ученый (Niklaus Emil Wirth ) родился в 1934 году 15 февраля в предместье Цюриха, в Винтертуре. Отец будущего ученого работал школьным учителем.

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

В 1954 году Вирт поступил в Швейцарский федеральный технологический институт в Цюрихе, где учился 4 года на факультете электроники и получил степень бакалавра. Детские увлечения определили выбор профессии. Степень магистра он получил уже в Лавальском университете в 1960г, после чего он был приглашен в университет Калифорнии в Беркли. Именно здесь он защитил диссертацию – расширение Алгола с помощью языка Лисп .

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

Одновременно с работой в комитете Вирт вместе Джимом Уэльсом в Стэндфордском университете (США) занимался разработкой языка PL360 . Предназначение этого языка – использование на платформе IBM/360.

Имея звание доцента, Вирт возвращается в Цюрих в 1967 году, где через год становится профессором. В институте в Цюрихе он проработал 31 год. За годы работы он много занимался совершенствованием системы обучения в университете.

Изобретения Вирта особенно ценны для ИТ индустрии. О них невозможно сказать в двух словах.

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

Разработка языка Модула , в котором ученому удалось изменить синтаксис языка, тоже принадлежит Вирту. Однако не Модула, а доработанный вариант Модула-2 (Modula-2 ) стал широко известен. Разработка длилась с 1977 года и закончилась в 1980 году. Модула-2 предназначалась для реализации программного обеспечения системы Lilith, она не превзошла Паскаль, но имела широкую популярность. Система Lilith так и не была реализована, о чем Вирт всегда говорил с сожалением, так как считал это упущенным шансом швейцарской индустрии. Позднее был создан язык Modula-3 . Но Вирт в его создании участия не принимал. Созданная Виртом Модула-2, стала лучшим для своего времени языком, который использовался для создания отличающихся особой надежностью программных комплексов. Преимущественно Модула-2 используется для низкоуровневой работы, например, написание драйверов . К тому же Модула-2 вместе с языком Ада используются в Канаде и Великобритании в системах управления атомными электростанциями.

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

Создание языка Паскаль является главным достижением Вирта. Созданный компилятор, реализовывавший языки высокого уровня, опередил компилятор Си. Была создана Паскаль-машина , исполняющая особый Р-код. Для переноса компилятора Паскаля на другие платформы Вирт применял методы интерпретации. Многие считали Паскаль языком преподавания компьютерных наук, с чем Вирт был не согласен. В создании языка принимали участие трое друзей – единомышленников Вирта. Основное достоинство языка - четкие принципы структурного программирования. Их сформулировал голландец Эдсгер Декстрой. Математическую базу заложил англичанин Энтони Хоар. А воплотил идеи Algol W сам швейцарец Никлаус Вирт. Вместе трое друзей считались патриархами структурного программирования. Они сблизились не только благодаря компьютерным наукам, но и следование четким профессиональным убеждениям и позициям. Вместе они стали лауреатами премии Тьюринга.

С 1982 по 1990 годы, с перерывом в 4 года (1984–1988гг.) Вирт возглавлял в институте Факультет компьютерных наук . А с 1990 года возглавил Институт компьютерных систем .

Результатом плодотворного сотрудничества с Юргом Гуткнехтом явился Оберон (Oberon ). В основе языка программирования Оберон была Модула-2, но гораздо более упрощенная и дополненная новыми возможностями. В Обероне реализовывалось компонентно-ориентированное программирование . Именно эта концепция легла в основу идеи сетевых услуг. Сейчас Оберон дает возможность создавать программные комплексы разной сложности. Ученики Вирта успешно осуществляют перенос Оберона на такие известные платформы, как, например, Apple Mac Os, Microsoft Windows.

В 1992 году была образована компания Oberon microsystems , занимающаяся разработкой Оберона. Вирт входил в состав директоров. Результатом работы компании стала новая версия Оберона – Component Pascal , разработанная для компонентного программирования. Компонентный Паскаль стал преемником всемирно известного Паскаля. В создании Оберона Вирт реализовал идею выделить обозримое, рациональное, универсальное ядро программирования, которое могло бы стать основой для разработки любого ПО. Ядро технологий действительно закреплено в языках Java и C++ . Значение Оберона приравнивают к значимости «Начал» Евклида для математики.

Вирт также является разработчиком языка Lola – нового оригинального языка для программирования. Он использовался для формального описания цифровых электрических схем.

В 1999 году, в апреле, доработав до 65 лет, Вирт вышел на пенсию. Вирта считают легендой в области программирования. Результатом учебы и плодотворной работы явились многочисленные изобретения Вирта. Он стал лауреатом многих премий. В 1984 году Вирт получил премию Тьюринга , которая сравнима по значимости с Нобелевской премии и является высшей наградой в области информатики.

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

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

Никлаус Вирт родился 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, вручается раз в жизни и приравнивается в компьютерных науках к Нобелевской) сблизили не столько абстракции компьютерных наук, сколько четкая профессиональная позиция.

Эдсгер Дейкстра (Нидерланды, Эйндховенский технологический университет). Из речи при вручении премии Тьюринга (Бостон, США, 14 августа 1972 г.).

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

Энтони Хоар (Великобритания, Оксфордский университет). Из речи при вручении премии Тьюринга (Нэшвилл, США, 27 октября 1980 г.).

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

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

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

Самым известным достижением профессора Вирта считается язык Паскаль (1970). Безусловно, многие об этом языке слышали и знают его. Паскаль сыграл огромную роль в области формирования мировоззрения нескольких поколений программистов. Главное его достоинство в простоте и элегантности: он построен на четких принципах структурного программирования, сформулированных Эдсгером Дейкстрой, на красивой математической базе, заложенной Энтони Хоаром, и на блестящем архитектурном воплощении идей Algol-W, реализованных Никлаусом Виртом. С технологической точки зрения, Паскаль был интересен не только тем, что его компилятор, созданный в ETH, стал одной из первых реализаций языков высокого уровня на самом себе, примерно на два года опередив компилятор Си. В ходе работ над ним в 1973 г. была придумана абстрактная Pascal-машина (P-машина), исполняющая специальный P-код. Чтобы решить проблему переноса компилятора Паскаля на разные платформы, Вирт решил воспользоваться испытанными временем методами интерпретации. Из наиболее известных решений, предшествовавших P-коду, можно назвать реализацию языка Snobol-4 (Р. Грисуолд, 1967), где в качестве кода абстрактной машины использовался язык SIL (System Implementation Language).

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

Идеи P-кода нашли применение не только в платформах Java и NET, не только в других языках и машинах баз данных, но и в реализации аппаратных средств. Например, для непосредственного исполнения P-кода в Western Digital в 1979 г. был разработан специальный набор WD9000 PEngine. В Стэнфордском университете в 1980 г. был создан экспериментальный процессор POMP. Появившаяся в 1978 г. коммерческая реализация Паскаля – UCSD Pascal стала еще более известной, и многие забыли, где же впервые возникли P-код и P-машина. Вот что говорит об этом Вирт: "После того как стало известно о существовании Паскаля, несколько человек попросили нас помочь в его реализации на различных машинах, подчеркивая, что они намерены использовать его для обучения и что быстродействие для них не имеет первостепенного значения. После этого мы решили создать версию компилятора, которая генерировала бы код для машины нашей собственной конструкции. Позднее этот код стал известен как P-код... Pascal- P оказался исключительно удачным языком для распространения среди большого числа пользователей. И если бы у нас хватило мудрости предвидеть масштабы такого развития событий, то мы приложили бы больше усилий и тщательности при разработке и документировании P-кода".

Язык Паскаль многими воспринимался прежде всего как язык для преподавания компьютерных наук. Но сам Вирт не согласен с таким заведомым сужением его потенциала (1984): "Утверждалось, что Паскаль был разработан в качестве языка для обучения. Хотя это утверждение справедливо, но его использование при обучении не являлось единственной целью. На самом деле я не верю в успешность применения во время обучения таких инструментов и методик, которые нельзя использовать при решении каких-то практических задач. По сегодняшним меркам Паскаль обладал явными недостатками при программировании больших систем, но 15 лет назад он представлял собой разумный компромисс между тем, что было желательно, и тем, что было эффективно".

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

Язык Modula-2 был не только компактной и эффективной альтернативой языку Ada, он намного опережал те реализации идей модульного программирования, которые лишь спустя годы и в гораздо менее продуманном виде нашли свое отражение в Turbo Pascal и Delphi. Знаменитая операционная система OS/400 для IBM AS/400 была реализована на Modula-2. Центр системных исследований корпорации Digital (DEC Systems Research Center) взял этот язык в качестве основы реализации своих внутренних проектов, создав впоследствии язык Modula-3.

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

Подлинной жемчужиной творчества Вирта стал проект Oberon (1988). Созданная почти два десятилетия назад система 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), смарт-теги, веб-службы и др.

Сейчас это кажется невероятным, но чтобы перекомпилировать операционную систему Oberon и компилятор Oberon, требовалось в общей сложности всего 15 секунд! И это на оборудовании начала 1990-х годов!

Михаэль Франц в феврале 1994 г. защитил в ETH диссертацию, которая называлась "Динамическая кодогенерация – ключ к переносимому программному обеспечению". В ней были четко обозначены проблемы виртуальных машин и предложен крайне простой и довольно необычный подход к достижению переносимости. В диссертации Франца не только подробно разбирался принцип формирования и хранения промежуточного представления, но и делался вывод о том, что для подобного класса языков он остается практически неизменным. Другими словами, для языка Java этот принцип вполне подходил. Кстати, понятие applet тоже фигурировало в работах Франца. Через год после появления Java Михаэль Франц к лету 1996 г. подготовил среду под названием Juice, выполненную в виде подключаемого модуля для браузеров Netscape и Microsoft. Модуль состоял из компактного варианта ОС Oberon и полнофункционального компилятора Oberon, размер которых (в Oberon-формате) в общей сложности составляет всего лишь 100 Кбайт. В марте 1994 г. Михаэль Франц сделал в Sun Labs несколько докладов, и к весне того же года Билл Джой (вице-президент Sun и идеолог проекта создания Java) уже имел на руках всю необходимую информацию, включая и диссертацию Франца. Джой стал одним из первых обладателей лицензии на ETH Oberon. В июне 1994 г. Биллу Джою пришла в голову (а вот как это произошло, история стыдливо умалчивает) идея переориентировать язык Oak Джеймса Гослинга на иные задачи – создание компактной ОС. В пожарном порядке был сверстан проект, который получил название LiveOak. Все это необходимо учитывать при взгляде на нынешние проблемы Java.

Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота (наглядность исходных текстов), надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий – скорость реализации идей. А это неизбежно ведет к резкому снижению влияния самого языка и возрастанию роли инструментальной среды, которой подчас вообще все равно, чем оперировать, и прежде всего ее возможностей визуализации. Как точно отмечает Никлаус Вирт, "постоянный недостаток времени – вот, вероятно, первейшая причина, приводящая к появлению громоздкого программного обеспечения". Приоритет времени разработки в общем-то понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?

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

P.S. Материал взят из статьи Руслана Богатырева "Никлаус Вирт – патриарх надежного программирования".