Removing value encoding using alternative values in partial evaluation of strongly-typed languages [chapter]

Denis Bechet
1996 Lecture Notes in Computer Science  
There is a main difference between a program which is interpreted by an interpreter written in a strongly-typed language and a compiled version. Such an interpreter usually uses a universal domain for the values it manipulates. A value encoding is necessary. A compiled program works directly on values. A layer of interpretation for value representation is inserted. On the other hand, a way to derive automatically a compiler from an interpreter is to use a partial evaluator applied to the
more » ... eter and the interpreted program. This leads to a problem when we want that this technique removes all the layer of interpretation because value encoding must disappear. It is not the case for conventional partial evaluator. This paper proposes to introduce a new domain for partial evaluators called alternative values and a new algorithm of specialization (based on events) which can solve this problem of removing value encoding. We conclude by reporting a successful specialization of an interpreter written in a strongly-typed language by the partial evaluator LaMix which is based on those ideas.
doi:10.1007/3-540-61055-3_30 fatcat:sgy2rn7cv5eyjppfxozrhf3adq