Ніклаус Вірт (нім. 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 (Німеччина).
Академічна респектабельність
Вірта довгий час заважала визнати той факт, що він є одним з перших справжніх
гиків в історії інформаційних технологій. Справедливість восторжествувала лише
через десять років після його виходу на пенсію. [1]
Премії та нагороди
- 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, Оберон і Оберон2 - це
єдиний приклад «генетичної лінії» мов-нащадків Алгол-60, в якій складність
мови, визначена як кількість лексем у його описі, стабільно знижувалася і в
даний час виявляється нижче, ніж у спільного «прабатька» - Алгол-60.
Всі мови «лінії Вірта» простіше
Алгол-60, і кожен наступний мова в цій лінії простіше попереднього. У той же
час Ада більш ніж удвічі складніше свого попередника - Паскаля, C + + приблизно
в 1,7 рази складніше Сі, а в лінійці Паскаль - Турбо Паскаль різних версій - Object
Pascal складність експоненціально зростає від версії до версії.
Вірт часто критикує
«американський підхід» до розробки засобів програмування, в якому маркетингові
міркування превалюють над вимогами математичної стрункості та гарантованої
надійності, і кожне нове модне пошесть супроводжується некритичним внесенням до
мови програмування нових синтаксичних елементів.
Це призводить до неправильної
оцінки ролі деяких ідей і, в кінцевому підсумку, до неправильної розстановці
пріоритетів у розробці ПЗ. Зокрема, говорячи про ООП, Вірт неодноразово
відзначав, що воно є досить тривіальним розширенням того ж структурного
підходу, присмаченим новою термінологією, і навряд чи може претендувати на
звання «революційної методології програмування».
Відомо єхидне зауваження Вірта з
приводу звички американців до антропоцентризму в термінології: «Вони називають
розширення типу" спадкуванням ", але, взагалі то, спадщина зазвичай
переходить до нащадка тільки тоді, коли предок вмирає».
Ще один принцип, яким завжди
керувався Вірт, можна сформулювати так: «Інструмент повинен відповідати завданню.
Якщо інструмент не відповідає завданню, потрібно придумати новий, який би їй
відповідав, а не намагатися пристосувати вже наявний ». Він не вітає розробку
«мов, універсальних взагалі».
Кожна розроблена Віртом система
мала чітко сформульоване призначення, область застосування, і він завжди без
коливань виключав з розробки все, що не було потрібно для даного конкретного
призначення.
Тут, однак, потрібно уточнити: в
«конкретне призначення», наприклад, Оберона входить забезпечення гранично
легкої і безпечної розширюваності системи, тому, не будучи мовою «універсальним
взагалі», тобто не включаючи всіх можливих засобів для всіх вообразімих
застосувань, Оберон все-таки є універсальним - «універсальним через
розширюваність».
Книги
Видані російською мовою:
Систематичне програмування.
Введення. М.: Мир, 1977;
Паскаль. Керівництво для
користувача і опис мови. М.: Фінанси і статистика, 1982 (у співавторстві з К.
Єнсен);
Алгоритми + структури даних =
програми. М.: Мир, 1985;
Програмування на мові Модула-2.
М.: Мир, 1987;
Алгоритми і структури даних. М.:
Мир, 1989. ISBN 5-03-001045-9 (версія книги мовою Модула-2)
Алгоритми і структури даних.
СПб.: Невський діалект. 2001.
Книга Вірта «Алгоритми +
структури даних = програми» видавалася російською мовою кілька разів у
різнихваріантах і вважається першим з трьох класичних підручників з
структурному програмуванню.
|