Oct. 31st, 2012

Ранее мы обозначили проблему декодирования результатов работы нашей системы (см. "Компиляция λ-выражений"). Это не новая проблема: "readback" известен своей сложностью в рамках темы оптимальной редукции, и едва ли не треть монографии на данной теме уделена "readback". Чтобы продолжить разработку нашего симулятора, нам потребуется разумное решение, которое бы подходило для нашей слепой стековой машины.

Напомним, что ранее мы ограничили множество λ-термов до λI-исчисления, чтобы упростить их компиляцию. Взамен мы получили право забыть об агентах ε, при этом не пожертвовав выразительными возможностями языка с точки зрения частичных рекурсивных функций. Теперь же мы дополнительно затребуем от вычисляемых выражений отсутствие свободных переменных. Это немного упростит "readback", избавив нас от рассмотрения особых случаев.

Итак, мы предполагаем некоторый λΙ-комбинатор. Головная нормальная форма λI-комбинатора всегда имеет вид λx1.…λxn.xi M1 … Mm, где m ≥ 0, n > 0, 0 < i < n. С точки зрения представлений в виде графов, подобных оптимальной редукции, - в том числе и в нашей системе слепой перезаписи - это, в частности, означает, что при условии наличия головной нормальной формы (в противном случае результат нас не интересует из-за бессмысленности выражения) становится возможным "readback" в виде следующей системы взаимодействия с побочными действиями:

Σ = {(ε, 0), (γ, 2), (ψ, 2), (c, 1), (@l, 2), (@r, 2)} ∪ {(xi, 0) | i ∈ N} ∪ {(λi, 1) | i ∈ N};

λii(ε)] >< xj + "xj";
λi[a] >< γ[λi + 1(c(a)), xi] + "(λxi.";
xi >< ψ[xi, xi];
xi >< γ[a, @l(xi, a)];
λ[a] >< @l[λ(@r(b, a)), b] + "(";
λ[a] >< c[λ(a)] + ")";
λ[ε] >< @r[λ(c(a)), a] + " ".

Нетрудно проверить, что такое "readback"-взаимодействие не зависит от симуляции основной системы. Таким образом, выполнять "readback" можно даже по мере редукции, не дожидаясь ее завершения.

Profile

Anton Salikhmetov

November 2018

S M T W T F S
    123
45678 910
11121314151617
18192021222324
252627282930 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 3rd, 2025 10:57 am
Powered by Dreamwidth Studios