|
Abstract : |
To implement lazy functional languages efficiently it is necessary for a compiler analyse many properties of the program. Analysis techniques proposed to support such implementations have a similar structure and each analysis is of sufficient complexity that it requires a significant body of research to exploit to the full. We present flow graphs as a formal framework to support the different program analysis and synthesis techniques providing the structure for such a compiler. We have formally specified a compiler for a lazy functional language and have also implemented it. The compiler accepts a simple functional language as input and generates C. In this paper we discuss the essentials of the formal specification and present performance figures that demonstrate the efficiency of the compiler and of the code generated for a suite of medium size benchmark programs. 1, |