Национальный исследовательский ядерный университет «МИФИ»
Опубликован: 09.01.2004 | Доступ: свободный | Студентов: 3805 / 326 | Оценка: 4.02 / 3.77 | Длительность: 10:03:00
ISBN: 978-5-9556-0009-3
Самостоятельная работа 5:

Реализация категориальной абстрактной машины

< Лекция 13 || Самостоятельная работа 5
Аннотация: Цель: практически ознакомиться с принципами реализации категориальной абстрактной машины (КАМ) на основе примеров фрагментов реализации.

Теоретические сведения

Категориальная абстрактная машина - это математическая формализация компьютера на основе категориальной комбинаторной логики.

Состояния КАМ принадлежат пространству декартово замкнутых категорий (д.з.к.), важными свойствами которых являются тождественное преобразование, а также операции композиции, образования упорядоченной пары, взятия проекций, каррирования и аппликации.

Состояние категориальной абстрактной машины в произвольный момент времени характеризуется тройкой объектов:

<T,C,S>

где T - терм, C - код, S - стек или дамп.

Основными инструкциями КАМ являются следующие:

Fst Snd < , > e L ' car cdr
push swap cons app cur quote

SML-функции для первых двух из этих инструкций имеют вид:

fun Fst(x,_)=x;
fun Snd(_,y)=y;

Задание

Сформулируйте формальную постановку задачи, запишите правила вывода и реализуйте программу на SML в соответствии с вариантом исполнения.

Реализовав необходимые инструкции КАМ ( Fst, Snd, " < ", " > ", e, L, " ' ", car, cdr, push, swap, cons, app, cur, quote ), после преобразования в ламбда-выражение и КАМ-код, провести максимально возможное число шагов преобразования кода и при возможности вычислить значение терма:

  1. 4!
  2. 1+2+3+4
< Лекция 13 || Самостоятельная работа 5