Abstract.
An algebraic compiler allows incremental development of the source program and builds its target image by composing the target images of the program components. In this paper we describe the general structure of an algebraic compiler focusing on compositional code generation. We show that the mathematical model for register management by an algebraic compiler is a graph coloring problem in which an optimally colored graph is obtained by composing optimally colored subgraphs. More precisely, we define the clique-composition of graphs \(G_1\) and \(G_2\) as the graph obtained by joining all the vertices in a clique in \(G_1\) with all the vertices in a clique in \(G_2\) and show that optimal register management by an algebraic compiler is achieved by performing clique-composition operations. Thus, an algebraic compiler provides automatically adequate clique separation of the global register management graph. We present a linear-time algorithm that takes as input optimally colored graphs \(G_1\) and \(G_2\) and constructs an optimal coloring of any clique-composition of \(G_1\) and \(G_2\). Motivated by the operation of clique-composition, we define the class of clique-composable graphs as those graphs that can be iteratively built from single vertices using the clique-composition operation. We show that the class of clique-composable graphs coincides with the well-known class of chordal graphs.
Similar content being viewed by others
Author information
Authors and Affiliations
Additional information
Received: 11 May 1995 / 30 November 1995
Rights and permissions
About this article
Cite this article
Rus, T., Pemmaraju, S. Using graph coloring in an algebraic compiler . Acta Informatica 34, 191–209 (1997). https://doi.org/10.1007/s002360050079
Issue Date:
DOI: https://doi.org/10.1007/s002360050079