3 <!-- This HTML file has been created by texi2html 1.54
4 from suif1.texi on 28 April 1999 -->
6 <TITLE>The SUIF Version
1 Library - Trees
</TITLE>
7 <link href=
"suif1_11.html" rel=Next
>
8 <link href=
"suif1_9.html" rel=Previous
>
9 <link href=
"suif1_toc.html" rel=ToC
>
13 <p>Go to the
<A HREF=
"suif1_1.html">first
</A>,
<A HREF=
"suif1_9.html">previous
</A>,
<A HREF=
"suif1_11.html">next
</A>,
<A HREF=
"suif1_113.html">last
</A> section,
<A HREF=
"suif1_toc.html">table of contents
</A>.
17 <H1><A NAME=
"SEC10" HREF=
"suif1_toc.html#TOC10">Abstract Syntax Trees
</A></H1>
25 Procedure bodies are represented using a language-independent form of
26 abstract syntax trees (ASTs). In high-SUIF code, the trees contain
27 nodes corresponding to the high-level control structures in the source
28 program. When the code is expanded to the low-SUIF form, these
29 high-level constructs are replaced and the trees degenerate to lists of
34 SUIF is not restricted to handling programs with structured control
35 flow. Even in high-SUIF code, low-level branch and jump instructions
36 may be used to represent unstructured control flow. However, since most
37 high-level transformations are only applied to structured code, the
38 high-level AST nodes are only used for structured code. This makes it
39 easy to identify and optimize regions of code with structured control
44 The files
<TT>`trees.h'
</TT> and
<TT>`trees.cc'
</TT> contain the code for tree
45 nodes and tree node lists.
50 <LI><A HREF=
"suif1_11.html#SEC11">Tree Nodes
</A>: Basic tree objects.
51 <LI><A HREF=
"suif1_20.html#SEC20">Tree Node Lists
</A>: Lists of tree nodes.
52 <LI><A HREF=
"suif1_21.html#SEC21">Mapping Subtrees
</A>: Applying functions to nodes in a subtree.
56 <p>Go to the
<A HREF=
"suif1_1.html">first
</A>,
<A HREF=
"suif1_9.html">previous
</A>,
<A HREF=
"suif1_11.html">next
</A>,
<A HREF=
"suif1_113.html">last
</A> section,
<A HREF=
"suif1_toc.html">table of contents
</A>.