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

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

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

Описание

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

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

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

Содержание

Предисловие
Предисловие авторов
Благодарности
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. Спасибо, что помогаете нам стать лучше!
Ваш населённый пункт:
г. Москва
Выбор населённого пункта