Re: component-based programming and compiler construction (Uwe Assmann)
21 Mar 1996 23:48:47 -0500

          From comp.compilers

Related articles
Re: component-based programming and compiler construction (Jatin Bhateja, Noida) (2005-08-31)
component-based programming and compiler construction hamel@Think.COM (Lutz Hamel) (1996-03-15)
Re: component-based programming and compiler construction (1996-03-17)
Re: component-based programming and compiler construction (1996-03-21)
| List of all articles for this month |

From: (Uwe Assmann)
Newsgroups: comp.compilers
Date: 21 Mar 1996 23:48:47 -0500
Organization: INRIA
References: 96-03-101
Keywords: OOP

Lutz Hamel <hamel@Think.COM> writes:

|> I would be extremely interested to hear if anybody has used
|> component-based programming in compiler/interpreter construction.
|> For example, I could easily imagine the construction of a generic
|> tree-walker component which could then be used in a variety of places
|> in the same compiler as well as different compilers.

This was tackled in the Esprit projects COMPARE/PREPARE in the
compiler model CoSy. It contains a multiple-inheritance
interface/data description language (fSDL) which provides template
modules (functors) which can be applied to all objects in intermediate
representations. Functors do not only allow to reference of objects
in graphs (like C++ et al), but allow the multiple *extension* of
objects with graph link information. E.g. the basic block graph can
really be inlined in blocks instead of extern to the blocks. Hence
efficient graph traversal becomes possible which is necessary
especially for data-flow analysis.

fSDL is designed such that walkers over tree and graph structures can
be generated, also over partial graph structures described by {\em
domains}. Because the interaction of compiler parts (engines) is also
specified, code to supervise them can be generated. This supervisor
code may call certain walkers automatically. Example: when applying a
data-flow analysis to all procedures in a module, a walker over the
list of procedures can be automatically called which in turn starts
the data-flow procedural analyses.

After the end of the project 1995, CoSy is further developed and
marketed by ACE (
University of Saarbruecken constructed a CoSy prototype on which
several papers and masters theses were written. Look at Martin Alt's
home page (

M. Alt, G. Sander, R. Wilhelm:
Generation of Synchronization Code for Parallel Compilers
In M. Bruynoghe, J. Penjam, editors: 5th International Symposium on Programming Language
Implementation and Logic Programming. Lecture Notes in Computer Science 714, Springer Verlag, 1993

@InProceedings{ alt.94b,
    author = {Alt, M. and A\3mann, U. and van~Someren, H.},
    title = "{Cosy Compiler Phase Embedding with the CoSy Compiler Model}",
    booktitle = {Compiler Construction},
    series = lncs,
volume = 786,
    year = {1994},
    editor = {Fritzson, P. A.},
    pages = {278--293},
    publisher = springer,
    month = {April}

@InProceedings{ walters.94a,
    author = "H.R. Walters and J.F.Th. Kamperman and T.B. Dinesh",
    title = "An extensible language for the generation of parallel Data
Manipulation and Control Packages",
    editor = "P. Fritzson",
    number = "LiTH-IDA-R-94-11",
    series = "PELAB Research Reports",
    booktitle = "Proceedings of the Poster Session of Compiler
    year = 1994,
    organization = "Link{\"o}ping University"

@TechReport{ buhl.95a,
    author = {Buhl, Claus-Thomas},
    title = "{fSDL Language Report}",
    institution = "COMPARE Consortium",
    year = "1995"



Uwe Assmann
INRIA Rocquencourt, Bat. 13
Domaine de Voluceau BP 105
78153 Le Chesnay Cedex, France
email: fax: +33/39 63 53 30 tel: +33/1/39 63 53 84

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.