Не стало Никлауса Вирта

Аватар пользователя NOT

Никлаус Вирт во время визита в Россию (Уральский университет, 2005 год)

Первого января 2024-го года на 90-м году жизни скончался Никлаус Вирт (Niklaus Wirt). Он ушёл из жизни в собственном доме, в окружении родных. Прожил долгую и, наверное, счастливую жизнь.

Никлаус Вирт — специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор компьютерных наук Швейцарской высшей технической школы Цюриха (ETHZ), лауреат премии Тьюринга, автор книг по алгоритмам и структурам данных, ведущий разработчик языков программирования Euler, PL360, Algol W, Modula, Modula-2, Oberon, Oberon-2 и Oberon-07. Пионер информатики и популяризатор парадигмы структурного программирования.

Но большинству (причастных) он известен как создатель языка Pascal.

Вирт родился 15 февраля 1934 года в швейцарском городке Винтертуре в семье школьного учителя. С ранних лет он увлекался авиамоделированием и ракетостроением и даже пытался изготавливать в подвале школы ракетное топливо.

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

Диссертация Вирта была замечена сообществом разработчиков языков программирования, и в том же 1963 году он был приглашён в Комитет по стандартизации Algol (IFIP, Международной федерации информатики), который разрабатывал новый стандарт языка Algol, впоследствии ставший Algol-68. Параллельно, с 1963 по 1967 годы, Вирт работал ассистентом в Стэнфордском университете (США). Вместе с Джимом Уэльсом разработал и реализовал язык PL/360, предназначенный для программирования на платформе IBM/360.

Вирт также работал профессором информатики в Швейцарской высшей технической школа в Цюрихе, откуда вышел на пенсию в 1999 году.


Никлаус Вирт в своём доме. Легендарный информатик был вдохновлён Копфом и фон Форшергейстом

За время преподавательской работы Вирт дважды брал годичные творческие отпуска, чтобы поработать в лаборатории Xerox PARC, известной созданием компьютерной мыши, оконного интерфейса и прочими разработками, ныне получившими повсеместное распространение.

19 июня 2007 года Никлаусу Вирту была присуждена учёная степень Почётного доктора Российской академии наук. Инициатором представления был российский учёный в области информатики Игорь Шагаев, профессор Лондонского Университета Метрополитен, которого с Никлаусом Виртом связывает совместная работа в 2005–2008 годах над европейским проектом ONBASS.

Самое известное творение Никлауса Вирта — язык программирования Pascal, разработанный им в 1970 году.

Помимо языка Pascal Никлаус Вирт был главным создателем языков программирования Euler (в 1965 году), PL360 для серии мейнфреймов IBM/360 (в 1966 году), ALGOL W (в 1968 году), Modula (в 1975 году), Modula-2 (в 1978 году), Oberon (в 1987 году, в содружестве с Юргом Гуткнехтом; нем. Jürg Gutknecht), Oberon-2 (в 1991 году) и Oberon-07 (в 2007 году), а также операционной системы Oberon.

Языки программирования Вирта обычно отличала ясность, простота и эффективность, благодаря чему в своё время они получили широчайшее распространение и оказали сильное влияние на развитие структурного программирования как явления и на дальнейшую разработку языков программирования.

Pascal в своё время был самым распространённым коммерческим языком программирования. Он лёг в основу знаменитого компилятора Turbo Pascal компании Borland, на базе которого были созданы Object Pascal и Delphi.

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

Авторство: 
Копия чужих материалов
Комментарий автора: 

Великий был учёный. Познакомился с его работами в 1977 году. До дыр зачитывался «Пересмотренным сообщением об Алголе-68». Ну и «Паскаль», конечно… Вместе с тремя томами Д.Э. Кнута и трудами Э.В. Дейкстры, конечно.
Помним.

Комментарии

Аватар пользователя utx
utx(8 лет 4 месяца)

И не говорите. Вот нахрена людям столько молотков

Аватар пользователя Дохлик
Дохлик(9 лет 10 месяцев)

Чтобы покупали. Я вот не вижу здесь молотка каменщику, а каменщик был бы рад. Просто рад. Приятно в руке держать.

