Книга, которую вы держите в руках, принадлежит перу известного американского популяризатора Чарлза Петцольда. В ней автор исследует главную работу Алана Тьюринга, посвященную проблеме разрешимости. Именно в этой работе впервые появились знаменитые машины Тьюринга, ставшие на многие годы универсальной теоретической концепцией computer science. Автор тонко и деликатно проведет вас по самым потаенным уголкам, из которых родились на свет современные компьютеры и современное программное обеспечение. Читателя ждет захватывающее путешествие в прошлое, из которого получилось наше настоящее и развивается будущее.
В книге описан проект Оберон, представляющий полную программную среду для современной рабочей станции. Главная цель, поставленная авторами, – спроектировать и реализовать всю систему с нуля и построить ее так, чтобы она могла быть описана, объяснена и понята как единое целое. В дополнение к основной системе во всех деталях описан компилятор языка Оберон и графическая подсистема. Для программистов, преподавателей и студентов, изучающих теорию и практику построения операционных систем.
Рассмотрены фундаментальные концепции и принципы, воплощенные в современных и перспективных языках программирования. Представлены разные стили программирования (операционный, ситуационный, функциональный, реляционный, параллельный, объектно-ориентированный). Базовые концепции и принципы рассмотрены с пяти различных позиций (технологической, авторской, математической, семиотической и реализаторской) и проиллюстрированы примерами из таких языков, как Паскаль, Симула-67, Смолток, Рефал, Ада, Модула-2, Оберон, Оккам-2, Турбо Паскаль, С++ и др. Сложность выделена как основополагающая проблема программирования, а абстракция-конкретизация и прогнозирование-контроль – как основные ортогональные методы борьбы со сложностью. На этой общей базе в книге впервые представлена цельная система концепций и принципов, создающая четкие ориентиры в области языков программирования. На основе этой системы сформулированы оригинальные положения, указывающие перспективы развития в этой области (модули исключительных ситуаций, модули управления представлением, входовые типы и др.). Многие из них в последние годы стали реальностью. Новые подходы применены при изложении известных фактов (пошаговая модификация нормальных алгоритмов Маркова сначала до Рефала, а затем до реляционных языков, сопоставление принципов «сундука» и «чемоданчика» при создании Ады, Модулы-2 и Оберона, развитие концепции наследуемости от модульности до объектной ориентации, систематическое сопоставление концепции параллелизма в Аде и Оккаме-2, и др.). Для всех серьезно интересующихся программированием, в том числе научных работников, программистов, преподавателей и студентов.
В классическом учебнике тьюринговского лауреата Н. Вирта аккуратно, на тщательно подобранных примерах прорабатываются основные темы алгоритмики – сортировка и поиск, рекурсия, динамические структуры данных. Перевод на русский язык выполнен заново, все рассуждения и программы проверены и исправлены, часть примеров по согласованию с автором переработана с целью максимального прояснения их логики (в том числе за счет использования цикла Дейкстры). Нотацией примеров теперь служит Оберон/Компонентный Паскаль – наиболее совершенный потомок старого Паскаля по прямой линии. Все программы проверены и работают в популярном варианте Оберона – системе Блэкбокс. Большая часть материала книги составляет необходимый минимум знаний по алгоритмике не только для программистов-профессионалов, но и любых других специалистов, активно использующих программирование в работе. Книга может быть использована как учебное пособие при обучении будущих программистов, начиная со старшеклассников в профильном обучении, а также подходит для систематического самообразования. (Компакт-диск прилагается только к печатному изданию.)
Книга известного специалиста в области информатики Никлауса Вирта написана по материалам его лекций по вводному курсу проектирования компиляторов. На примере простого языка Оберон-0 рассмотрены все элементы транслятора, включая оптимизацию и генерацию кода. Приведен полный текст компилятора на языке программирования Оберон. Для программистов, преподавателей и студентов, изучающих системное программирование и методы трансляции. (Компакт-диск прилагается только к печатному изданию.)