Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Кодирование по де Брейну




Компиляция в коды абстрактных машин.

ФЯ→λ-выражение→код де Брейна→категориальная комбинаторная логика

код категориальных абстрактных машин (КАМ-код)

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

Пусть есть λ-выражение S и связное вхождение в него переменной х. Построим дерево разбора выражения S.

Глубиной связывания вхождения переменной х называется число λ-узлов дерева разбора между вхождением переменной и ее связыванием.

Пример.

λх.+х1 глубина связывания х равна 0.

λх.λу.+ху глубина связывания х равна 1, глубина связывания у равна 0.

λх. +х((λу.+ух)2)

0↑ 0↑1↑

Обозначение:

1. Заменим имена переменных на их глубину связывания, такие числа называются числами де Брейна.

Глубина связывания переменных обозначается n- число де Брейна. n.

xi→ n

2. const c →’c

3. MN = S(M,N)-аппликация

4. λ.M = Λ(М) - λ-абстракция.

Примеры кодирования по де Брейну:

1. λх.λу.((+х)у) →Λ(Λ(S(S(’+,1),0)))

@ @↑

2. (λх.+((λх.x)3)x)4→S(Λ(S(S(’+,S(Λ(0),’3)), 0)),’4).

 

 

Вычисления по де Брейну: преобразования в соответствии с формализмами Де Брейна.

Замена: λ ~ Λ(), аппликация ~ S(,), n ~ n.

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

1)Пустая среда () - есть среда,

2)если ρ - среда, х - переменная, то пара (ρ,х) есть среда

3) других сред нет.

Для хранения переменных используется среда.

Есть два способа получить значение переменной из среды:

- по имени

- по номеру (Fst,Snd).

По соглашению - среда конечна.

Среда наращивается справа. Самая внешняя переменная имеет 0-е значение числа

Де Брейна.

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

Среда - упорядоченное множество пар “ переменная, значение”.

 

Кодирование в среде (ρ):

Шаг кодирования

const

[c] ρ→c - константа, вычисленная в среде равна самой себе => 0(ρ, d) = d

среда

↓переменная n+1(ρ,d) = nρ

[x]ρ→ ρ(x) - х – переменная, ρ(x) - ее значение в среде ρ.

[(MN)] ρ→(([M] ρ)([N] ρ))

[λх.М]ρ→[M](ρ,x)

новая среда

Предполагается, что если в выражении есть свободные переменные, то они

явным образом находятся в среде.

 

Алгоритм преобразования λ-выражений по де Брейну.

1. Избавляемся от свободных переменных путем их абстрагирования в поряд-

ке, заданном средой.

2. Рекурсивно выполняем шаг алгоритма кодирования λ-терма в среде.

3. Отбрасываем символы λ, приписанные на первом шаге.

Пример.

λх.+ху ((),у) - среда.

Шаги:

1. λу.λх.+ху

2. Λ(Λ(S(S(’+, 0), 1)))

3. Λ(S(S(’+, 0), 1))

λх.+ху (((),у),z) - среда

λz.λх.+ху

λу.λz.λх.+ху

λ.λ.λ.+ 02

λ.+ 02

Λ(S(S(’+, 0), 2))

 

Семантические равенства для кодов де Брейна:

0 (х,у) = у

n+1 (х,у) = n х

(’x)y = x

S(x,y)z = xz(yz)

Λ(x)yz = x(y,z) - каррирование, т.е. преобразование функции от двух аргументов в функцию от первого аргумента, задающую функцию от второго аргумента

.

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

Пара из терма Де Брейна и среды, в которой он рассматривается, называется кодом

Де Брейна.

Вычислять мы можем только код Де Брейна. Вычисление терма в отрыве от среды невозможно.

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

Композицией функций х и у - называется функция (х○у): (х○у)z = x(yz)

 

Соглашение о композиции: А○В = ВА. Если ”+” - машинная команда вида Λ(+○ Snd)

(из ’M= Λ(+○ Snd)) ↑аппликация

Уравнения, описывающие семантику, называются семантическими:

Семантические равенства с учетом среды: Без учета среды:

||0!||(ρ,d) = d ||0!|| = 0!

||(n+1)!||(ρ,d) = ||n!|| ρ ||n|| = n!

||c|| ρ = c ||c|| = ’c

||MN|| ρ = ||M|| ρ(||N|| ρ) ||MN|| = App○<||M||, ||N||>

||λx.M|| ρ = ||M||(ρ,x) ||λ.M|| = Λ||M||

Snd○Fstn = n! App○<A, B> = S(A,B)

Вычисления с использованием семантических равенств:

Пусть Q - l-терм:

1) применение к Q формализма Де Брейна;

2) преобразование правой части равенства с помощью семантических равенств

После того как терм Q приведен к окончательному виду по Де Брейну, его с помощью семантических равенств вычисляют путем приложения к среде (с помощью категориальных операторов).

 




Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 702; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.