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 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320
|
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on May, 22 2008 by texi2html 1.64-gnat-1 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
Olaf Bachmann <obachman@mathematik.uni-kl.de>
and many others.
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
-->
<HEAD>
<TITLE>ASIS-for-GNAT User's Guide: About This Guide</TITLE>
<META NAME="description" CONTENT="ASIS-for-GNAT User's Guide: About This Guide">
<META NAME="keywords" CONTENT="ASIS-for-GNAT User's Guide: About This Guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="texi2html 1.64-gnat-1">
</HEAD>
<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
<A NAME="SEC1"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top"> < </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_1.html#SEC2"> > </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_15.html#SEC56">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<A NAME="About This Guide"></A>
<H1> About This Guide </H1>
<!--docid::SEC1::-->
<P>
This guide has two aims. The first one is to introduce you to the Ada Semantic
Interface Specification (ASIS) and show you how you can build various useful
tools on top of ASIS. The second is to describe the ASIS implementation
for the GNAT Ada compiler.
</P><P>
GNAT implements both Ada 95 and Ada 2005.
As of January 2008, the ASIS standard is specific to Ada 95 and has not yet
been updated to Ada 2005.
Notwithstanding the status of the ASIS standard, ASIS-for-GNAT includes
extensions that account for the new Ada 2005 functionality.
You can therefore use ASIS-for-GNAT for Ada 2005 programs, keeping in mind
that the Ada 2005-specific support may subsequently change as work on updating
the ASIS standard proceeds.
</P><P>
For further information on ASIS-for-GNAT and Ada 2005, please refer to the
auxilliary documents <TT>`asis-2005-transition.txt'</TT> and
<TT>`features-asis2005'</TT> in the ASIS source directory.
</P><P>
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="asis_ug_1.html#SEC2">What This Guide Contains</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="asis_ug_1.html#SEC3">What You Should Know Before Reading This Guide</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="asis_ug_1.html#SEC4">Related Information</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="asis_ug_1.html#SEC5">Conventions</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
</TABLE></BLOCKQUOTE>
<P>
<A NAME="What This Guide Contains"></A>
<HR SIZE="6">
<A NAME="SEC2"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_1.html#SEC1"> < </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_1.html#SEC3"> > </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_15.html#SEC56">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> What This Guide Contains </H2>
<!--docid::SEC2::-->
<P>
This guide contains the following chapters:
<UL>
<LI>
<A HREF="asis_ug_2.html#SEC6">1. Introduction</A>, contains the general definition of ASIS and gives some
examples of tools which can be built on top of ASIS.
<P>
<LI>
<A HREF="asis_ug_3.html#SEC9">2. Getting Started</A>, contains a short guided tour through the
development and use of ASIS-for-GNAT-based tools.
<P>
<LI>
<A HREF="asis_ug_4.html#SEC16">3. ASIS Overview</A>, gives an overview of ASIS, allowing
an ASIS newcomer to navigate through the ASIS definition
(readers already familiar with ASIS can skip this section).
<P>
<LI>
<A HREF="asis_ug_5.html#SEC24">4. ASIS <CODE>Context</CODE></A>, defines the ASIS <CODE>Context</CODE> concept in
ASIS-for-GNAT and explains how to prepare a set of Ada
components to be processed by an ASIS application.
<P>
<LI>
<A HREF="asis_ug_7.html#SEC44">6. ASIS Application Templates</A>, describes a set of Ada source components
provided by the ASIS-for-GNAT distribution that may be used as a basis for
developing ASIS applications.
<P>
<LI>
<A HREF="asis_ug_8.html#SEC45">7. ASIS Tutorials</A>, describes some examples included in
the ASIS-for-GNAT distribution.
<P>
<LI>
<A HREF="asis_ug_9.html#SEC46">8. How to Build Efficient ASIS Applications</A>, describes how to
deal with "tree swapping", a potential performance issue with ASIS
applications.
<P>
<LI>
<A HREF="asis_ug_10.html#SEC51">9. Processing an Ada Library by an ASIS-Based Tool</A>, shows how to use an
ASIS tool on pre-compiled Ada libraries.
<P>
<LI>
<A HREF="asis_ug_11.html#SEC52">10. Compiling, Binding and Linking Applications with ASIS-for-GNAT</A>, explains
how to compile an ASIS application with ASIS-for-GNAT and how to create
the resulting executable.
<P>
<LI>
<A HREF="asis_ug_12.html#SEC53">11. ASIS-for-GNAT Warnings</A>, describes the warnings generated by
the ASIS implementation.
<P>
<LI>
<A HREF="asis_ug_13.html#SEC54">12. Exception Handling and Reporting Internal Bugs</A>, explains
what happens if an ASIS implementation internal problem is detected during
the processing of an ASIS or ASIS Extensions query
<P>
<LI>
<A HREF="asis_ug_14.html#SEC55">13. File Naming Conventions and Application Name Space</A>, explains
which names can and cannot be used as names of ASIS application
components.
</UL>
<P>
<A NAME="What You Should Know Before Reading This Guide"></A>
<HR SIZE="6">
<A NAME="SEC3"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_1.html#SEC2"> < </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_1.html#SEC4"> > </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_15.html#SEC56">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> What You Should Know Before Reading This Guide </H2>
<!--docid::SEC3::-->
<P>
This User's Guide assumes that you are familiar with Ada 95 language, as
described in the International Standard ANSI/ISO/IEC-8652:1995 (hereafter
referred to as the <CITE>Ada Reference Manual</CITE>),
and that you have some basic experience in Ada programming with GNAT.
</P><P>
This User's Guide also assumes that you have ASIS-for-GNAT properly installed
for your GNAT compiler, and that you are familiar with the structure of the
ASIS-for-GNAT distribution (if not, see the top ASIS README file).
</P><P>
This guide does not require previous knowledge of or experience with ASIS itself.
</P><P>
<A NAME="Related Information"></A>
<HR SIZE="6">
<A NAME="SEC4"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_1.html#SEC3"> < </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_1.html#SEC5"> > </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_15.html#SEC56">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> Related Information </H2>
<!--docid::SEC4::-->
<P>
The following sources contain useful supplemental information:
<UL>
<LI>
<CITE>GNAT User's Guide</CITE>, for information about the GNAT environment
<P>
<LI>
<CITE>ASIS-for-GNAT Installation Guide</CITE>
<P>
<LI>
The <CITE>ASIS-for-GNAT Reference Manual</CITE>
<P>
<LI>
The <CITE>ASIS 95 definition</CITE>, available as ISO/IEC International Standard
15291.
<P>
<LI>
The Web site for the ASIS Working Group:
<A HREF="http://www.acm.org/sigada/wg/asiswg">http://www.acm.org/sigada/wg/asiswg</A>
</UL>
<P>
<A NAME="Conventions"></A>
<HR SIZE="6">
<A NAME="SEC5"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_1.html#SEC4"> < </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_2.html#SEC6"> > </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_15.html#SEC56">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> Conventions </H2>
<!--docid::SEC5::-->
<P>
Following are examples of the typographical and graphic conventions used
in this guide:
</P><P>
<UL>
<LI>
<CODE>Functions</CODE>, <CODE>utility program names</CODE>, <CODE>standard names</CODE>,
and <CODE>classes</CODE>.
<P>
<LI>
<SAMP>`Option flags'</SAMP>
<P>
<LI>
<TT>`File Names'</TT>, <TT>`button names'</TT>, and <TT>`field names'</TT>.
<P>
<LI>
<VAR>Variables</VAR>.
<P>
<LI>
<EM>Emphasis</EM>.
<P>
<LI>
[optional information or parameters]
<P>
<LI>
Examples are described by text
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=+0><pre>and then shown this way.
</FONT></pre></td></tr></table></UL>
<P>
Commands that are entered by the user are preceded in this manual by the
characters "<CODE>$ </CODE>" (dollar sign followed by space). If your system
uses this sequence as a prompt, then the commands will appear exactly as
you see them in the manual. If your system uses some other prompt, then
the command will appear with the <CODE>$</CODE> replaced by whatever prompt
character you are using.
</P><P>
Full file names are shown with the "<CODE>/</CODE>" character
as the directory separator; e.g., <TT>`parent-dir/subdir/myfile.adb'</TT>.
If you are using GNAT on a Windows platform, please note that
the "<CODE>\</CODE>" character should be used instead.
</P><P>
<A NAME="Introduction"></A>
<HR SIZE="6">
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_15.html#SEC56">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="asis_ug_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Mail Server</I> on <I>May, 22 2008</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html/"><I>texi2html</I></A>
</BODY>
</HTML>
|