Скрытый комментарий Повелитель Ботов (без обсуждения)
Аватар пользователя Повелитель Ботов
Повелитель Ботов(54 года 5 месяцев)

Перспективный чат детектед! Сим повелеваю - внести запись в реестр самых обсуждаемых за последние 4 часа.

Комментарий администрации:  
*** Это легальный, годный бот ***
Аватар пользователя KaCMaHaBT
KaCMaHaBT(11 лет 1 месяц)

Да...
Реально великий был информатик.
С другой стороны -- мало кто такую бомбу под разработку софта закладывал. Только Вирт с Паскалем и дохлый Сан со своей жабой.
И если Вирт долго отмазывался, что он ничего такого не имел ввиду, а Паскаль это "учебный язык для обучения структурному программированию, а если вам надо, то вот вам более настоящий Модула 2", то уроды из Сана уже ничего не скажут.

Аватар пользователя дзядзька Хведар

С другой стороны -- мало кто такую бомбу под разработку софта закладывал.

извините сэр - фигню несете

паскаль - конец 60ых

только начиналась эпоха малых эвм.

паскаль с Виртовским миникампутером - как раз эпоха структурного программирования

тольк только два хипстера в беркли универсальный язык низкого уровня придумали.

и тоже кстати для малой эвм которая одиноко стояла в углу.

в те времена 64 кб памяти - были крутой вещью

плюсы к сям прикрутили когда счет памяти пошел на мегабайты 

Комментарий администрации:  
*** Пропиндосский прихвостень ***
Аватар пользователя Antropomorf
Antropomorf(10 лет 3 месяца)

Да... очень значимый человек ушел...

вот на паскале помниццо, да в студенческие-то годы, писал я обработчик контроллера ЭЛТ на замену штатному. Да, было время!

Аватар пользователя Stak
Stak(4 года 3 месяца)

RIP. Паскаль впервые увидел в ВУЗе, и он был хорош. Для обучения, по крайней мере.

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

Для того ж, типа, и делался. А оно вон как вышло!

Аватар пользователя дзядзька Хведар

ЧЕЛОВЕЧИЩЕ !

Комментарий администрации:  
*** Пропиндосский прихвостень ***
Аватар пользователя BQQ
BQQ(11 лет 2 месяца)

Тут упоминали "Пересмотренное сообщение..."

Мне при его прочтении запал в память эпиграф.

=========================

То, что должно быть сказано, должно быть сказано ясно.

О том, что нельзя сказать ясно, следует молчать.

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

Так точно!

smile3.gif

Этот эпиграф точно не про Алгол-68!

Аватар пользователя Mc_Aaron
Mc_Aaron(9 лет 3 месяца)

Про лисп.

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

А чё сразу Лисп???

Аватар пользователя Дохлик
Дохлик(9 лет 10 месяцев)

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

smile10.gif

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

146%.

Аватар пользователя Mc_Aaron
Mc_Aaron(9 лет 3 месяца)

goto отменил. Интересно, как он без goto компилятор с паскаля написал.

Аватар пользователя ers
ers(11 лет 9 месяцев)

Как разработчик языка скажу. Без внутренней команды goto (ассемблера или виртуальной машины) компилятор процедурного языка написать в принципе нельзя, условный оператор и цикл не реализуешь. Но эту команду не обязательно на уровень декларации самого компилируемого языка поднимать. Я тоже так делал :).

Аватар пользователя igorzzz
igorzzz(6 лет 4 месяца)

goto отменил

Не отменил - goto входит в состав операторов PASCAL.

Другое дело, что он (или ещё кто-то) показал, что любой алгоритм можно переписать без использования goto.

В книге Вирта "Алгоритмы+структуры данных ..." есть пример написанного на Паскале простейшего компилятора, где он вполне обходится без goto.

Аватар пользователя RusEngineer
RusEngineer(7 лет 10 месяцев)

Edsger W. Dijkstra. Go To Statement Considered Harmful

