ЮрИнфоР >>> Библиотека ЮрИнфоР >>> Компьютерные науки и информационные технологии >>>
Комбинаторная логика в программировании: Вычисления с объектами в примерах и задачах
|
|
Изложен основной круг задач, сводимых к исчислению объектов - "от простого к сложному". Конкретный вариант исчисления выбирается в зависимости от решаемых задач. В ходе последовательного решения задач читатель овладевает основными методами и средствами комбинаторной логики и лямбда-исчисления. Все задачи снабжены подробными и элементарными решениями.
Для студентов старших курсов и аспирантов, изучающих математические основы объектно-ориентированных вычисления, начинающих и профессионально работающих над продвинутыми проектами программистов. Может быть использована в курсах дискретной математики, информатики, теории программирования. Предварительной математической подготовки не требуется. Материал частично или полностью может быть использован для самостоятельного изучения как книга "для первого чтения".
См. также
Содержание
Предисловие редактора серии
Круг вопросов 5
Предисловие к первому изданию
Предисловие ко второму изданию
Введение
Предварительные сведения
- Круг основных идей 29
- Структура раздела 30
- Состояние исследований 31
- Типовая задача 35
- Варианты задания 37
- Рекомендуемый порядок выполнения задания ... 44
Синтез нового объекта 45
- Принцип комбинаторной полноты 46
-
Комбинаторная характеристика 46 Системы концептов 47
- Комбинаторная полнота 48
- Элементарная комбинаторная логика .... 49
- Синтез основных комбинаторов: задачи 52
- Исторические замечания 63
Неподвижная точка 65
- Теоретические сведения 65
- Абстракция 66
- Мультиабстракция 67
- Локальная рекурсия 67
- Основные задачи 68
- Упражнения 73
Экстенсиональность 75
- Теоретические сведения 75
- Задачи 77
- Упражнения 80
Нумералы 81
- Числа и нумералы 81
- Комбинаторная арифметика 82
- Задачи 88
- Упражнения 92
Комбинаторы с типами 93
- Представление о типе 93
Комбинаторные термы 96
l-термы 97 - Задачи 97
Базис I, К, S 113
- Теоретические сведения 114
- Задачи 114
- Упражнения 115
Базис I, В, С, S 117
- Теоретические сведения 117
- Свойство базисности 118
- Элементарные примеры 120
- Упражнения 121
Применения неподвижной точки Y 123
- Теорема о неподвижной точке 123
- Элементы рекурсивных вычислений 124
- Использование комбинатора Y 125
- Вычисление функций 127
- Упражнения 131
Функция list1 133
- Теоретические сведения 133
- Задачи 134
- Функтор-как-объект 137
- Упражнения 138
Изоморфизм д.з.к. и ABC 139
- Теоретические сведения 139
- Задачи 141
Каррирование 143
- Теоретические сведения 143
- Операторы и функции 143
- Свертывание 144
- Соответствие операторов и функций 144
- Задачи 145
- Упражнения 147
Оболочка Каруби 149
- Теоретические сведения 149
- Задачи 150
- Упражнения 155
Произведение и проекции 157
- Теоретические сведения 157
- Задача 158
- Произведение и декартово замкнутая категория . . 162
Погружение Lisp в ABC 163
- Теоретические сведения 163
- Основная задача 164
- Заключительные замечания 170
Суперкомбинаторы 171
- Теоретические сведения 171
- Понятие о суперкомбинаторе 172
- Процесс компиляции 174
- Приведение к суперкомбинаторам 175
- Устранение избыточных параметров 177
- Упорядочивание параметров 179
- Ламбда-подъем при рекурсии 183
- Работа алгоритма ламбда-подъема 186
- Другие способы ламбда-подъема 189
- Полная ленивость 191
- Максимально свободные выражения .... 194
- Ламбда-подъем с использованием МСВ . . 195
- Полностью ленивый ламбда-подъем с letrec 197
- Комплексный пример 199
- Задача 201
- Ответы к упражнениям 204
Ленивая реализация 213
- Задачи 213
- Упражнения 216
Перестановка параметров 217
- Задача 217
- Упражнения 222
- Вопросы для самопроверки 222
Непосредственные вычисления 223
- Задача 223
- Упражнения 225
- Вопросы для самопроверки 226
Код де Брейна 227
- Задачи 227
- Упражнения 232
Абстрактная машина: КАМ 233
- Теоретические сведения 233
- Структура КАМ 234
- Инструкции 236
- Задачи 240
- Упражнения 242
Оптимизация КАМ-вычислений 243
- Задача 243
- Упражнения 252
- Вопросы для самопроверки 253
Переменные объекты 255
- Модели 255
- Аппликативная структура 256
- Модели с типами 260
- Частичные элементы 267
- дели объектов данных 271
- Основная задача 276
- Элементарные типы 276
- Типизация переменных объектов 278
- Вычислительные модели 280
- Индексированные объекты 282
- Интерпретация среды вычислений 290
Библиография 291
Предметный указатель 309
Глоссарий 313
Практикум 329
Диссертации 333