Первого января 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 год) в духе законов Паркинсона: «программы становятся медленнее куда шустрее, чем компьютеры становятся быстрее.
Комментарии
И не говорите. Вот нахрена людям столько молотков
Чтобы покупали. Я вот не вижу здесь молотка каменщику, а каменщик был бы рад. Просто рад. Приятно в руке держать.
Перспективный чат детектед! Сим повелеваю - внести запись в реестр самых обсуждаемых за последние 4 часа.
Да...
Реально великий был информатик.
С другой стороны -- мало кто такую бомбу под разработку софта закладывал. Только Вирт с Паскалем и дохлый Сан со своей жабой.
И если Вирт долго отмазывался, что он ничего такого не имел ввиду, а Паскаль это "учебный язык для обучения структурному программированию, а если вам надо, то вот вам более настоящий Модула 2", то уроды из Сана уже ничего не скажут.
извините сэр - фигню несете
паскаль - конец 60ых
только начиналась эпоха малых эвм.
паскаль с Виртовским миникампутером - как раз эпоха структурного программирования
тольк только два хипстера в беркли универсальный язык низкого уровня придумали.
и тоже кстати для малой эвм которая одиноко стояла в углу.
в те времена 64 кб памяти - были крутой вещью
плюсы к сям прикрутили когда счет памяти пошел на мегабайты
Да... очень значимый человек ушел...
вот на паскале помниццо, да в студенческие-то годы, писал я обработчик контроллера ЭЛТ на замену штатному. Да, было время!
RIP. Паскаль впервые увидел в ВУЗе, и он был хорош. Для обучения, по крайней мере.
Для того ж, типа, и делался. А оно вон как вышло!
ЧЕЛОВЕЧИЩЕ !
Тут упоминали "Пересмотренное сообщение..."
Мне при его прочтении запал в память эпиграф.
=========================
То, что должно быть сказано, должно быть сказано ясно.
О том, что нельзя сказать ясно, следует молчать.
Так точно!
Этот эпиграф точно не про Алгол-68!
Про лисп.
А чё сразу Лисп???
Да. Всегда восхищался программистами. Когда-то и сам интересовался досовскими языками (фортраном, бейсиком, паскалем, фокспро) потом и виндозными версиями. Программиста из меня не получилось, сильно слаб умишком и стар, так как это дело для молодых и пытливых. Одно скажу, если хотите, чтобы ваши дети не ставили телегу впереди лошади и не лепили собаке пятую ногу, то обязательно надо их знакомить с программированием, это очень мощно организовывает человека к творчеству и управлению другими людьми. Любому, в любой области творчества (но может быть за исключением музицирования).
146%.
goto отменил. Интересно, как он без goto компилятор с паскаля написал.
Как разработчик языка скажу. Без внутренней команды goto (ассемблера или виртуальной машины) компилятор процедурного языка написать в принципе нельзя, условный оператор и цикл не реализуешь. Но эту команду не обязательно на уровень декларации самого компилируемого языка поднимать. Я тоже так делал :).
Не отменил - goto входит в состав операторов PASCAL.
Другое дело, что он (или ещё кто-то) показал, что любой алгоритм можно переписать без использования goto.
В книге Вирта "Алгоритмы+структуры данных ..." есть пример написанного на Паскале простейшего компилятора, где он вполне обходится без goto.
Edsger W. Dijkstra. Go To Statement Considered Harmful
Однако GOTO не только плох, но и хорош. Иногда.
Обойтись без GOTO можно.
1. Вложенные циклы переместить в подпрограмму/функцию. Быстрый выход делать через возврат из функции (return). Брутальный выход нужен например, для генерации ошибки при контроле входных данных, т.ч. выделение контроля в отдельную функцию даже и желательно. Для одиночного цикла достаточно оператора выхода из цикла (break).
2. В автомате все состояния загнать в общий цикл с единым switch по данным. Переключения состояний делать через установку данных и переход на начало цикла (continue). Будет читабельнее, а значит, более удобно для доработок.
Эти операторы, хотя и являются по сути операторами безусловного перехода, но ограничены неявной меткой перехода, что не дает написать спагетти-код. С этой точки зрения даже ветка else является неявной меткой перехода при невыполнении условия if.
Когда пишешь компилятор, на языке выходного кода фактически GOTO на неявные метки в этих случаях и генерируется. Но оператора GOTO и явных меток в компилируемом языке при этом может и не быть, я такой язык делал.
Таки, начал со ссылки на статью Дейкстры.
Когда считали байты (а мы же примерно о временах тру-Pascal и каноничного Си говорим, верно?) это стоило ресурсов (даже не смешных по нынешним меркам).
Верно.
Но олдскульным методом удобнее переключать по меткам. Особенно, когда events пилишь почти в реал-тайме.
Вот я с вами согласен. И даже выпил бы с Вами на Рождество, ибо Вы - Реликт в море навозного кода и его гегераторов.
От Реликта слышу :). Спасибо на добром слове, конечно. Хоть кто-то помнит как надо, и когда.
"Генераторы" да, достают. Причем полбеды, когда используют внешние библиотеки вместо простого собственного кода.
Хуже, когда и сами правильно не пишут, и внешние библиотеки не используют, потому что не понимают, что "под ковром" происходит.
Например, в веб части, поставляющей данные для учетной(бухгалтерской) системы, используют JavaScript.
Когда сообщаешь, что вычисления в "родной" плавающей арифметике в этом случае использовать нельзя - "ачотакова", "всегдатакделаем".
Подключить "банковское" округление - "а зачем". Куда катится этот мир...
Насколько я не помню, на «банковском округлении» не одно состояние сделано…
Я видел много абсок, много интересных способов борьбы с проблемами округления и ни одного человека, который бы на этом нажился.
1-6 января 1998 года сводил баланс на новой АБС, разница округления - 6 копеек. И ни в чём себе не отказывайте)))
ЕМНИП, байка была не про конкретно банковское округление, а про перевод ушлым программистом каждого дробного остатка при округлении на свой счет.
Насчет баланса - это въедливый главбух не попадался, у которого баланс должен сойтись до копейки, иначе софт не принимался. И годом ранее это были бы не копейки, а целых 60 рублей.
В то время пришлось в языке специальный десятичный тип для денег сделать, и не только из-за округлений. Точности в 16 десятичных знаков типа double при продолжении инфляции без деноминации могло перестать хватать для представления баланса.
Я именно по поводу того, что чуть выше увъ. ers написал.
И, вроде это были не байки, а вполне себе рабочие схемки.
Не совсем верно.
Сильно зависит от компилятора. От реализации кода switch. Если switch реализован через DEC/JZ - это одно, если через MOV/XOR/JZ - это совсем другое.
Я впирался в проблему, когда при переходе на другой компилятор циклограмма (switch на сотню case'ов) вместо положенных пары десятков микросекунд вдруг начинала отжирать почти миллисекунду.
Суть структурного программирования - в читаемости программы.
Мы видим код и понимаем логику его работы. Отсюда же осмысленное именование переменных и комментарии.
В данном примере нет никакой логики, без внешней по отношению к коду документации это абсурд.
Рекомендую - Мак-Кракен, Д.; Дорн, У. Численные методы и программирование на ФОРТРАНе
Издательство: М.: Мир; Издание 2-е, стер.; 584 страниц; 1977 г.
Настольная книга была.
Годный срач. Ахтунг - пахнет трольчатиной! Автор, нет ли в обсуждении упырей? Сим повелеваю - внести запись в реестр самых обсуждаемых за день.
Зачотище.
146%.
Отлично.
Вот фиг знает. Есть ощущение, что Си получил новый пинок, когда С++ превратился в сплошной темплейт комбайн, эдакий boost на максималках. Говорим С++ понимаем STL. Си сделал пластику и стал ходить по молодухам )
Все мы не вечны, и Господь отпустил Никлаусу Вирту весьма большой срок жизни, и он воспользовался им сполна.
Спасибо ему за тот огромный труд, что он сделал. Хотя до уровня коммерциализации добралось не так много, и, скажем, успеха Явы ему добиться не удалось, его идеи и влияние были весьма сильны. Именно про таких учёных говорят "мы стояли на плечах гигантов".
Отлично сказано.
Почитал. Даже завидно. Народ помнит, что делал 20-40 лет назад. А я сегодня либу открыл, думаю хорошая либа все красиво, а потом из шапки понимаю, что это я ее год тому писал Этож какая у меня насыщенная жисть оказывается
Вот у человека тру-насыщенная жизнь была.
Да неee, просто реально завидно. ) Вроде и всякие алголы с кумирами были и опкоды с асмом, а из воспоминаний только названия ) Знаю только одно, сейчас мне нравится много больше чем тогда, было сплошное написание велосипедов даже для простейшей задачи. А ну и все забыли упомянуть 1Cбухгалтерия хз как щас, а первы выглядел как переведенный паскаль на русский язык )
UPD Вот уже не помню кумир был переводом бейсика или паскаля. (Уже глянул, оно оказывается до сих пор пользуется, ближе к алголу)
Ну вот жэж, есть что к старости вспомнить!
А как насчёт дырочки на ленточке дл «Минска-32» пробивать или настукивать буквовки на пишмашинке «Ятрань» для «Наири 3/2»?
Неее, я молодой застал только EC и Motorola(не помню названия) в CCСР ) Хотя еще большой балистический вычислятор(корабельный) тыкал пальцем )
Тоже нормально!
А вычисляторов не видел. Хотя был курс создания АВМ. Это которые как ЭВМ, но аналоговые. Их каждый под саои задачи создавал.
Да да. Аналоговый ) Но я АТС видел меня не испугало )
Страницы