.. _About_This_Guide: About This Guide ~~~~~~~~~~~~~~~~ .. only:: PRO For ease of exposition, 'GNAT Pro' will be referred to simply as 'GNAT' in the remainder of this document. This guide describes the use of GNAT, a compiler and software development toolset for the full Ada programming language. It documents the features of the compiler and tools, and explains how to use them to build Ada applications. GNAT implements Ada 95, Ada 2005, Ada 2012, and Ada 202x, and it may also be invoked in Ada 83 compatibility mode. By default, GNAT assumes Ada 2012, but you can override with a compiler switch (:ref:`Compiling_Different_Versions_of_Ada`) to explicitly specify the language version. Throughout this manual, references to 'Ada' without a year suffix apply to all Ada versions of the language, starting with Ada 95. What This Guide Contains ======================== This guide contains the following chapters: * :ref:`Getting_Started_with_GNAT` describes how to get started compiling and running Ada programs with the GNAT Ada programming environment. * :ref:`The_GNAT_Compilation_Model` describes the compilation model used by GNAT. * :ref:`Building_Executable_Programs_With_GNAT` describes how to use the main GNAT tools to build executable programs, and it also gives examples of using the GNU make utility with GNAT. * :ref:`GNAT_Utility_Programs` explains the various utility programs that are included in the GNAT environment * :ref:`GNAT_and_Program_Execution` covers a number of topics related to running, debugging, and tuning the performace of programs developed with GNAT Appendices cover several additional topics: * :ref:`Platform_Specific_Information` describes the different run-time library implementations and also presents information on how to use GNAT on several specific platforms * :ref:`Example_of_Binder_Output_File` shows the source code for the binder output file for a sample program. * :ref:`Elaboration_Order_Handling_in_GNAT` describes how GNAT helps you deal with elaboration order issues. * :ref:`Inline_Assembler` shows how to use the inline assembly facility in an Ada program. What You Should Know before Reading This Guide ============================================== .. index:: Ada 95 Language Reference Manual .. index:: Ada 2005 Language Reference Manual This guide assumes a basic familiarity with the Ada 95 language, as described in the International Standard ANSI/ISO/IEC-8652:1995, January 1995. Reference manuals for Ada 95, Ada 2005, and Ada 2012 are included in the GNAT documentation package. Related Information =================== For further information about Ada and related tools, please refer to the following documents: * :title:`Ada 95 Reference Manual`, :title:`Ada 2005 Reference Manual`, and :title:`Ada 2012 Reference Manual`, which contain reference material for the several revisions of the Ada language standard. * :title:`GNAT Reference_Manual`, which contains all reference material for the GNAT implementation of Ada. * :title:`Using GNAT Studio`, which describes the GNAT Studio Integrated Development Environment. * :title:`GNAT Studio Tutorial`, which introduces the main GNAT Studio features through examples. * :title:`Debugging with GDB`, for all details on the use of the GNU source-level debugger. * :title:`GNU Emacs Manual`, for full information on the extensible editor and programming environment Emacs. Conventions =========== .. index:: Conventions, typographical .. index:: Typographical conventions Following are examples of the typographical and graphic conventions used in this guide: * ``Functions``, ``utility program names``, ``standard names``, and ``classes``. * ``Option flags`` * :file:`File names` * ``Variables`` * *Emphasis* * [optional information or parameters] * Examples are described by text :: and then shown this way. * Commands that are entered by the user are shown as preceded by a prompt string comprising the ``$`` character followed by a space. * Full file names are shown with the '/' character as the directory separator; e.g., :file:`parent-dir/subdir/myfile.adb`. If you are using GNAT on a Windows platform, please note that the '\\' character should be used instead.