Категориальная абстрактная машина - Categorical abstract machine

В категориальная абстрактная машина (CAM) это модель вычисления для программ[1] который сохраняет возможности аппликативного, функционального или композиционного стиля. В его основе лежат техники прикладные вычисления.

Обзор

Понятие категориальной абстрактной машины возникло в середине 1980-х годов. Он занял свое место в информатике как своего рода теория вычислений для программистов в лице Декартова закрытая категория и встроен в комбинаторная логика. CAM - это прозрачное и надежное математическое представление языков функционального программирования. Машинный код может быть оптимизирован с использованием эквациональной формы теории вычислений. Используя CAM, различные механизмы вычислений, такие как рекурсия или ленивая оценка можно эмулировать, а также передачу параметров, например позвонить по имени, вызов по значению, и так далее. Теоретически CAM сохраняет[Как? ] все преимущества объектного подхода к программированию или вычислениям.

Основная текущая реализация - OCaml, которая добавила наследование классов и отправку динамических методов в Caml категориальный абстрактный машинный язык, это варианты MetaLanguage ML примечателен выводом типов.

Реализация

Один из подходов к реализации функциональных языков дается машиной, основанной на суперкомбинаторы, или СК-машина Д. Тернера. Понятие CAM предлагает альтернативный подход. Структура CAM состоит из синтаксической, семантической и вычислительной составляющих. Синтаксис основан на de Bruijn’s обозначение, который преодолевает трудности использования связанных переменных. Оценки аналогичны оценкам П. Ландина Машина SECD. Благодаря этому CAM дает прочную основу для синтаксиса, семантики и теория вычислений. Это понимание возникает под влиянием функционального стиля программирования.

Смотрите также

использованная литература

  1. ^ Кузино Г., Куриен П.-Л., Мони М. Категорическая абстрактная машина. - LNCS, 201, Функциональные языки программирования, архитектура ЭВМ. - 1985, стр. ~ 50-64.

дальнейшее чтение

  • Вольфенгаген, В. Комбинаторная логика в программировании: Вычисления с объектами с помощью примеров и упражнений. 2-е изд. М .: ООО "Центр ЮрИнфоР", 2003. x + 337 с. ISBN  5-89158-101-9.