Категориальная абстрактная машина (КАМ).

 

КАМ состоит из трех регистров: два стека (код и стек) и регистр терм.

Код Стек

       
   


Терм

               
       
 
     
 
 
     
 
 

 

 


И элементы стека, и элементы терма - символьные выражения, в них могут размещаться структуры символьных данных.

В начале программа в виде кода содержится в стеке ''кода'', ''стек'' пуст.

В конце «код» пуст, в “ терме ” содержится результат. Правила перехода из состояния в состояние определяются набором инструкций машины.

Определение.

Состоянием машины называется тройка <T,C,S>, гдеT-терм как структурированное значение, например граф; C- код; S - стек или дамп (вспомогательная память).

Закон функционирования КАМ изменяет старую тройку на новую: <T, C, S>→<T|,C|,S|>.

Входной язык КАМ: <,>;Fst; Snd; Λ; ’; (,); app

КАМ – это вариант КЛ, вовлекающий ДЗК, а также техническое устройство, вычисляющее значение выражений.

Средства КЛ имеют категориальный характер, т.е. в категориях используются композиции и тождества, в декартовых категориях дополнительно вводят произведение с использованием спаривания < , > , а также проекции Snd и Fst. Декартовы замкнутые категории дополнительно содержат каррирование Λ, апплицирование и средства экспонирования, т.е. средства построения функциональных правил.