111
|
1 .. _About_This_Guide:
|
|
2
|
|
3 ****************
|
|
4 About This Guide
|
|
5 ****************
|
|
6
|
|
7 .. only:: PRO
|
|
8
|
|
9 For ease of exposition, 'GNAT Pro' will be referred to simply as
|
|
10 'GNAT' in the remainder of this document.
|
|
11
|
|
12 This manual contains useful information in writing programs using the
|
|
13 GNAT compiler. It includes information on implementation dependent
|
|
14 characteristics of GNAT, including all the information required by
|
|
15 Annex M of the Ada language standard.
|
|
16
|
|
17 GNAT implements Ada 95, Ada 2005 and Ada 2012, and it may also be
|
|
18 invoked in Ada 83 compatibility mode.
|
|
19 By default, GNAT assumes Ada 2012,
|
|
20 but you can override with a compiler switch
|
|
21 to explicitly specify the language version.
|
|
22 (Please refer to the *GNAT User's Guide* for details on these switches.)
|
|
23 Throughout this manual, references to 'Ada' without a year suffix
|
|
24 apply to all the Ada versions of the language.
|
|
25
|
|
26 Ada is designed to be highly portable.
|
|
27 In general, a program will have the same effect even when compiled by
|
|
28 different compilers on different platforms.
|
|
29 However, since Ada is designed to be used in a
|
|
30 wide variety of applications, it also contains a number of system
|
|
31 dependent features to be used in interfacing to the external world.
|
|
32
|
|
33 .. index:: Implementation-dependent features
|
|
34
|
|
35 .. index:: Portability
|
|
36
|
|
37 Note: Any program that makes use of implementation-dependent features
|
|
38 may be non-portable. You should follow good programming practice and
|
|
39 isolate and clearly document any sections of your program that make use
|
|
40 of these features in a non-portable manner.
|
|
41
|
|
42 What This Reference Manual Contains
|
|
43 ===================================
|
|
44
|
|
45 This reference manual contains the following chapters:
|
|
46
|
|
47 * :ref:`Implementation_Defined_Pragmas`, lists GNAT implementation-dependent
|
|
48 pragmas, which can be used to extend and enhance the functionality of the
|
|
49 compiler.
|
|
50
|
|
51 * :ref:`Implementation_Defined_Attributes`, lists GNAT
|
|
52 implementation-dependent attributes, which can be used to extend and
|
|
53 enhance the functionality of the compiler.
|
|
54
|
|
55 * :ref:`Standard_and_Implementation_Defined_Restrictions`, lists GNAT
|
|
56 implementation-dependent restrictions, which can be used to extend and
|
|
57 enhance the functionality of the compiler.
|
|
58
|
|
59 * :ref:`Implementation_Advice`, provides information on generally
|
|
60 desirable behavior which are not requirements that all compilers must
|
|
61 follow since it cannot be provided on all systems, or which may be
|
|
62 undesirable on some systems.
|
|
63
|
|
64 * :ref:`Implementation_Defined_Characteristics`, provides a guide to
|
|
65 minimizing implementation dependent features.
|
|
66
|
|
67 * :ref:`Intrinsic_Subprograms`, describes the intrinsic subprograms
|
|
68 implemented by GNAT, and how they can be imported into user
|
|
69 application programs.
|
|
70
|
|
71 * :ref:`Representation_Clauses_and_Pragmas`, describes in detail the
|
|
72 way that GNAT represents data, and in particular the exact set
|
|
73 of representation clauses and pragmas that is accepted.
|
|
74
|
|
75 * :ref:`Standard_Library_Routines`, provides a listing of packages and a
|
|
76 brief description of the functionality that is provided by Ada's
|
|
77 extensive set of standard library routines as implemented by GNAT.
|
|
78
|
|
79 * :ref:`The_Implementation_of_Standard_I/O`, details how the GNAT
|
|
80 implementation of the input-output facilities.
|
|
81
|
|
82 * :ref:`The_GNAT_Library`, is a catalog of packages that complement
|
|
83 the Ada predefined library.
|
|
84
|
|
85 * :ref:`Interfacing_to_Other_Languages`, describes how programs
|
|
86 written in Ada using GNAT can be interfaced to other programming
|
|
87 languages.
|
|
88
|
|
89 * :ref:`Specialized_Needs_Annexes`, describes the GNAT implementation of all
|
|
90 of the specialized needs annexes.
|
|
91
|
|
92 * :ref:`Implementation_of_Specific_Ada_Features`, discusses issues related
|
|
93 to GNAT's implementation of machine code insertions, tasking, and several
|
|
94 other features.
|
|
95
|
|
96 * :ref:`Implementation_of_Ada_2012_Features`, describes the status of the
|
|
97 GNAT implementation of the Ada 2012 language standard.
|
|
98
|
|
99 * :ref:`Obsolescent_Features` documents implementation dependent features,
|
|
100 including pragmas and attributes, which are considered obsolescent, since
|
|
101 there are other preferred ways of achieving the same results. These
|
|
102 obsolescent forms are retained for backwards compatibility.
|
|
103
|
|
104 * :ref:`Compatibility_and_Porting_Guide` presents some guidelines for
|
|
105 developing portable Ada code, describes the compatibility issues that
|
|
106 may arise between GNAT and other Ada compilation systems (including those
|
|
107 for Ada 83), and shows how GNAT can expedite porting applications
|
|
108 developed in other Ada environments.
|
|
109
|
|
110 * :ref:`gnu_fdl` contains the license for this document.
|
|
111
|
|
112 .. index:: Ada 95 Language Reference Manual
|
|
113
|
|
114 .. index:: Ada 2005 Language Reference Manual
|
|
115
|
|
116 This reference manual assumes a basic familiarity with the Ada 95 language, as
|
|
117 described in the
|
|
118 :title:`International Standard ANSI/ISO/IEC-8652:1995`.
|
|
119 It does not require knowledge of the new features introduced by Ada 2005 or
|
|
120 Ada 2012.
|
|
121 All three reference manuals are included in the GNAT documentation
|
|
122 package.
|
|
123
|
|
124 Conventions
|
|
125 ===========
|
|
126 .. index:: Conventions, typographical
|
|
127
|
|
128 .. index:: Typographical conventions
|
|
129
|
|
130 Following are examples of the typographical and graphic conventions used
|
|
131 in this guide:
|
|
132
|
|
133 * ``Functions``, ``utility program names``, ``standard names``,
|
|
134 and ``classes``.
|
|
135
|
|
136 * ``Option flags``
|
|
137
|
|
138 * :file:`File names`
|
|
139
|
|
140 * ``Variables``
|
|
141
|
|
142 * *Emphasis*
|
|
143
|
|
144 * [optional information or parameters]
|
|
145
|
|
146 * Examples are described by text
|
|
147
|
|
148 ::
|
|
149
|
|
150 and then shown this way.
|
|
151
|
|
152 * Commands that are entered by the user are shown as preceded by a prompt string
|
|
153 comprising the ``$`` character followed by a space.
|
|
154
|
|
155 Related Information
|
|
156 ===================
|
|
157
|
|
158 See the following documents for further information on GNAT:
|
|
159
|
|
160 * :title:`GNAT User's Guide for Native Platforms`,
|
|
161 which provides information on how to use the
|
|
162 GNAT development environment.
|
|
163
|
|
164 * :title:`Ada 95 Reference Manual`, the Ada 95 programming language standard.
|
|
165
|
|
166 * :title:`Ada 95 Annotated Reference Manual`, which is an annotated version
|
|
167 of the Ada 95 standard. The annotations describe
|
|
168 detailed aspects of the design decision, and in particular contain useful
|
|
169 sections on Ada 83 compatibility.
|
|
170
|
|
171 * :title:`Ada 2005 Reference Manual`, the Ada 2005 programming language standard.
|
|
172
|
|
173 * :title:`Ada 2005 Annotated Reference Manual`, which is an annotated version
|
|
174 of the Ada 2005 standard. The annotations describe
|
|
175 detailed aspects of the design decision.
|
|
176
|
|
177 * :title:`Ada 2012 Reference Manual`, the Ada 2012 programming language standard.
|
|
178
|
|
179 * :title:`DEC Ada, Technical Overview and Comparison on DIGITAL Platforms`,
|
|
180 which contains specific information on compatibility between GNAT and
|
|
181 DEC Ada 83 systems.
|
|
182
|
|
183 * :title:`DEC Ada, Language Reference Manual`, part number AA-PYZAB-TK, which
|
|
184 describes in detail the pragmas and attributes provided by the DEC Ada 83
|
|
185 compiler system.
|