A Common Intermediate Language and its Use in Partitioning Concurrent Declarative Programs
Z. M. Ariola, B. C. Massey, M. Sarni, E. Tick
Committee:
Technical Report(Dec 1969)
Keywords:

The plethora of concurrent declarative language families, each with subtly different semantics, makes the design and implementation of static analyses for these languages a demanding task. However, many of the languages share underlying structure, and if this structure can be exploited, static analysis techniques can be shared across language families. These techniques can thus provide a common kernel for the implementation of quality compilers for this entire language class.

The purpose of this paper is to exploit the similarities of non-strict functional and concurrent logic languages in the design of a common intermediate language (CIL). The CIL is introduced incrementally, giving at each step the rationale for its extension. As an application, we present, in CIL form, some state-of-the-art static partitioning algorithms from the literature. This allows us to "uncover" the relative advantages and disadvantages of the analyses, and determine promising directions for improving static partitioning.

An earlier version of this paper was presented at the ICOT-NSF Workshop on ParalĀ­lel Logic Programming and its Programming Environments at the University of Oregon, Eugene, Oregon, March 1994 (proceedings available as UO CIS-TR-94-04). The curĀ­rent version was submitted to New Generation Computing for its Special Workshop Issue, August 1994.