111
|
1 .. _About_This_Guide:
|
|
2
|
|
3 About This Guide
|
|
4 ~~~~~~~~~~~~~~~~
|
|
5
|
|
6 .. only:: PRO
|
|
7
|
|
8 For ease of exposition, 'GNAT Pro' will be referred to simply as
|
|
9 'GNAT' in the remainder of this document.
|
|
10
|
|
11 This guide describes the use of GNAT,
|
|
12 a compiler and software development
|
|
13 toolset for the full Ada programming language.
|
|
14 It documents the features of the compiler and tools, and explains
|
|
15 how to use them to build Ada applications.
|
|
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, but you can override with a
|
|
20 compiler switch (:ref:`Compiling_Different_Versions_of_Ada`)
|
|
21 to explicitly specify the language version.
|
|
22 Throughout this manual, references to 'Ada' without a year suffix
|
|
23 apply to all Ada 95/2005/2012 versions of the language.
|
|
24
|
|
25 What This Guide Contains
|
|
26 ========================
|
|
27
|
|
28 This guide contains the following chapters:
|
|
29
|
|
30 * :ref:`Getting_Started_with_GNAT` describes how to get started compiling
|
|
31 and running Ada programs with the GNAT Ada programming environment.
|
|
32
|
|
33 * :ref:`The_GNAT_Compilation_Model` describes the compilation model used
|
|
34 by GNAT.
|
|
35
|
|
36 * :ref:`Building_Executable_Programs_With_GNAT` describes how to use the
|
|
37 main GNAT tools to build executable programs, and it also gives examples of
|
|
38 using the GNU make utility with GNAT.
|
|
39
|
|
40 * :ref:`GNAT_Utility_Programs` explains the various utility programs that
|
|
41 are included in the GNAT environment
|
|
42
|
|
43 * :ref:`GNAT_and_Program_Execution` covers a number of topics related to
|
|
44 running, debugging, and tuning the performace of programs developed
|
|
45 with GNAT
|
|
46
|
|
47 Appendices cover several additional topics:
|
|
48
|
|
49 * :ref:`Platform_Specific_Information` describes the different run-time
|
|
50 library implementations and also presents information on how to use
|
|
51 GNAT on several specific platforms
|
|
52
|
|
53 * :ref:`Example_of_Binder_Output_File` shows the source code for the binder
|
|
54 output file for a sample program.
|
|
55
|
|
56 * :ref:`Elaboration_Order_Handling_in_GNAT` describes how GNAT helps
|
|
57 you deal with elaboration order issues.
|
|
58
|
|
59 * :ref:`Inline_Assembler` shows how to use the inline assembly facility
|
|
60 in an Ada program.
|
|
61
|
|
62
|
|
63
|
|
64 What You Should Know before Reading This Guide
|
|
65 ==============================================
|
|
66
|
|
67 .. index:: Ada 95 Language Reference Manual
|
|
68
|
|
69 .. index:: Ada 2005 Language Reference Manual
|
|
70
|
|
71 This guide assumes a basic familiarity with the Ada 95 language, as
|
|
72 described in the International Standard ANSI/ISO/IEC-8652:1995, January
|
|
73 1995.
|
|
74 It does not require knowledge of the features introduced by Ada 2005
|
|
75 or Ada 2012.
|
|
76 Reference manuals for Ada 95, Ada 2005, and Ada 2012 are included in
|
|
77 the GNAT documentation package.
|
|
78
|
|
79
|
|
80 Related Information
|
|
81 ===================
|
|
82
|
|
83 For further information about Ada and related tools, please refer to the
|
|
84 following documents:
|
|
85
|
|
86 * :title:`Ada 95 Reference Manual`, :title:`Ada 2005 Reference Manual`, and
|
|
87 :title:`Ada 2012 Reference Manual`, which contain reference
|
|
88 material for the several revisions of the Ada language standard.
|
|
89
|
|
90 * :title:`GNAT Reference_Manual`, which contains all reference material for the GNAT
|
|
91 implementation of Ada.
|
|
92
|
|
93 * :title:`Using the GNAT Programming Studio`, which describes the GPS
|
|
94 Integrated Development Environment.
|
|
95
|
|
96 * :title:`GNAT Programming Studio Tutorial`, which introduces the
|
|
97 main GPS features through examples.
|
|
98
|
|
99 * :title:`Debugging with GDB`,
|
|
100 for all details on the use of the GNU source-level debugger.
|
|
101
|
|
102 * :title:`GNU Emacs Manual`,
|
|
103 for full information on the extensible editor and programming
|
|
104 environment Emacs.
|
|
105
|
|
106
|
|
107 A Note to Readers of Previous Versions of the Manual
|
|
108 ====================================================
|
|
109
|
|
110 In early 2015 the GNAT manuals were transitioned to the
|
|
111 reStructuredText (rst) / Sphinx documentation generator technology.
|
|
112 During that process the :title:`GNAT User's Guide` was reorganized
|
|
113 so that related topics would be described together in the same chapter
|
|
114 or appendix. Here's a summary of the major changes realized in
|
|
115 the new document structure.
|
|
116
|
|
117 * :ref:`The_GNAT_Compilation_Model` has been extended so that it now covers
|
|
118 the following material:
|
|
119
|
|
120 - The ``gnatname``, ``gnatkr``, and ``gnatchop`` tools
|
|
121 - :ref:`Configuration_Pragmas`
|
|
122 - :ref:`GNAT_and_Libraries`
|
|
123 - :ref:`Conditional_Compilation` including :ref:`Preprocessing_with_gnatprep`
|
|
124 and :ref:`Integrated_Preprocessing`
|
|
125 - :ref:`Generating_Ada_Bindings_for_C_and_C++_headers`
|
|
126 - :ref:`Using_GNAT_Files_with_External_Tools`
|
|
127
|
|
128 * :ref:`Building_Executable_Programs_With_GNAT` is a new chapter consolidating
|
|
129 the following content:
|
|
130
|
|
131 - :ref:`The_GNAT_Make_Program_gnatmake`
|
|
132 - :ref:`Compiling_with_GCC`
|
|
133 - :ref:`Binding_with_gnatbind`
|
|
134 - :ref:`Linking_with_gnatlink`
|
|
135 - :ref:`Using_the_GNU_make_Utility`
|
|
136
|
|
137 * :ref:`GNAT_Utility_Programs` is a new chapter consolidating the information about several
|
|
138 GNAT tools:
|
|
139
|
|
140 .. only:: PRO or GPL
|
|
141
|
|
142 - :ref:`The_File_Cleanup_Utility_gnatclean`
|
|
143 - :ref:`The_GNAT_Library_Browser_gnatls`
|
|
144 - :ref:`The_Cross-Referencing_Tools_gnatxref_and_gnatfind`
|
|
145 - :ref:`The_Ada_to_HTML_Converter_gnathtml`
|
|
146 - :ref:`The_Ada-to-XML_Converter_gnat2xml`
|
|
147 - :ref:`The_Coding_Standard_Verifier_gnatcheck`
|
|
148 - :ref:`The_GNAT_Metrics_Tool_gnatmetric`
|
|
149 - :ref:`The_GNAT_Pretty-Printer_gnatpp`
|
|
150 - :ref:`The_Body_Stub_Generator_gnatstub`
|
|
151 - :ref:`The_Unit_Test_Generator_gnattest`
|
|
152
|
|
153 .. only:: FSF
|
|
154
|
|
155 - :ref:`The_File_Cleanup_Utility_gnatclean`
|
|
156 - :ref:`The_GNAT_Library_Browser_gnatls`
|
|
157 - :ref:`The_Cross-Referencing_Tools_gnatxref_and_gnatfind`
|
|
158 - :ref:`The_Ada_to_HTML_Converter_gnathtml`
|
|
159
|
|
160 * :ref:`GNAT_and_Program_Execution` is a new chapter consolidating the following:
|
|
161
|
|
162 - :ref:`Running_and_Debugging_Ada_Programs`
|
|
163 - :ref:`Code_Coverage_and_Profiling`
|
|
164 - :ref:`Improving_Performance`
|
|
165 - :ref:`Overflow Check Handling in GNAT <Overflow_Check_Handling_in_GNAT>`
|
|
166 - :ref:`Performing Dimensionality Analysis in GNAT <Performing_Dimensionality_Analysis_in_GNAT>`
|
|
167 - :ref:`Stack_Related_Facilities`
|
|
168 - :ref:`Memory_Management_Issues`
|
|
169
|
|
170 * :ref:`Platform_Specific_Information` is a new appendix consolidating the following:
|
|
171
|
|
172 - :ref:`Run_Time_Libraries`
|
|
173 - :ref:`Microsoft_Windows_Topics`
|
|
174 - :ref:`Mac_OS_Topics`
|
|
175
|
|
176 * The *Compatibility and Porting Guide* appendix has been moved to the
|
|
177 :title:`GNAT Reference Manual`. It now includes a section
|
|
178 *Writing Portable Fixed-Point Declarations* which was previously
|
|
179 a separate chapter in the :title:`GNAT User's Guide`.
|
|
180
|
|
181
|
|
182 Conventions
|
|
183 ===========
|
|
184 .. index:: Conventions, typographical
|
|
185
|
|
186 .. index:: Typographical conventions
|
|
187
|
|
188 Following are examples of the typographical and graphic conventions used
|
|
189 in this guide:
|
|
190
|
|
191 * ``Functions``, ``utility program names``, ``standard names``,
|
|
192 and ``classes``.
|
|
193
|
|
194 * ``Option flags``
|
|
195
|
|
196 * :file:`File names`
|
|
197
|
|
198 * ``Variables``
|
|
199
|
|
200 * *Emphasis*
|
|
201
|
|
202 * [optional information or parameters]
|
|
203
|
|
204 * Examples are described by text
|
|
205
|
|
206 ::
|
|
207
|
|
208 and then shown this way.
|
|
209
|
|
210 * Commands that are entered by the user are shown as preceded by a prompt string
|
|
211 comprising the ``$`` character followed by a space.
|
|
212
|
|
213 * Full file names are shown with the '/' character
|
|
214 as the directory separator; e.g., :file:`parent-dir/subdir/myfile.adb`.
|
|
215 If you are using GNAT on a Windows platform, please note that
|
|
216 the '\\' character should be used instead.
|