File: modlib_toc.html

package info (click to toggle)
eli-doc 4.4.0-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 13,256 kB
  • ctags: 4,583
  • sloc: makefile: 42
file content (216 lines) | stat: -rw-r--r-- 11,525 bytes parent folder | download
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.29
     from ../tnf/modlib.tnf on 12 Febuary 2003 -->

<TITLE>Introduction of specification modules - Table of Contents</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" BACKGROUND="gifs/bg.gif">
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0" VALIGN=BOTTOM>
<TR VALIGN=BOTTOM>
<TD WIDTH="160" VALIGN=BOTTOM><IMG SRC="gifs/elilogo.gif" BORDER=0>&nbsp;</TD>
<TD WIDTH="25" VALIGN=BOTTOM><img src="gifs/empty.gif" WIDTH=25 HEIGHT=25></TD>
<TD ALIGN=LEFT WIDTH="600" VALIGN=BOTTOM><IMG SRC="gifs/title.gif"></TD>
</TR>
</TABLE>

<HR size=1 noshade width=785 align=left>
<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0>
<TR>
<TD VALIGN=TOP WIDTH="160">
<h4>General Information</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="index.html">Eli: Translator Construction Made Easy</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="gindex_toc.html">Global Index</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="faq_toc.html" >Frequently Asked Questions</a> </td></tr>
</table>

<h4>Tutorials</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="EliRefCard_toc.html">Quick Reference Card</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="novice_toc.html">Guide For new Eli Users</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="news_toc.html">Release Notes of Eli</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="nametutorial_toc.html">Tutorial on Name Analysis</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="typetutorial_toc.html">Tutorial on Type Analysis</a></td></tr>
</table>

<h4>Reference Manuals</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ui_toc.html">User Interface</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="pp_toc.html">Eli products and parameters</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lidoref_toc.html">LIDO Reference Manual</a></td></tr>
</table>

<h4>Libraries</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lib_toc.html">Eli library routines</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="modlib_toc.html">Specification Module Library</a></td></tr>
</table>

<h4>Translation Tasks</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lex_toc.html">Lexical analysis specification</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="syntax_toc.html">Syntactic Analysis Manual</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="comptrees_toc.html">Computation in Trees</a></td></tr>
</table>

<h4>Tools</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lcl_toc.html">LIGA Control Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="show_toc.html">Debugging Information for LIDO</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="gorto_toc.html">Graphical ORder TOol</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="fw_toc.html">FunnelWeb User's Manual</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ptg_toc.html">Pattern-based Text Generator</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="deftbl_toc.html">Property Definition Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="oil_toc.html">Operator Identification Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="tp_toc.html">Tree Grammar Specification Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="clp_toc.html">Command Line Processing</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="cola_toc.html">COLA Options Reference Manual</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="idem_toc.html">Generating Unparsing Code</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="mon_toc.html">Monitoring a Processor's Execution</a> </td></tr>
</table>

<h4>Administration</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="sysadmin_toc.html">System Administration Guide</a> </td></tr>
</table>

<HR WIDTH="100%">
<CENTER>&nbsp;<A HREF="mailto:elibugs@cs.colorado.edu"><IMG SRC="gifs/button_mail.gif" NOSAVE BORDER=0 HEIGHT=32 WIDTH=32></A><A HREF="mailto:elibugs@cs.colorado.edu">Questions, Comments, ....</A></CENTER>

</TD>
<TD VALIGN=TOP WIDTH="25"><img src="gifs/empty.gif" WIDTH=25 HEIGHT=25></TD>

<TD VALIGN=TOP WIDTH="600">
<A HREF="modlib.ps"><IMG SRC="gifs/print.gif" ALT="Open Postscript File" BORDER="0" ALIGN=RIGHT></A>
<H1>Introduction of specification modules</H1>
<A NAME="IDX1"></A>
<P>
Eli provides a library of specification modules. Each module contains a
complete set of specifications that solve a single common task in language
implementation. If such a task is identified in the design of an
application specification, the module is simply
added to the application specification and used there.
Most modules solve a rather small task. They can be flexibly combined
to solve more complex problems.
<P>
<UL>
<LI>
 <A HREF="modlib_1.html#SEC1">Introduction of a running example</A>
