Функциональное программирование, Филд А., Харрисон П., 1993

Функциональное программирование, Филд А., Харрисон П., 1993.
   
   В книге английских специалистов рассмотрены проблемы аппликативного программирования, существенно повышающего интеллектуальность разрабатываемых программ по сравнению с традиционным программированием. При этом спецификация предметной области существенно упрощает труд программиста. Особое внимание уделяется вопросам реализации функциональных языков, основанной на λ-исчислении Черча. В качестве базового языка рассматривается функциональный язык Норе, имеющий простой и ясный синтаксис. Изложение сопровождается многочисленными примерами конкретных программ.
Для программистов как начинающих, так и профессионалов, а также специалистов в области информатики.

Функциональное программирование, Филд А., Харрисон П., 1993


Чистые функции.
В математике функция есть нечто, что обеспечивает отображение объектов из множества величин, названного областью определения функции (доменом), в объекты из некоего целевого множества, именуемого областью значений функции или диапазоном значений функции.

Простой пример функции — отображение любого заданного целого числа в одно из значений плюс, минус или нуль соответственно в зависимости от того, является ли данное число положительным, отрицательным или равным нулю. Назовем эту функцию sign. Областью определения функции sign является множество целых чисел, а диапазоном значений — множество величин {плюс, минус, нуль}. Для более наглядного представления покажем элементы из области определения функции, область значений функции, а также отображение каждого элемента (рис. 1.1).

