Ніклаус Вірт

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Ніклаус Вірт - це ім'я в Росії відомо багатьом. Три з лишком десятиліття тому професор Вірт створив у далекій Швейцарії мова програмування Паскаль. Здавалося б, одного цього було достатньо, щоб навічно вписати його ім'я в літопис комп'ютерних наук. Але в житті нерідко буває так, що визнання і популярність отримують далеко не найкращі й не самі досконалі творіння. Ось і у випадку з Паскалем ми бачимо лише вершину айсберга, а більша частина творчості Вірта до цих пір для багатьох залишається невідомою.
Ніклаус Вірт народився 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.
Світ промислового програмування повний надмірного ускладнення. У результаті такі критерії, як простота (наочність вихідних текстів), надійність, компактність програм та ефективність виконуваного коду, тепер замінюються на один головний критерій - швидкість реалізації ідей. А це неминуче веде до різкого зниження впливу самої мови і зростання ролі інструментального середовища, якої часом взагалі все одно, чим оперувати, і насамперед її можливостей візуалізації. Як точно зазначає Ніклаус Вірт, "постійна нестача часу - ось, мабуть, найперша причина, що приводить до появи громіздкого програмного забезпечення". Пріоритет часу розробки загалом зрозумілий: людські ресурси нині коштують значно вище, ніж апаратні. Але чи не втрачаємо ми по дорозі щось цінне, що повернути потім буде дуже важко?
Ми живемо в епоху торжества божевільної технологічної гонки і надуманою складності. Все своє життя Ніклаус Вірт присвятив боротьбі з цими явищами згубними, але його не чують або не хочуть чути. "Крайню ступінь розуму, - писав Блез Паскаль, - звинувачують у божевіллі точно так само, як повна відсутність розуму. Хороша тільки посередність".
Мови програмування, розроблені Віртом:
(1963) Euler
(1966) Algol-W
(1968) PL360
(1970) Паскаль
(1976) Modula
(1979) Modula-2
(1988) Оберон
Ніклаус Вірт в Академмістечку.
2 і 3 жовтня в якості гостя Інституту систем інформатики ім. А. Єршова Академмістечко відвідав знаменитий учений, автор алгоритмічних мов Паскаль, Модула і Оберон, професор Вищої технічної школи Цюріха Ніклаус Вірт. З Академмістечком у Вірта давні зв'язки. У 1965 році він познайомився з академіком Єршовим, який приїжджав до США на конгрес ІФІП (Міжнародна федерація з обробки інформації). Наукові контакти складалися як по лінії робочої групи IФIП по мові Алгол, так і по лінії використання мови Паскаль для реалізації системи <Бета>. Свідоцтва дружніх відносин двох учених зберігає архів академіка Єршова.
Велику роль в популяризації в нашій країні мов і систем Ніклауса Вірта зіграли роботи групи професора І. Поттосіна з ІСІ СО РАН. Ігор Васильович був науковим керівником Дмитра Кузнєцова, одного з розробників архітектури <Кроноса> (перший вітчизняний 32-розрядний комп'ютер), і саме він подав ідею повторити експеримент Ніклауса Вірта - реалізувати процесор з архітектурою, орієнтованої на мови високого рівня.
Вранці 2 жовтня Вірт взяв участь у відкритті Потоссінской олімпіади в НГУ, висловивши надію, що створені ним мови програмування - наступники Паскаля - займуть гідне місце в системі IT-освіти. О третій годині того ж дня Велика фізична аудиторія НГУ була вщерть заповнена бажаючими прослухати доповідь професора Вірта про еволюцію мов і програмування, де в дуже доступною логічній формі було подано аналіз інновацій в комп'ютерних науках за останні 40 років.
На початку свого виступу він вибачився, що так і не довчив російську мову до того рівня, щоб безперервно і виразно говорити на ньому цілих дві години. Пропозиція прочитати доповідь німецькою аудиторія зустріла збентеженим мовчанням. <Найсерйознішою помилкою, зробленої ще в 1957 році, була помилка: Y = X>, - зазначив професор. У залі пролунали легкі смішки. Мова йшла про те, що не всі можуть сприймати це рівність як команду присвоєння. Крім вищезгаданої помилки, Вірт відзначив і цілий ряд інших промахів, які ускладнюють мови настільки, що їх практичне використання серйозно не може. У зв'язку з цим Вірт пояснив, що навмисно прийшов до використання у своїх мовах низхідного синтаксису, а також висловив здивування про існуючу до цих пір команді віртуальної переадресації, що була необхідна лише в часи, коли пам'ять обчислювалася кіло-, а не мегабайтами.
Окремою мішенню для критики професора служили популярні мови С та С + +, до незручною і заплутаною структурі яких вчений повертався неодноразово. Так, наприклад, мова Java була їм названий Обероном, зіпсованим сінтакісом мови С. Як вірного шляху Вірт запропонував почати активно використовувати Оберон при навчанні студентів програмуванню. Той факт, що на С + + пишеться сьогодні величезна кількість програм, професор назвав не основним. Якщо підприємство працює на цій мові, то його інженери-програмісти мають безліч проблем, тоді як навчальна частина в цей же час продовжує випускати фахівців з С і С + + з причини їх затребуваності на підприємствах. У результаті явище утворює собою замкнуте коло, який просто необхідно розірвати, якщо ми говоримо про розвиток мов програмування в бік функціональності та простоти. Професор не скупився на критику на адресу мов програмування з переобумовлених синтаксичними правилами (макроси мови С і перевантажуються оператори).
Бажаючих отримати автограф знаменитого Вірта виявилося чимало - професор підписував всі запропоновані предмети близько півгодини. Найсерйозніші студенти гордо принесли з собою книги самого Ніклауса Вірта <Алгоритми та структури даних "," Системне програмування>; та <Модула-2>. Інші обмежилися розчерком генія в заліковці чи на студентському квитку. Поки учений роздавав автографи, на ганку НГУ зібралася пара сотень людей, щоб відобразити урочистий момент історії.
Програму перебування Ніклауса Вірта в Академмістечку завершив <круглий стіл "з викладачами програмування різних вузів та шкіл, де були розглянуті питання, що хвилюють сучасних педагогів. Недбало лаючи вічно затребуваний С + +, учасники прийшли до єдиної думки про те, що Оберон або Компонентний Паскаль є загальним найбільш зручним дільником цілого ряду сучасних мов програмування і цілком може грати роль есперанто в навчальному курсі студентів-програмістів.
За великий внесок в інформатику доктор Ніклаус Вірт отримав численні нагороди і почесті. Американська Рада Магістрів присвоїв йому звання член-кореспондента; Комп'ютерне Товариство Інституту Інженерів по електроніці і радіотехніці - звання комп'ютерного піонера; він отримав приз IBM європейської науки і техніки; став членом Швейцарської Академії Інженерії та іноземним партнером Американської Академії Інженерії, а також отримав орден "Pur le merte "і премію Тьюрінга. Вірт отримав почесні докторські ступені від багатьох університетів: університет Лавапь, Квебек (Канада), Каліфорнійський університет, Берклі, університет Йорк (Англія), університет Ліні Йоганна Кеплера (Австрія), університет Новосибірська (Росія), Відкритий університет Англії, університет Пре-торії (Південна Африка).
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
42.6кб. | скачати

© Усі права захищені
написати до нас