<LI>
 <A HREF="modlib_2.html#SEC2">How to use Specification Modules</A>
<LI>
 <A HREF="name_toc.html">Name analysis according to scope rules</A>
<LI>
 <A HREF="prop_toc.html">Association of properties to definitions</A>
<LI>
 <A HREF="type_toc.html">Type analysis tasks</A>
<LI>
 <A HREF="input_toc.html">Tasks related to input processing</A>
<LI>
 <A HREF="output_toc.html">Tasks related to generating output</A>
<LI>
 <A HREF="adt_toc.html">Abstract data types to be used in specifications</A>
<LI>
 <A HREF="problems_toc.html">Solutions of common problems</A>
<LI>
 <A HREF="oldmod_toc.html">Migration of Old Library Module Usage</A>
</UL>
<P>
The first section introduces an example that is referred to
in the other sections to explain the use of modules in the context
of a language implementation task. The second section explains
how modules are obtained from the library and are related
to users' specifications. The remaining sections describe
sublibraries for a certain problem class each.
<P>
The section  <A HREF="oldmod_toc.html">Name Analysis Library of Name Analysis Library</A>, is a quick reference that helps
to migrate specifications using modules of previous versions
of this library.
<P>
This document may be used according to different strategies:
In order to become familiar with problem solving by using library
modules one can start with the running example of section  <A HREF="modlib_1.html#SEC1">Running Example</A>, and
extend it as described in the subsequent chapters.
One can also start with a particular problem in mind and then
search the corresponding chapter for a module that could be
used to solve it. The document can also be used as a reference manual
for the library modules. 
In any case it is recommended to read the introduction
of a chapter before using one of its modules.
<P>
The modules solve their task by providing specification fragments
to one or more Eli tools: Some are simply a C module, others
contain <CODE>.lido</CODE>, <CODE>.pdl</CODE>, <CODE>.ptg</CODE>, or references
to other library modules. The modules are designed such that
as few assumptions as possible have to hold in the user's part
of the specification where they are applied. E.g. <CODE>.lido</CODE>
fragments supplied by library modules are mapped to the particular
grammar of the user's specification by the inheritance construct of LIDO.
Modules described in the  <A HREF="adt_toc.html">Abstract Data Types of Abstract data types to be used in specifications</A>, section may also be used
directly in C modules or in stand-alone C programs.
<P>
Most modules in the library are generic, i.e. the names used in a
module can be modified by its instantiation. This facility allows to
use the same module for different purposes, e.g. a counter for
variables and another for procedures, or specify the element type of
a generic list type implementation. Instantiations also control the
combination of modules, e.g. association of properties to procedures and
to variables which might have different name spaces.
<A NAME="IDX2"></A>
<A NAME="IDX3"></A>
<A NAME="IDX4"></A>
<P>
This document describes the task that each module solves, its interface,
and how it can be applied in a user's specification. The descriptions
are illustrated using a running example introduced in the next section
(see  <A HREF="modlib_1.html#SEC1">Running Example</A>).
Complete executable specifications for that running example
are available in the directories <CODE>$/Name/Examples</CODE>
and in <CODE>$/Type/Examples</CODE>.
In general that information should be sufficient to use the modules.
A look at the module's text may help in special cases.
<P>
Users are encouraged to apply this design technique of decomposition
into specification modules to their application as well. The structure
of complex designs and their maintainability can thus be improved. The
resulting modules may be reused in other applications.
The techniques needed to instantiate user developed modules
are described in  <A HREF="modlib_2.html#SEC2">Instantiation and Use of Modules</A>.
<P>
This library will be extended by adding further modules that solve
common tasks. Hence, users are encouraged to contact their Eli 
distributor if a module for a task
that might be of general interest is missing, or if a solution for
such a task can be contributed.
<P>
<P>
<UL>
<LI><A NAME="SEC1" HREF="modlib_1.html#SEC1">Running Example</A>
<LI><A NAME="SEC2" HREF="modlib_2.html#SEC2">Instantiation and Use of Modules</A>
</UL>
<HR size=1 noshade width=600 align=left>
</TD>
</TR>
</TABLE>

</BODY></HTML>