Однако GOTO не только плох, но и хорош. Иногда.

  1. Брутальный и быстрый выход из нескольких вложенных циклов.
  2. Программирование автоматов:
    state_1:
    	switch (signal)
    	{
    	case 1: goto state_5;
    	case 2: goto state_10;
    	case 3: goto state_8;
    	}
    state_2:
    	switch (signal)
    	{
    	case 7: goto state_37;
    	case 10: goto state_1;
    	case 9: goto state_99;
    	}
    
Аватар пользователя ers
ers(11 лет 9 месяцев)

Обойтись без GOTO можно.
1. Вложенные циклы переместить в подпрограмму/функцию. Быстрый выход делать через возврат из функции (return). Брутальный выход нужен например, для генерации ошибки при контроле входных данных, т.ч. выделение контроля в отдельную функцию даже и желательно. Для одиночного цикла достаточно оператора выхода из цикла (break).
2. В автомате все состояния загнать в общий цикл с единым switch по данным. Переключения состояний делать через установку данных и переход на начало цикла (continue). Будет читабельнее, а значит, более удобно для доработок.

Эти операторы, хотя и являются по сути операторами безусловного перехода, но ограничены неявной меткой перехода, что не дает написать спагетти-код. С этой точки зрения даже ветка else является неявной меткой перехода при невыполнении условия if.
Когда пишешь компилятор, на языке выходного кода фактически GOTO на неявные метки в этих случаях и генерируется. Но оператора GOTO и явных меток в компилируемом языке при этом может и не быть, я такой язык делал.

Аватар пользователя RusEngineer
RusEngineer(7 лет 10 месяцев)

Обойтись без GOTO можно

Таки, начал со ссылки на статью Дейкстры.

Вложенные циклы переместить в подпрограмму/функцию. Быстрый выход делать через возврат из функции (return).

Когда считали байты (а мы же примерно о временах тру-Pascal и каноничного Си говорим, верно?) это стоило ресурсов (даже не смешных по нынешним меркам).

В автомате все состояния загнать в общий цикл с единым switch

Верно.

Но олдскульным методом удобнее переключать по меткам. Особенно, когда events пилишь почти в реал-тайме.

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

Вот я с вами согласен. И даже выпил бы с Вами на Рождество, ибо Вы - Реликт в море навозного кода и его гегераторов.

Аватар пользователя ers
ers(11 лет 9 месяцев)

От Реликта слышу :). Спасибо на добром слове, конечно. Хоть кто-то помнит как надо, и когда.

"Генераторы" да, достают. Причем полбеды, когда используют внешние библиотеки вместо простого собственного кода.
Хуже, когда и сами правильно не пишут, и внешние библиотеки не используют, потому что не понимают, что "под ковром" происходит.

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

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

Насколько я не помню, на «банковском округлении» не одно состояние сделано…

Аватар пользователя ata
ata(12 лет 4 месяца)

Я видел много абсок, много интересных способов борьбы с проблемами округления и ни одного человека, который бы на этом нажился.

1-6 января 1998 года сводил баланс на новой АБС, разница округления - 6 копеек. И ни в чём себе не отказывайте)))

Аватар пользователя ers
ers(11 лет 9 месяцев)

ЕМНИП, байка была не про конкретно банковское округление, а про перевод ушлым программистом каждого дробного остатка при округлении на свой счет.
Насчет баланса - это въедливый главбух не попадался, у которого баланс должен сойтись до копейки, иначе софт не принимался. И годом ранее это были бы не копейки, а целых 60 рублей.
В то время пришлось в языке специальный десятичный тип для денег сделать, и не только из-за округлений. Точности в 16 десятичных знаков типа double при продолжении инфляции без деноминации могло перестать хватать для представления баланса.

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

Я именно по поводу того, что чуть выше увъ. ers написал.

И, вроде это были не байки, а вполне себе рабочие схемки.

Аватар пользователя Intel4004
Intel4004(11 лет 10 месяцев)

Когда считали байты

В автомате все состояния загнать в общий цикл с единым switch

Верно.

Не совсем верно.

Сильно зависит от компилятора. От реализации кода switch. Если switch реализован через DEC/JZ - это одно, если через MOV/XOR/JZ - это совсем другое.

