This module performs the partial evaluation of a given expression, based on the natural semantics defined in [NatSem] and improved by Peemöller and Skrlac [PS14].
To ensure termination, the partial evaluator performs at most one unfolding step, where an unfolding step is either
Author: Björn Peemöller
Version: December 2018
pevalExpr
:: Options -> Prog -> Expr -> Expr
Partial evaluation. |
Partial evaluation. It is crucial that the free variables of the input expression directly correspond to the free variables of the output expression, as these may later be substituted by concrete arguments.
|