1.. _About_This_Guide:
2
3About 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
11This guide describes the use of GNAT,
12a compiler and software development
13toolset for the full Ada programming language.
14It documents the features of the compiler and tools, and explains
15how to use them to build Ada applications.
16
17GNAT implements Ada 95, Ada 2005, Ada 2012, and Ada 202x, and it may also be
18invoked in Ada 83 compatibility mode.
19By default, GNAT assumes Ada 2012, but you can override with a
20compiler switch (:ref:`Compiling_Different_Versions_of_Ada`)
21to explicitly specify the language version.
22Throughout this manual, references to 'Ada' without a year suffix
23apply to all Ada versions of the language, starting with Ada 95.
24
25What This Guide Contains
26========================
27
28This 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
47Appendices 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
64What 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
71This guide assumes a basic familiarity with the Ada 95 language, as
72described in the International Standard ANSI/ISO/IEC-8652:1995, January
731995.
74Reference manuals for Ada 95, Ada 2005, and Ada 2012 are included in
75the GNAT documentation package.
76
77
78Related Information
79===================
80
81For further information about Ada and related tools, please refer to the
82following documents:
83
84* :title:`Ada 95 Reference Manual`, :title:`Ada 2005 Reference Manual`, and
85  :title:`Ada 2012 Reference Manual`, which contain reference
86  material for the several revisions of the Ada language standard.
87
88* :title:`GNAT Reference_Manual`, which contains all reference material for the GNAT
89  implementation of Ada.
90
91* :title:`Using GNAT Studio`, which describes the GNAT Studio
92  Integrated Development Environment.
93
94* :title:`GNAT Studio Tutorial`, which introduces the
95  main GNAT Studio features through examples.
96
97* :title:`Debugging with GDB`,
98  for all details on the use of the GNU source-level debugger.
99
100* :title:`GNU Emacs Manual`,
101  for full information on the extensible editor and programming
102  environment Emacs.
103
104
105Conventions
106===========
107.. index:: Conventions, typographical
108
109.. index:: Typographical conventions
110
111Following are examples of the typographical and graphic conventions used
112in this guide:
113
114* ``Functions``, ``utility program names``, ``standard names``,
115  and ``classes``.
116
117* ``Option flags``
118
119* :file:`File names`
120
121* ``Variables``
122
123* *Emphasis*
124
125* [optional information or parameters]
126
127* Examples are described by text
128
129  ::
130
131    and then shown this way.
132
133* Commands that are entered by the user are shown as preceded by a prompt string
134  comprising the ``$`` character followed by a space.
135
136* Full file names are shown with the '/' character
137  as the directory separator; e.g., :file:`parent-dir/subdir/myfile.adb`.
138  If you are using GNAT on a Windows platform, please note that
139  the '\\' character should be used instead.
140