我在寻找一个简单的演算,支持推理反射,即内省和正在运行的程序的操作。
是否存在未类型化的微积分扩展,从而使人们可以将λ-项转换为可以在语法上进行处理然后进行评估的形式?
我认为微积分有两个主要附加术语:
- :取 v和产生的表示 v易于进行句法操纵。
- :对一个术语进行句法表示并对其进行评估。
为了支持反思,需要术语的句法表示。它看起来像:
- 将被表示为术语(大号阿中号 - [R (ë )),其中 [R (é )是的反射版本 ë,
- 将被表示为项(A P P R (e )R (e ')),并且
- 将被表示为(V A R x )。
通过这种表示,模式匹配可用于操纵术语。
但是我们遇到了一个问题。和Ë v 一个升需要被编码为术语一样,模式匹配。添加R E F L E C T,E V A L和M A T C H似乎很简单,但是我是否需要添加其他术语来支持对它们的操纵?
有一些设计选择。应该采取什么函数上文提到做的主体- [R ë ˚F 升È Ç 吨和Ë v 一个升?是否应[R (- )变换身体或没有?
由于我对研究反射本身不太感兴趣-微积分可以用作其他研究的载体-我不想重新发明轮子。
是否有任何与我刚才描述相符的结石?
据我所知,注释中建议的诸如MetaML之类的演算可以走很长一段路,但它们不包括模式匹配和解构已经构建的代码片段的功能。
我想做的一件事是:
然后对结果执行模式匹配以构建完全不同的表达式。
这当然不是对微积分的保守扩展,并且元理论可能很丑陋,但这是我的应用的重点。我想分开λ-抽象。