ЮрИнфоР >>> Библиотека ЮрИнфоР >>> Компьютерные науки и информационные технологии >>>
Комбинаторная логика в программировании: Вычисления с объектами в примерах и задачах
        
  | 
      
        
  | 
    ||||||||||||||||
Изложен основной круг задач, сводимых к исчислению объектов - "от простого к сложному". Конкретный вариант исчисления выбирается в зависимости от решаемых задач. В ходе последовательного решения задач читатель овладевает основными методами и средствами комбинаторной логики и лямбда-исчисления. Все задачи снабжены подробными и элементарными решениями.
Для студентов старших курсов и аспирантов, изучающих математические основы объектно-ориентированных вычисления, начинающих и профессионально работающих над продвинутыми проектами программистов. Может быть использована в курсах дискретной математики, информатики, теории программирования. Предварительной математической подготовки не требуется. Материал частично или полностью может быть использован для самостоятельного изучения как книга "для первого чтения".
См. также
Содержание
Предисловие редактора серии
Круг вопросов 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