On the use of LISP in implementing denotational semantics

Abstract
Automatic compiler generators and semantics systems typically produce compilers which depend heavily on the mechanism of ~-reduction. This is particularly true of them systems based on de- notational romantic, since their descriptive nota- tious are bMmd on the A-calculus. Performing/kroductious is expeus/ve, however, and this is a primary reason for the extreme inef- ficiency of automaticaUy-pnerated compilers and the code they produce. Since LISP is in many respects sim~ar to the A-calculus, it seems a rea- sonable idea to generate compilers which rely on the LISP EVAL function rather than a ~-reducer. Then, the expensive simulation of p-reductious is avoided, and the efficiency of LISP is obtained. Unfortunately, moving to LISP is complicated by the fact that the generated compilers quite often depend on t jS-reducer's ability to part/a/It, evalu- ate an expression- a capability lacking in LISP. We have implemented s compiler generator called MESS which produces realistic and effi- cient compilers written in SGHEME. MESS pro- ceues modtdar denotational dcmcriptionm, and ex- ploits this modularity in order to avoid the de- pendence on partial evaluation. An added bene- fit of our approach is that the output of the gen- erated compilem can be directly processed by an automatically-generated table-driven code gener- ator. This makes it possible to obtain object code which compares favorably with that produced by hand-crafted compilers. Our results thub far are quite encouraging, as we are finding that the compilers generated by MESS are significantly more efficient and realis- tic than those produced by other systems.

This publication has 0 references indexed in Scilit: