我正在用C#编写lambda演算的解释器。到目前为止,我已经采用了以下几种解释方式。
此刻,在大多数我能测试的情况下,MSIL编译策略的速度要快一个数量级。但是,我正在通过确定通常在LC术语构建中使用的模式来优化术语重写器。到目前为止,我特别提出了一种方法,该方法提供了相对较小的加速:识别指数级应用程序。例如。 f (f (f (f x)))
简化为f^4 x
。然后,使用用于申请者指数相等的规则,即f^m (f^n x) = f^(m + n) x
。该规则特别适用于教会数字的取幂。
这种优化让我想知道:LC中是否还有其他基于模式的优化方法?