ОГЛАВЛЕНИЕ.
Предисловие редактора перевода.
Предисловие.
Часть I. Программирование с помощью функций.
Введение.
Глава 1. Введение в функции.
1.1. Чистые функции.
1.2. Функциональность.
Резюме.
Глава 2. Введение в функциональное программирование. Язык Норе.
2.1. Введение понятия функции.
2.2. Кортежи.
2.3. Рекурсивные функции.
2.4. Объявляемые инфиксные операторы.
2.5. Квалифицированные выражения.
2.6. Типы данных, определяемые пользователем.
2.7. Доказательства по индукции.
Резюме.
Упражнения.
Глава 3. Функции высшего порядка.
3.1. Примеры рекурсии.
3.2. Связывание.
3.3. Другие примеры рекурсии.
3.4. Пример применения.
Резюме.
Упражнения.
Глава 4. Виды вычислений.
4.1. Понятие строгости.
4.2. Обработка «бесконечных» структур данных.
4.3. Сети процессов.
4.4. Вычисление с «неизвестным».
Резюме.
Упражнения.
Глава 5. Другие стили функционального программирования.
5.1. Miranda.
5.2. Лисп.
5.3. FP.
Резюме.
Упражнения.
Часть II. Реализация.
Введение.
Глава 6. Математические основы: λ-исчисление.
6.1. Введение и синтаксис.
6.2. Вычисление λ-выражений.
6.3. Порядок редукций и нормальные формы.
6.4. ß-Редукция и проблема конфликта имен.
6.5. Обход проблемы конфликта имен.
6.6. Эффект разделения.
6.7. Рекурсивные выражения.
6.8. Чистое λ-исчисление.
6.9. λ-исчисление де Брёйна.
Резюме.
Упражнения.
Глава 7. Система вывода типов и проверка типов.
7.1. Неформальное введение в проверку типов.
7.2. Система вывода типов.
7.3. Алгоритм проверки типа W.
7.4. Расширения W для практической проверки типов.
7.5. Ограничения W.
Резюме.
Упражнения.
Глава 8. Промежуточные формы.
8.1. Промежуточный код для функциональных языков.
8.2. Абстрактные синтаксические деревья.
8.3. Трансляция языка Норе в промежуточный код.
8.4. Трансляция сопоставления с образцом.
8.5. Поиск наиболее подходящего образца.
8.6. Литеральные образцы.
8.7. О порядке тестирования.
Резюме.
Упражнения.
Глава 9. Методы интерпретации.
9.1. Абстрактное представление промежуточного кода.
9.2. Энергичный интерпретатор.
9.3. Ленивый интерпретатор.
Резюме.
Упражнения.
Глава 10. Реализация на основе стеков — SECD-машина.
10.1. SECD-машина.
10.2. Ленивая SECD-машина.
10.3. Корректность реализации SECD-машины.
Резюме.
Упражнения.
Глава 11. Введение в редукцию графов.
11.1. Представление лямбда выражении в виде графов.
11.2. Правила редукции графов.
11.3. Интерпретаторы, основанные на редукции графов.
11.4. Проблема свободных переменных.
11.5. Параллельная редукция графов.
Резюме.
Упражнения.
Глава 12. Комбинаторная редукция.
12.1. Основы комбинаторной логики и редукция.
12.2. Оптимизация Карри и редукция комбинаторных графов Тернера.
12.3. Представление рекурсии.
12.4. Строки направляющих.
Резюме.
Упражнения.
Глава 13. Новейшие комбинаторные реализации.
13.1. Абстрагирование свободных переменных простым λ-удалением.
13.2. Суперкомбинаторы.
133. Оптимизация суперкомбинаторных реализаций.
13.4. Категорийные комбинаторы.
13 5. Модификации КАМ.
Резюме.
Упражнения.
Глава 14. Потоковые реализации.
14.1. Функциональный поток данных аппликативного порядка.
14.2. Функциональный поток данных нормального порядка.
14.3. Сравнение с другими моделями.
Резюме.
Упражнения.
Глава 15. Компиляции функциональных языков.
15.1. Структура компилированной программы.
15.2. МФП-система.
15.3. G-машина.
Резюме.
Упражнения.
Глава 16. Сборка мусора.
16.1. Организация памяти.
16.2. Сканирующая сборка мусора.
16.3. Копирующие сборщики мусора.
16.4. Сборщики мусора с подсчётом ссылок.
Резюме.
Упражнения.
Глава 17. Преобразование программ и операционный подход.
17.1. Трансформационная методология раскрутки/скрутки
17.2. Управление системой раскрутки/скрутки — метаязык преобразований.
17.3. Преобразование типов данных.
Резюме.
Упражнения.
Глава 18. Алгебраическое преобразование программ.
18.1. Абстрагирование от переменных.
18.2. Аксиомы алгебры FP и уравнения функционального уровня.
18.3. Линейная функция и теорема о линейном расширении.
18.4. Итерационные формы линейных функций.
18.5. Другие применения.
18.6. Преобразование передачей продолжений.
Резюме.
Упражнения.
Глава 19. Запоминание.
19.1. Принципы работы и основные трудности.
19.2. Ленивые мемо-функции.
19.3. Управление размером мемо-таблицы.
19.4. Сборка мусора для мемо-таблиц.
Резюме.
Упражнения.
Глава 20. Абстрактная интерпретация.
20.1. Общие принципы.
20.2. Анализ строгости.
20.3. Доказательства надежности.
20.4. Другие применения для оптимизации программ.
Резюме.
Упражнения.
Приложение А. Краткое описание языка Норе.
A.1. БНФ языка Норе.
А.2. Предварительно определенные типы и функции.
Приложение Б. Основы теории доменов.
Б.1. Введение.
Б.2. Законченный частичный порядок и непрерывные функции.
Б.3. Конструкции на доменах: новые домены из старых.
Б.4 Наименьшие фиксированные точки.
Приложение В. Формальная семантика.
B.1. Денотационная семантика λ-исчисления.
В.2. Денотационная семантика функциональных языков программирования.
В.3. Конструируемые типы данных.  
В.4. Сопоставление с образцом.
Решение некоторых упражнений.
Литература.
Предметный указатель.



Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Функциональное программирование, Филд А., Харрисон П., 1993 - fileskachat.com, быстрое и бесплатное скачивание.

Скачать djvu
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.Купить эту книгу



Скачать - djvu - Яндекс.Диск.
Дата публикации:





Хештеги: :: :: ::


Следующие учебники и книги:
Предыдущие статьи: