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

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

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

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

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

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

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

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

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

Никлаус Вирт родился 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. Материал взят из статьи Руслана Богатырева "Никлаус Вирт – патриарх надежного программирования".

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

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

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

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

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

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

Москва: ДМК Пресс, 2010. - 192с.
Книга известного специалиста в области информатики Никлауса Вирта написана по материалам его лекций по вводному курсу проектирования компиляторов. На примере простого языка Оберон-0 рассмотрены все элементы транслятора, включая оптимизацию и генерацию кода. Приведен полный текст компилятора на языке программирования Оберон. Для программистов, преподавателей и студентов, изучающих системное программирование и методы трансляции.
Содержание
Введение
Язык и синтаксис
Упражнения
Регулярные языки
Упражнение
Анализ контекстно-свободных языков
Метод рекурсивного спуска;
Таблично-управляемый нисходящий синтаксический анализ
Восходящий синтаксический анализ
Упражнения
Атрибутные грамматики и семантики
Правила типов
Правила вычислений
Правила трансляции
Упражнение
Язык программирования Оберон-0
Упражнение
Синтаксический анализатор для Оберона-0
Лексический анализатор
Синтаксический анализатор
Устранение синтаксических ошибок
Упражнения
Учет контекста, заданного объявлениями
Объявления
Записи о типах данных
Представление данных во время выполнения
Упражнения
RISC-архитектура как цель
Ресурсы и регистры
Выражения и присваивания
Прямая генерация кода по принципу стека
Отсроченная генерация кода
Индексированные переменные и поля записей
Упражнения
Условные и циклические операторы и логические выражения
Сравнения и переходы
Условные и циклические операторы
Логические операции
Присваивание логическим переменным
Упражнения
Процедуры и концепция локализации
Организация памяти во время выполнения
Адресация переменных
Параметры
Объявления и вызовы процедур
Стандартные процедуры
Процедуры-функции
Упражнения
Элементарные типы данных
Типы REAL и LONGREAL
Совместимость между числовыми типами данных
Тип данных SET
Упражнения
Открытые массивы, указательный и процедурный типы
Открытые массивы
Динамические структуры данных и указатели
Процедурные типы
Упражнения
Модули и раздельная компиляция
Принцип скрытия информации
Раздельная компиляция
Реализация символьных файлов
Адресация внешних объектов
Проверка конфигурационной совместимости
Упражнения
Оптимизация и структура пре/постпроцессора
Общие соображения
Простые оптимизации
Исключение повторных вычислений
Распределение регистров
Структура пре/постпроцессорного компилятора
Упражнения
Приложение А.
Синтаксис
Оберон-0
Оберон
Символьные файлы
Приложение В.
Набор символов ASCII
Приложение С.
Компилятор Оберон-0
Лексический анализатор
Синтаксический анализатор
Генератор кода
Литература

Скачать файл

  • 2.16 МБ
  • добавлен 19.09.2009

В книге известного английского автора рассматриваются проблемы проектирования и построения компиляторов для языков программирования высокого уровня, в частности Алгола 60, ПЛ/1, Алгола 68, Паскаля и Ады. Основное внимание уделяется целям проектирования надежных компиляторов и средствам их достижения. Практические вопросы разъясн...

  • 1.57 МБ
  • добавлен 17.12.2008

Лекции по построению компилятора на Pascal. 255 с.
Эта серия статей является руководством по теории и практике разработки синтаксических анализаторов и компиляторов языков программирования. Прежде чем вы закончите чтение этой книги, мы раскроем все аспекты конструирования компиляторов, создадим новый язык программирования, и...

  • 1.25 МБ
  • добавлен 16.05.2009

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

  • 5.49 МБ
  • добавлен 10.10.2007

М.: Издательский дом "Вильямс", 2003. - 768 с.: ил.

Каждый, кто интересовался разработкой компиляторов, несомненно, слышал о знаменитой "Книге Дракона" - "Dragon Book", классическом труде Ахо и Ульмана "Принципы разработки компиляторов". Бурное развитие технологий компиляции привело к рождению нового дракона - книги "К...

  • 1.22 МБ
  • добавлен 16.05.2009

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

  • 59.93 МБ
  • добавлен 07.12.2010

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

Loading...Loading...