Related articles |
---|
AST for several modules Andreas.Ames@Tenovis.com (Andreas Ames) (2000-06-10) |
Re: AST for several modules idbaxter@semdesigns.com (Ira D. Baxter) (2000-06-14) |
Re: AST for several modules rod.bates@wichita.boeing.com (Rodney M. Bates) (2000-06-14) |
Re: AST for several modules cfc@world.std.com (Chris F Clark) (2000-06-14) |
Re: AST for several modules iank@idiom.com (2000-06-14) |
Re: AST for several modules danwang+news@cs.princeton.edu (Daniel C. Wang) (2000-06-20) |
Re: AST for several modules Andreas.Ames@Tenovis.com (Andreas Ames) (2000-06-20) |
Re: AST for several modules joachim.durchholz@halstenbach.com.or.de (Joachim Durchholz) (2000-06-20) |
[1 later articles] |
From: | "Ira D. Baxter" <idbaxter@semdesigns.com> |
Newsgroups: | comp.compilers |
Date: | 14 Jun 2000 12:33:18 -0400 |
Organization: | Posted via Supernews, http://www.supernews.com |
References: | 00-06-038 |
Keywords: | parse |
Building ASTs for more than one module isn't hard; simply assemble the
mechanisms for building ASTs for each module type. What is hard about
this is a) simply having parsers for all the dialects of interest in
real system, and b) handling the scale of interesting systems
(millions of lines).
If these are all in the same language, then the "flow analysis"
problem turns into an interprocedural flow analysis problem. There's
lots of research into this. A good place to start is any set of ACM
POPL proceedings.
There is little published research in doing this for different
languages in the same system, but the basic principles for
interprocedural flow analysis seems much the same: compute summary
information on a per-procedure (module) basis, and then use that to
improve analyses of individual modules.
We are tackling these problems with the DMS Reengineering Toolkit,
(see http://www.semdesigns.com/Products/DMS/DMSToolkit.html). which
has a) parsers for a variety of conventional langauges, and b) storage
capacity (proven to 2 million lines of Java on a W/NT workstation)
backed up by computational capacity (DMS is implemented in a parallel
programming langagues, and its attribute evaluators are automatically
executed in parallel).
--
Ira Baxter, Ph.D., CTO idbaxter@semdesigns.com 512-250-1018x140
Semantic Designs, Inc., www.semdesigns.com FAX 512-250-1191
12636 Research Blvd #C214, Austin, Texas 78759
Andreas Ames <Andreas.Ames@Tenovis.com> wrote in message
>
> Till now I only know about descriptions how to build ASTs for single
> modules for programming languages like C, assembler etc. I wonder if
> somebody could give me some hints about how to parse and build a
> single ( or several connected ) ASTs for several modules/files,
> e. g. for a whole program or software system. Do you know about
> books or online documents concerning this topic? If one can build a
> single AST from several modules, are then the normal techniques for
> data and control flow analysis efficently applicable?
Return to the
comp.compilers page.
Search the
comp.compilers archives again.