ЮрИнфоР >>> Библиотека ЮрИнфоР >>> Компьютерные науки и информационные технологии >>>

Комбинаторная логика в программировании: Вычисления с объектами в примерах и задачах

ISBN 5-89158-101-9
2003. 342 c. В721
ББК 32.97
УДК 004
Твердый переплет.
Цена 1
160
Цена 2
390
Цены действительны до
21.11.2024
Цена 1 с учетом НДС
Цена 2 с учетом почтовых расходов по РФ и НДС.
ПОЛОЖИТЬ В КОРЗИНУ
ПОЛОЖИТЬ В КОРЗИНУ
Вольфенгаген В.Э.
Изд. 2-е.

Изложен основной круг задач, сводимых к исчислению объектов - "от простого к сложному". Конкретный вариант исчисления выбирается в зависимости от решаемых задач. В ходе последовательного решения задач читатель овладевает основными методами и средствами комбинаторной логики и лямбда-исчисления. Все задачи снабжены подробными и элементарными решениями.

Для студентов старших курсов и аспирантов, изучающих математические основы объектно-ориентированных вычисления, начинающих и профессионально работающих над продвинутыми проектами программистов. Может быть использована в курсах дискретной математики, информатики, теории программирования. Предварительной математической подготовки не требуется. Материал частично или полностью может быть использован для самостоятельного изучения как книга "для первого чтения".


См. также

Дополнительные учебно-методические материалы и компьютерные обучающие средства (практикумы, активные книги)


Содержание

Предисловие редактора серии

Special Preface

Круг вопросов 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