Эта статья требует дополнительных ссылок для проверки . ( декабрь 2012 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
Категорична абстрактная машина ( CAM ) представляет собой модель вычислений для программ [1] , сохраняющих способности аппликативном, функциональной или композиционной стиле. Он основан на методах прикладных вычислений .
Обзор [ править ]
Понятие категориальной абстрактной машины возникло в середине 1980-х годов. Он занял свое место в информатике как своего рода теория вычислений для программистов, представленная декартовой закрытой категорией и встроенная в комбинаторную логику . CAM - это прозрачное и надежное математическое представление языков функционального программирования. Машинный код можно оптимизировать, используя формулу теории вычислений по уравнениям. Используя CAM, можно эмулировать различные механизмы вычислений, такие как рекурсия или ленивое вычисление , а также передачу параметров, таких как вызов по имени , вызов по значению и т. Д. Теоретически CAM сохраняет [как? ]все преимущества объектного подхода к программированию или вычислениям.
Основная текущая реализация - это OCaml, который добавил наследование классов и динамическую отправку методов в Caml, категориальный абстрактный машинный язык, это варианты MetaLanguage ML, отличающиеся выводом типов.
Реализация [ править ]
Один из подходов к реализации функциональных языков дается механизмом на основе суперкомбинаторов или SK-машиной Д. Тернера. Понятие CAM предлагает альтернативный подход. Структура CAM состоит из синтаксической, семантической и вычислительной составляющих. Синтаксис основан на нотации де Брейна , которая преодолевает трудности использования связанных переменных. Оценки аналогичны оценкам аппарата SECD П. Ландина . Благодаря такому охвату CAM дает прочную основу для синтаксиса, семантики и теории вычислений . Это понимание возникает под влиянием функционального стиля программирования.
См. Также [ править ]
- Комбинаторная логика
- Типизированное лямбда-исчисление
- Декартова закрытая категория
- Аппликативные вычислительные системы
- Анонимная рекурсия
- Стратегия оценки
- Явная подстановка
- Расчет комбинатора SKI
- Unlambda
- Каррирование
- Caml
Ссылки [ править ]
- ^ Кузино Г., Куриен П.-Л., Мони М. Категориальная абстрактная машина. - LNCS, 201, Функциональные языки программирования, архитектура ЭВМ. - 1985, стр. ~ 50-64.
Дальнейшее чтение [ править ]
- Вольфенгаген, В. Е. Комбинаторная логика в программировании : вычисления с объектами с помощью примеров и упражнений . 2-е изд. М .: ООО "Центр ЮрИнфоР", 2003. x + 337 с. ISBN 5-89158-101-9 .