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