Multi-Paradigm Programming through Graph Rewriting Progress Objectives: There has been much research into programming languages and systems which combine a number of programming paradigms, thus enabling different parts of a system to be developed using the most appropriate model in each case. Graph rewriting has been successful as a practical computational model for functional programming and has application to concurrent and logic languages as well. This project builds on this success for both sequential and parallel implementations. Progress: The aim of the project is to investigate techniques for practical implementation of multi-paradigm languages. However, the combination of different paradigms must be performed carefully so that the combined system has clear semantics. On the practical front, the project has developed a model known as Object Graph Rewriting (OGRe) which can be viewed as a system for rewriting a collection of graph terms or as a simple process calculus. The model has a natural concurrent implementation, but is also able to be implemented efficiently on sequential machines. Current experiments implement the language Facile, under development at ECRC, Munich, using Standard ML to compile to C via OGRe. Facile combines strict functional programming with explicit concurrency. Lazy functional programming is also being investigated. The theory of OGRe is being researched with emphasis on proving the correctness of implementations based on the model. It has been necessary to make a careful study of rewriting strategies in order to understand the interaction between the paradigms represented by the various languages in use. Foundational work on relative normalization has been performed with Zurab Khasidashvili, Research Associate on the project. Interim results from the project are available in the form of published academic papers and in prototype sequential implementations. ---------------------------------------------------------------------------- Back to John's Page