Using graph coloring in an algebraic compiler
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 a 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\). 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.
This page was built for publication: Using graph coloring in an algebraic compiler
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q1920231)