File: node5.html

package info (click to toggle)
kimwitu-doc 10a-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, sarge
  • size: 1,192 kB
  • ctags: 341
  • sloc: makefile: 166; yacc: 125; ansic: 40; lex: 18; sh: 2
file content (136 lines) | stat: -rw-r--r-- 5,248 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 98.1p1 release (March 2nd, 1998)
originally by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Introduction</TITLE>
<META NAME="description" CONTENT="Introduction">
<META NAME="keywords" CONTENT="tpman">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="STYLESHEET" HREF="tpman.css">
<LINK REL="next" HREF="node6.html">
<LINK REL="previous" HREF="node4.html">
<LINK REL="up" HREF="tpman.html">
<LINK REL="next" HREF="node6.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html179"
 HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
 SRC="/usr/share/latex2html/icons/next.png"></A> 
<A NAME="tex2html175"
 HREF="tpman.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
 SRC="/usr/share/latex2html/icons/up.png"></A> 
<A NAME="tex2html169"
 HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
 SRC="/usr/share/latex2html/icons/prev.png"></A> 
<A NAME="tex2html177"
 HREF="node4.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
 SRC="/usr/share/latex2html/icons/contents.png"></A> 
<A NAME="tex2html178"
 HREF="node58.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
 SRC="/usr/share/latex2html/icons/index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html180"
 HREF="node6.html">Input</A>
<B> Up:</B> <A NAME="tex2html176"
 HREF="tpman.html">The Term Processor Kimwitu</A>
<B> Previous:</B> <A NAME="tex2html170"
 HREF="node4.html">Contents</A>
<BR>
<BR>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION00050000000000000000">
Introduction</A>
</H1>
<DIV ALIGN="RIGHT">
<EM>When all else fails, read the manual. </EM>
<BR>
Anonymous.
</DIV>
<P>
In this document we describe a system that supports the construction of
programs that use <EM>trees</EM> or <EM>terms</EM> as their main data structure.
This system is a `meta'-tool in the development process of tools.
Its <EM>input</EM> is an abstract description of terms, annotated with
implementation directives, plus a description of functions on
these terms.
The <EM>output</EM> consists of a number of C-files that contain data structure
definitions for the terms, a number of standard functions on those terms,
and a translation (in C) of the function definitions in the input (e.g.
term rewriting).
The standard functions can be used to create terms, compare them for
equality, read and write them on files in various formats
and do manipulations like list
concatenation.

<P>
This document is organised as follows.
In Section&nbsp;<A HREF="node6.html#sec:input">1</A> we describe the input format of the term processor<A NAME="tex2html1"
 HREF="footnode.html#foot94"><SUP>1</SUP></A>.
In Section&nbsp;<A HREF="node15.html#sec:output">2</A> we describe the output of the system:
the C types and functions, the files, etc.
Section&nbsp;<A HREF="node22.html#sec:running">3</A> goes into the details of running the system, and the relation with other
software development tools, such as the Unix tools <I>make</I>, <I>yacc</I>, <I>lex</I>, <I>lint</I>
and the  Synthesizer Generator (SG)[<A
 HREF="node57.html#csg:sigplan">TR84</A>,<A
 HREF="node57.html#csg:refman">TR89b</A>,<A
 HREF="node57.html#csg:book">TR89a</A>].
<A NAME="1341">&#160;</A>
<A NAME="103">&#160;</A>
Section&nbsp;<A HREF="node28.html#sec:cook">4</A> discusses various techniques in which
programs can be written over terms, and thus gives examples of the concept
of <EM>multi-paradigm programming</EM>.
Finally, Section&nbsp;<A HREF="node36.html#sec:design">5</A> motivates some of the design decisions of our system.

<P>
Some reading knowledge of the C programming language and associated tools is assumed.

<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html179"
 HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
 SRC="/usr/share/latex2html/icons/next.png"></A> 
<A NAME="tex2html175"
 HREF="tpman.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
 SRC="/usr/share/latex2html/icons/up.png"></A> 
<A NAME="tex2html169"
 HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
 SRC="/usr/share/latex2html/icons/prev.png"></A> 
<A NAME="tex2html177"
 HREF="node4.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
 SRC="/usr/share/latex2html/icons/contents.png"></A> 
<A NAME="tex2html178"
 HREF="node58.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
 SRC="/usr/share/latex2html/icons/index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html180"
 HREF="node6.html">Input</A>
<B> Up:</B> <A NAME="tex2html176"
 HREF="tpman.html">The Term Processor Kimwitu</A>
<B> Previous:</B> <A NAME="tex2html170"
 HREF="node4.html">Contents</A>
<!--End of Navigation Panel-->
<ADDRESS>
<I></I>
<BR><I>2000-04-17</I>
</ADDRESS>
</BODY>
</HTML>