Testing completeness of code selector specifications
The tree pattern matching approach for code selection has proven very successful. This paper presents an algorithm to test the completeness of a code selector specification. A specification is said to be complete, if it can produce code for every possible intermediate code tree produced by the front end.
To enable a code generator generator to test the completeness property current code selector descriptions have to be extended to describe the set of possible intermediate code trees. We use a tree grammar for this purpose. The paper first presents the algorithm for testing completeness. Afterwards implementation techniques are discussed. Finally results of practical experiments using the algorithm are given.
- [Cha87]D.R.Chase: An Improvement to Bottom-up Tree Pattern Matching, POPL87, Munich, Germany, January 1987Google Scholar
- [ESL89]H.Emmelmann, F-W.Schröer, R.Landwehr: BEG — a Generator for Efficient Back Ends, Proc. of the Sigplan'89 Conference on Programming Language Design and Implementation, Sigplan Notices, Vol. 24, Number 7, July 1989Google Scholar
- [FeSe92]Ferdinand, Seidl and Wilhelm Tree automata for code selection, Proceedings of the Code'91 workshop on code generation, Workshops in Computing, Springer 1992Google Scholar
- [GiSchm88]R.Giegerich, K.Schmal: Code selection techniques: pattern matching, tree parsing and inversion of derivors, ESOP '88, LNCS 300, pp. 247–268, March 1988Google Scholar
- [Gie90]R. Giegerich: Code Selection by Inversion of Order-Sorted Derivors, Theoretical Computer Science 73 (1990), pp. 177–211Google Scholar
- [HaCh86]P.J. Hatcher, T.W. Christopher: High-Quality Code Generation Via Bottom-Up Tree Pattern Matching, Proceedings 13th ACM Symposium on Principles of Programming Languages pp. 119–130, 1986Google Scholar
- [HoDo82]C. Hoffmann, J. O'Donnell: Pattern Matching in Trees, Journal of the ACM Vol. 29, No. 1, January 1982, pp. 68–95Google Scholar
- [MöWe86]Möncke, Weisgerber, R. Wilhelm Generative support for transformational programming. ESPRIT: Status Report of Continuing Work, Elsevier Sc., 1986, BrusselsGoogle Scholar