Я впирался в проблему, когда при переходе на другой компилятор циклограмма (switch на сотню case'ов) вместо положенных пары десятков микросекунд вдруг начинала отжирать почти миллисекунду.

Аватар пользователя ata
ata(12 лет 4 месяца)

Суть структурного программирования - в читаемости программы.

Мы видим код и понимаем логику его работы. Отсюда же осмысленное именование переменных и комментарии.

В данном примере нет никакой логики, без внешней по отношению к коду документации это абсурд.

Аватар пользователя gliba
gliba(5 месяцев 6 дней)

Рекомендую - Мак-Кракен, Д.; Дорн, У. Численные методы и программирование на ФОРТРАНе
Издательство: М.: Мир; Издание 2-е, стер.; 584 страниц; 1977 г.

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

Настольная книга была.

Скрытый комментарий Повелитель Ботов (без обсуждения)
Аватар пользователя Повелитель Ботов
Повелитель Ботов(54 года 5 месяцев)

Годный срач. Ахтунг - пахнет трольчатиной! Автор, нет ли в обсуждении упырей? Сим повелеваю - внести запись в реестр самых обсуждаемых за день.

Комментарий администрации:  
*** Это легальный, годный бот ***
Аватар пользователя IvanPomidorov
IvanPomidorov(9 лет 1 месяц)

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

Зачотище.

smile7.gif

Аватар пользователя RusEngineer
RusEngineer(7 лет 10 месяцев)

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

146%.

Отлично.

Аватар пользователя utx
utx(8 лет 4 месяца)

Вот фиг знает. Есть ощущение, что Си получил новый пинок, когда С++ превратился в сплошной темплейт комбайн, эдакий boost на максималках.  Говорим С++ понимаем STL. Си сделал пластику и стал ходить по молодухам )

Аватар пользователя ata
ata(12 лет 4 месяца)

Все мы не вечны, и Господь отпустил Никлаусу Вирту весьма большой срок жизни, и он воспользовался им сполна. 

Спасибо ему за тот огромный труд, что он сделал. Хотя до уровня коммерциализации добралось не так много, и, скажем, успеха Явы ему добиться не удалось, его идеи и влияние были весьма сильны. Именно про таких учёных говорят "мы стояли на плечах гигантов".

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

Отлично сказано.

Аватар пользователя utx
utx(8 лет 4 месяца)

Почитал. Даже завидно. Народ помнит, что делал 20-40 лет назад. А я сегодня либу открыл, думаю хорошая либа все красиво, а потом из шапки понимаю, что это я ее год тому писал smile3.gif Этож какая у меня насыщенная жисть оказывается smile8.gif

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

Вот у человека тру-насыщенная жизнь была.

Открывать осторожно!
Аватар пользователя utx
utx(8 лет 4 месяца)

Да неee, просто реально завидно. )  Вроде и всякие алголы с кумирами были и опкоды с асмом, а из воспоминаний только названия ) Знаю только одно, сейчас мне нравится много больше чем тогда, было сплошное написание велосипедов даже для простейшей задачи. А ну и все забыли упомянуть 1Cбухгалтерия хз как щас, а первы выглядел как переведенный паскаль на русский язык )

UPD Вот уже не помню кумир был переводом бейсика или паскаля. (Уже глянул, оно оказывается до сих пор пользуется, ближе к алголу)

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

Ну вот жэж, есть что к старости вспомнить!

А как насчёт дырочки на ленточке дл «Минска-32» пробивать или настукивать буквовки на пишмашинке «Ятрань» для «Наири 3/2»?

smile1.gif

Аватар пользователя utx
utx(8 лет 4 месяца)

Неее, я молодой застал только EC и Motorola(не помню названия) в CCСР ) Хотя еще большой балистический вычислятор(корабельный) тыкал пальцем )

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

smile9.gif

Тоже нормально!

А вычисляторов не видел. Хотя был курс создания АВМ. Это которые как ЭВМ, но аналоговые. Их каждый под саои задачи создавал.

Аватар пользователя utx
utx(8 лет 4 месяца)

Да да. Аналоговый ) Но я АТС видел меня не испугало )

Аватар пользователя NOT
NOT(12 лет 5 месяцев)

smile7.gif

Страницы