Rie and Jun: Towards the generation of all compiler phases [chapter]

Masataka Sassa
1991 Lecture Notes in Computer Science  
A b s t r a c t Two compiler generators, both based on attribute grammars, have been used together in an attempt to generate almost all compiler phases. Pie is a compiler generator based on a one-pass attribute grammar called ECLR-attributed grammar [Sassa 87]. The generated compiler evaluates attributes in parallel with LR parsing. It can be used to generate one-pass compilers or the front-end of multipass compilers. Jun is a compiler generator which works on tree grammars. It is based on
more » ... ely recursive attribute grammars, a class of attribute grammars which allow circularities in attribute dependency [Farrow 86]. It overcomes the difficulty of circularities in the attribute dependency which often appear in data-flow equations of optimizers. The evaluator generated by Jun evaluates attributes on a tree, rather than a source program. This same formalism can be used to generate code generators and interpreters. So, the single Jun system can cover most of the compiler back-end. By combining both Rie and Jun, the generation of almost all compiler phases may be possible.
doi:10.1007/3-540-53669-8_74 fatcat:imlv4o63rjgfpc22za3rlmpite