Компактное программирование

Никлаус Вирт

Никлаус Вирт (Niklaus Wirth), род. 15.02.1934 (Швейцария)

Знаменитый профессор Высшей Политехнической школы ETH из Цюриха, где учились Альберт Эйнштейн (1896) и Джон фон Нейман (1923). Научную карьеру начал в университете Калифорнии в Беркли (1960-1963) под руководством Гарри Хаски, сподвижника Алана Тьюринга по созданию компьютера ACE. Продолжил ее в Стэнфордском университете (1963-1967), после чего создал свою школу программирования в стенах ETH. Долгие годы возглавлял Институт компьютерных систем при ETH. Его приезд в Россию приурочен к празднованию 250-летия МГУ им. Ломоносова и 150-летия швейцарского ETH.

Принят в ряды членов национальных академий: Swiss Academy of Engineering (Швейцария), U.S. Academy of Engineering (США), Berlin-Brandenburg Academy (Германия).


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

(1963) Euler
(1966) Algol-W
(1968) PL360
(1970) Паскаль
(1976) Modula
(1979) Modula-2
(1988) Оберон

С сайта www.inr.ac.ru

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

Паскаль (1970) - первый в серии его пророческих проектов (см. полный список). К концу 60-х гг. Н.Вирт уже получил признание как один из ведущих специалистов по языкам программирования (язык высокого уровня Euler [Эйлер], достаточно широко применявшийся язык низкого уровня PL/360, эффективный компилятор для подмножества Алгола-60 - Algol-W). В этом качестве он был включен в состав Международного комитета IFIP по разработке универсального языка программирования на основе Алгола-60. Однако из-за категорического несогласия с проектной философией, возобладавшей в комитете, Н.Вирт из него вышел в 1968 г. и в 1970 г. представил свой Паскаль. Блестящий успех Паскаля на фоне провала Алгола-68, произведенного комитетом, доказали проницательность Н.Вирта. О принципах, заложенный в основу Паскаля, см. доклад Н.Вирта на Международной конференции НАТО по разработке программного обеспечения, Рим, 1969.

Н.Вирт был одним из первых, кто ввел в практику принцип пошагового уточнения (step-wise refinement) как ключевого для систематического создания программ - см. его классическую статью 1971 г. (В более широком плане здесь речь идет о методологии структурного программирования, идеологом которой был другой легендарный пионер программирования - Эдсгер Дейкстра [E.W.Dijkstra, 1930-2002].)

В рамках его проекта Паскаль-P (1972-74) был эффективно применен промежуточный псевдо-машинный язык P-code для облегчения переносимости компиляторов Паскаля; сейчас эта идея легко узнается в байт-коде для языка Java корпорации Sun и в еще большей степени - в аналогичном промежуточном языке проекта .NET корпорации Microsoft.

Его Модула-2 (1979) наиболее четко воплотила концепции структурного и модульного программирования, зарекомендовав себя как лучший, в свое время язык, создания особо надежных программных комплексов (сейчас эта честь перешла Оберону и его производным, см. ниже; впрочем, Модула-2, благодаря лучшей стандартизации, имеет известные преимущества для низкоуровневой работы типа написания драйверов; заметим, что программное обеспечение для бортовых компьютеров российских спутников связи создается с помощью уникальной системы кросс-программирования на основе Модулы-2; другой пример: Модула-2 вместе с Адой являются двумя языками, разрешенными в создании систем управления атомными электростанциями в Великобритании и Канаде).

Построенный Н.Виртом в 1983-85 гг. однопроходный компилятор для Модулы-2, по быстроте и компактности на порядок превзошедший альтернативные разработки, продемонстрировал:

(1) мощь систематических математизированных методов в создании сложного программного обеспечения;

(2) громадные преимущества языков с четким компактным формальным определением синтаксиса при создании компиляторов и сопутствующего инструментального обеспечения.

Важнейший проект Оберон (1988, 1992) синтезировал более четверти века исследований Н.Вирта по методологии и языкам программирования. В Обероне ему с учениками удалось добиться точного синтеза "старых" достижений структурного и модульного программирования (представленных еще в Модуле-2) с "новыми" объектными методами (языки Simula, Smalltalk ...). При этом была решена задача выделить (а) рациональное, (б) обозримое, (в) универсальное ядро конструктов программирования, в том числе объектных, которое могло бы составить основу для разработки любого программного обеспечения. Такое компактное ядро представлено в исключительно тщательно спроектированном, мощном, но простом и прозрачном языке программирования Оберон. Оберон воплотил приверженность Н.Вирта принципу систематической простоты. ("Правая рука" Н.Вирта Юрг Гуткнехт предпочитает говорить о чистоте дизайна, см. его доклад The Power of Purity.)

В Обероне в полном блеске продемонстрирована концепция компонентно-ориентированного программирования (КОП). КОП интенсивно обсуждается в мировой индустрии программирования с 90-х гг. и представляет собой очередной шаг в развитии технологий программирования после широкого принятия на вооружение объектных методов в 80-х гг. В контексте новых возможностей Интернета концепция КОП трансформировалась в идею сетевых услуг (Web services), реализуемую ведущими производителями программного обеспечения.

Воздействие идей школы Н.Вирта на развитие технологий программирования прослеживается в стратегических мега-проектах лидеров информационной индустрии: Java (Sun) и Microsoft.NET.

Можно говорить о формировании под влиянием Оберона стандартной парадигмы процедурного программирования (впрочем, Оберон выходит за рамки классического процедурного программирования Тьюринга-фон Неймана; см. об этом здесь).

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

Для программистов-"непрофессионалов" бессмысленная борьба с негодными инструментами - верх абсурда.

С 1993 г. ученики Н.Вирта осуществляют успешный перенос технологий Оберона на наиболее популярные платформы Microsoft Windows, Apple Mac OS ...

При этом язык получил название Компонентный Паскаль - Component Pascal, чтобы подчеркнуть как прямую преемственность со всемирно известным Паскалем, так и ориентированность на поддержку современного компонентно-ориентированного программирования; система программирования получила названия Блэкбокс - BlackBox Component Builder.

Эти усилия делают конструктивную мощь Оберона доступной весьма широкому кругу программистов, в т.ч. программистов-"непрофессионалов" (т.е. специалистов других профессий, более или менее систематически использующих программирование в своей основной деятельности).

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

Ядро технологий, выделенное в Обероне, не подлежит устареванию в обозримом будущем.

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

Все эти ключевые понятия представлены в Обероне/Компонентном Паскале с предельной ясностью.

Важность достигнутого в проекте Оберон как с профессиональной, так и с педагогической точек зрения трудно переоценить.


С сайта www.navigato.ru

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

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

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

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

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

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

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

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

Мария Школьник.


С мая 1999 г. профессор Н.Вирт отошел от преподавательской деятельности, не оставляя своих исследований и увлечений, и занимаясь, среди прочего, изучением русского языка (что отразилось в его приветственном письме для данного проекта). Он имеет троих взрослых детей и проживает в г. Цюрих (Швейцария).

Персональный сайт Н.Вирта: www.cs.inf.ethz.ch/~wirth


Возврат на главную страницу
Hosted by uCoz