Practical Static Mode Analyses of Concurrent Logic Languages
Evan Tick
Committee:
Technical Report(Dec 1969)
Keywords:

One popular approach to improving the performance of fine-grain concurrent lanĀ­guages is to partition programs into threads. This requires static analysis to determine dependencies between tasks, to avoid placing a cycle within a thread. In the context of concurrent logic programming (CLP) languages, dependency analysis requires mode analysis. Simple argument modes are insufficient because dependencies can be hidden within complex terms. One solution is path analysis. In this paper we first motivate the analysis with performance results from our experimental FGHC-to-C compiler that sequentializes entire concurrent FGHC programs into C programs. We then review Ueda and Morita's proposed rational-tree mode propagation method, and present three novel algorithms for realizing the technique. We present empirical measurements of the analysis times of a benchmark suite which indicate that the analysis can be comparable to the compilation time on a simple, non-optimizing compiler. This study presents the first empirical results concerning the practicality of mode analysis for CLPs in conjunction with a system using the information to achieve significant speedups of source programs.