Наследие Никлауса Вирта
Как известно, 1 января 2024 года не стало Никлауса Вирта (Niklaus Wirth), ученого из Швейцарии, лауреата премии Тьюринга, известного большинству благодаря своему детищу — языку программирования Pascal.
Никлаус повлиял на многие языки программирования и технологии, известные нам сегодня. Немногие знают, но из под его пера вышло и несколько хороших книг по computer science, большинство из которых можно скачать абсолютно бесплатно. Ниже мы решили собрать самые, на наш взгляд, интересные.
Первая книга называется “Algorithms and Data Structures” и является неплохим введением в предмет «Алгоритмы и структуры данных». В книге разобраны алгоритмы сортировки, рекурсия, списки, бинарные деревья поиска, B-деревья и хеширование. Книга хорошо иллюстрирована. Примеры программ приведены на языке Oberon, разработанном Никлаусом Виртом. Этот язык будет понятен большинству студентов, знакомых хотя бы с одним императивным языком программирования.
Если читателя заинтересует описание самого языка программирования, применяемого в книге выше, то можно обратиться к брошюре, также написанной Никлаусом. Хороший пример невероятно лаконичного описания языка программирования, столь редкого в наши дни.
Авторству Вирта принадлежит и одна из наиболее часто рекомендуемых вводных книг по конструированию компиляторов — “Compiler Construction” (часть 1, часть 2). Книга повествует о разработке простого компилятора для подмножества Oberon, которое транслируется в код минималистичного RISC-процессора, реализация эмулятора которого занимает всего страницу печатного текста! Иллюстрации и упражнения значительно упрощают погружение в тему.
Вообще, школа Вирта — отдельный маленький мир со своими языками программирования, операционными системами и даже аппаратными архитектурами. Да, в ETHZ (Швейцарская высшая техническая школа в Цюрихе) создали много самобытных технологий, и Никлаус повлиял на многие из них, выступая автором и вдохновителем большинства проектов. Существует книга, описывающая внутреннее устройство Oberon-технологий, от ОС до железа. Самая свежая книга была многократно упрощена Виртом для обучения студентов. Чтобы сохранить это наследие, энтузиасты перенабрали текст книги в TeX, что позволит исправлять в ней ошибки, а также генерировать удобочитаемые документы — например, в PDF. Даже если вы не планируете разбираться в довольно ограниченной по возможностям учебной системе, чтение этой книги может навести на интересные мысли, а также мотивировать читателя разрабатывать минималистичное программное обеспечение, экономно использующее ресурсы машины.
К виртовской школе можно отнести и другие публикации, например книгу Ханспетера (Hanspeter Mössenböck) Мёссенбока “Object Oriented Programming in Oberon-2”. Эта книга не о языке, а о парадигме программирования. Сам автор пишет, что язык не важен, и все то же самое можно написать на любом другом, если хорошо понять базовые концепции. Книга учит мыслить в ООП-парадигме и проектировать модульное и легко поддерживаемое программное обеспечение. В книге много реалистичных рабочих примеров условно полезных систем, притом, что объем книги весьма небольшой.
#literature