Developing a translator from C programs to data flow graphs using RAISE
Anne E. Haxthausen · 2002
Describes how a translator from a subset of C to data flow graphs has been formally developed using the RAISE (Rigorous Approach to Industrial Software Engineering) method and tools. In contrast to many development examples described in the literature, this development is not a case study, but a real one, and it covers all development phases, including the code-generation phase. The translator is now one of the components of the LYCOS (LYngby CO-Synthesis) system, which is a software/hardware co-synthesis system under development at the Technical University of Denmark. The translator, together with the other components of LYCOS, provides a means for moving parts of C programs to dedicated hardware, thereby obtaining better performance. The translator was refined in steps, starting with an abstract specification and ending with a concrete specification from which C++ code was then automatically generated by the RAISE tools. In addition to illustrating the general methodology of RAISE, the paper also contributes with a specific method for refining set comprehensions.