Проектирование гибких программ

Хансон Крис, Сассман Джеральд Джей

Код товара: 4891693
(0 оценок)Оценить
ОтзывНаписать отзыв
ВопросЗадать вопрос
1 / 2
PDF
Фиксированная скидка
Акция до 23.07.2024
 Подробнее
-35%
2 210
3 399
Доставим в
г. Москва
Курьером
Л-Пост
бесплатно от 10 000 ₽
В пункт выдачи
от 155 ₽
бесплатно от 10 000 ₽
Точная стоимость доставки рассчитывается при оформлении заказа
Издательство:
Оригинальное название:
Software Design for Flexibility. How to Avoid Programming Yourself into a Corner
Год издания:
2022
Переводчик:

Описание

Характеристики

«Большинство систем должны успешно работать на протяжении долгого времени, а не просто удачно отработать один раз. Эта книга – захватывающее исследование предикативного динамического диспетчирования, метаданных и некоторых других способов построения гибких систем, способных совершенствоваться не ломаясь».
Барт Вандевустейн, Esterline

В книге рассматриваются стратегии построения больших систем, которые требуют лишь небольших изменений при адаптации к новым ситуациям. Предлагаемый авторами книги аддитивный стиль программирования позволяет менять существующие проекты, добавляя новый код, а не переписывая старый. Примеры кода представлены на языке Scheme.
Издание предназначено для разработчиков, стремящихся создавать адаптивные системы, которые можно менять с минимальными усилиями.
код в Майшоп
4891693
возрастная категория
18+ (нет данных)
количество томов
1
количество страниц
374 стр.
размеры
240x170x28 мм
ISBN
978-5-97060-955-2
тип бумаги
офсетная (60-220 г/м2)
цвет
Белый
вес
язык
Русский
переплёт
Твёрдый переплёт

Содержание

Предисловие
Предисловие авторов
Благодарности
1.Гибкость в природе и в проектировании
1.1.Архитектура вычислений
1.2.Гибкость через умные компоненты
1.3.Избыточность и дублирование
1.4.Исследовательское поведение
1.5.Цена гибкости
2.Специализированные языки
2.1.Комбинаторы
2.1.1.Комбинаторы функций
2.1.2.Комбинаторы и планы строения
2.2.Регулярные выражения
2.2.1.Комбинаторный язык регулярных выражений
2.2.2.Реализация транслятора
2.3.Обертки
2.3.1.Обертки со специализацией
2.3.2.Реализация оберток
2.3.3.Адаптеры
2.4.Абстракция предметной области
2.4.1.Монолитная реализация
2.4.2.Абстрагирование предметной области
2.5.Заключение
3.Вариации на арифметическую тему
3.1.Арифметика на комбинаторах
3.1.1.Простой интегратор ОДУ
3.1.2.Настройка арифметических операций
3.1.3.Сочетание разных арифметик
3.1.4.Арифметика на функциях
3.1.5.Сложности с комбинаторами
3.2.Расширяемые полиморфные процедуры
3.2.1.Полиморфная арифметика
3.2.2.Структура зависит от порядка!
3.2.3.Реализация полиморфных процедур
3.3.Пример: автоматическое дифференцирование
3.3.1.Как работает автоматическое
дифференцирование
3.3.2.Производные n-местных функций
3.3.3.Технические детали
3.3.4.Функции-литералы от дифференциальных
аргументов
3.4.Эффективность полиморфных процедур
3.4.1.Префиксные графы
3.4.2.Кеширование
3.5.Эффективные типы, определяемые
пользователем
3.5.1.Предикаты как типы
3.5.2.Отношения между предикатами
3.5.3.Предикаты как ключи для диспетчеризации
3.5.4.Пример: игра-бродилка
3.6.Заключение
4.Сопоставление с образцом
4.1.Образцы
4.2.Переписывание термов
4.2.1.Сегментные переменные в алгебре
4.2.2.Реализация систем правил
4.2.3.Ремарка: волшебные макросы
4.2.4.Вызов, управляемый образцами
4.3.Устройство сопоставителя
4.3.1.Компиляция образцов
4.3.2.Ограничения на переменные сопоставления
4.4.Унификация
4.4.1.Как работает унификация
4.4.2.Приложение: вывод типов
4.4.3.Как работает вывод типов
4.4.4.Эксперимент: добавляем сегментные
переменные
4.5.Сопоставление с образцом на графах
4.5.1.Списки как графы
4.5.2.Реализация графов
4.5.3.Сопоставление на графах
4.5.4.Шахматные доски и альтернативные
перспективы для графов
4.5.5.Шахматные ходы
4.5.6.Реализация сопоставления на графах
4.6.Заключение
5.Вычисление
5.1.Полиморфный интерпретатор eval/apply
5.1.1.eval
5.1.2.apply
5.2.Процедуры с нестрогими аргументами
5.3.Компиляция в исполнительные процедуры
5.4.Исследовательское поведение
5.4.1.amb
5.4.2.Реализация amb
5.5.Явная работа с нижележащими продолжениями
5.5.1.Продолжения как нелокальные возвраты
5.5.2.Нелокальная передача управления
5.5.3.От продолжений к amb
5.6.Власть и ответственность
6.Слои
6.1.Использование слоевой структуры
6.2.Реализация слоев
6.2.1.Многослойные данные
6.2.2.Многослойные процедуры
6.3.Слоеная арифметика
6.3.1.Арифметика единиц измерения
6.4.Отслеживание зависимостей между значениями
6.4.1.Слой поддержки
6.4.2.Хранение обоснований
6.5.Что обещает многослойность
7.Распространение информации
7.1.Пример: расстояния до звезд
7.2.Механизм распространения
7.2.1.Ячейки
7.2.2.Распространители
7.3.Альтернативные точки зрения
7.4.Слияние значений
7.4.1.Слияние базовых значений
7.4.2.Слияние значений с поддержкой
7.4.3.Слияние множеств значений
7.5.Поиск в возможных мирах
7.5.1.Перебор с возвратами, управляемый
зависимостями
7.5.2.Решение комбинаторных задач
7.6.Распространители поддерживают
дублирование
8.Эпилог
А Программное обеспечение В Scheme
В.1 Базовые конструкции Scheme
В.2 Более сложные конструкции
Литература
Предметный указатель

Отзывы

Вопросы

Поделитесь своим мнением об этом товаре с другими покупателями — будьте первыми!

Дарим бонусы за отзывы!

За какие отзывы можно получить бонусы?
  • За уникальные, информативные отзывы, прошедшие модерацию
Как получить больше бонусов за отзыв?
  • Публикуйте фото или видео к отзыву
  • Пишите отзывы на товары с меткой "Бонусы за отзыв"
Правила начисления бонусов
Задайте вопрос, чтобы узнать больше о товаре
Если вы обнаружили ошибку в описании товара «Проектирование гибких программ» (авторы: Хансон Крис, Сассман Джеральд Джей), то выделите её мышкой и нажмите Ctrl+Enter. Спасибо, что помогаете нам стать лучше!
Ваш населённый пункт:
г. Москва
Выбор населённого пункта