gnat_rm.texi

来自「理解和实践操作系统的一本好书」· TEXI 代码 · 共 1,978 行 · 第 1/5 页

TEXI
1,978
字号
* System.Restrictions (s-restri.ads)::* System.Rident (s-rident.ads)::* System.Task_Info (s-tasinf.ads)::* System.Wch_Cnv (s-wchcnv.ads)::* System.Wch_Con (s-wchcon.ads)::Text_IO* Text_IO Stream Pointer Positioning::* Text_IO Reading and Writing Non-Regular Files::* Get_Immediate::* Treating Text_IO Files as Streams::* Text_IO Extensions::* Text_IO Facilities for Unbounded Strings::Wide_Text_IO* Wide_Text_IO Stream Pointer Positioning::* Wide_Text_IO Reading and Writing Non-Regular Files::Wide_Wide_Text_IO* Wide_Wide_Text_IO Stream Pointer Positioning::* Wide_Wide_Text_IO Reading and Writing Non-Regular Files::Interfacing to Other Languages* Interfacing to C::* Interfacing to C++::* Interfacing to COBOL::* Interfacing to Fortran::* Interfacing to non-GNAT Ada code::Specialized Needs AnnexesImplementation of Specific Ada Features* Machine Code Insertions::* GNAT Implementation of Tasking::* GNAT Implementation of Shared Passive Packages::* Code Generation for Array Aggregates::* The Size of Discriminated Records with Default Discriminants::* Strict Conformance to the Ada Reference Manual::Project File ReferenceObsolescent FeaturesGNU Free Documentation LicenseIndex@end menu@end ifnottex@node About This Guide@unnumbered About This Guide@noindentThis manual contains useful information in writing programs using the@value{EDITION} compiler.  It includes information on implementation dependentcharacteristics of @value{EDITION}, including all the information required byAnnex M of the Ada language standard.@value{EDITION} implements Ada 95 and Ada 2005, and it may also be invoked inAda 83 compatibility mode.By default, @value{EDITION} assumes @value{DEFAULTLANGUAGEVERSION},but you can override with a compiler switchto explicitly specify the language version.(Please refer to the section ``Compiling Different Versions of Ada'', in@cite{@value{EDITION} User's Guide}, for details on these switches.)Throughout this manual, references to ``Ada'' without a year suffixapply to both the Ada 95 and Ada 2005 versions of the language.Ada is designed to be highly portable.In general, a program will have the same effect even when compiled bydifferent compilers on different platforms.However, since Ada is designed to be used in awide variety of applications, it also contains a number of systemdependent features to be used in interfacing to the external world.@cindex Implementation-dependent features@cindex PortabilityNote: Any program that makes use of implementation-dependent featuresmay be non-portable.  You should follow good programming practice andisolate and clearly document any sections of your program that make useof these features in a non-portable manner.@ifset PROEDITIONFor ease of exposition, ``GNAT Pro'' will be referred to simply as``GNAT'' in the remainder of this document.@end ifset@menu* What This Reference Manual Contains::* Conventions::* Related Information::@end menu@node What This Reference Manual Contains@unnumberedsec What This Reference Manual Contains@noindentThis reference manual contains the following chapters:@itemize @bullet@item@ref{Implementation Defined Pragmas}, lists GNAT implementation-dependentpragmas, which can be used to extend and enhance the functionality of thecompiler.@item@ref{Implementation Defined Attributes}, lists GNATimplementation-dependent attributes which can be used to extend andenhance the functionality of the compiler.@item@ref{Implementation Advice}, provides information on generallydesirable behavior which are not requirements that all compilers mustfollow since it cannot be provided on all systems, or which may beundesirable on some systems.@item@ref{Implementation Defined Characteristics}, provides a guide tominimizing implementation dependent features.@item@ref{Intrinsic Subprograms}, describes the intrinsic subprogramsimplemented by GNAT, and how they can be imported into userapplication programs.@item@ref{Representation Clauses and Pragmas}, describes in detail theway that GNAT represents data, and in particular the exact setof representation clauses and pragmas that is accepted.@item@ref{Standard Library Routines}, provides a listing of packages and abrief description of the functionality that is provided by Ada'sextensive set of standard library routines as implemented by GNAT@.@item@ref{The Implementation of Standard I/O}, details how the GNATimplementation of the input-output facilities.@item@ref{The GNAT Library}, is a catalog of packages that complementthe Ada predefined library.@item@ref{Interfacing to Other Languages}, describes how programswritten in Ada using GNAT can be interfaced to other programminglanguages.@ref{Specialized Needs Annexes}, describes the GNAT implementation of allof the specialized needs annexes.@item@ref{Implementation of Specific Ada Features}, discusses issues relatedto GNAT's implementation of machine code insertions, tasking, and severalother features.@item@ref{Project File Reference}, presents the syntax and semanticsof project files.@item@ref{Obsolescent Features} documents implementation dependent features,including pragmas and attributes, which are considered obsolescent, sincethere are other preferred ways of achieving the same results. Theseobsolescent forms are retained for backwards compatibility.@end itemize@cindex Ada 95 Language Reference Manual@cindex Ada 2005 Language Reference Manual@noindentThis reference manual assumes a basic familiarity with the Ada 95 language, asdescribed in the International Standard ANSI/ISO/IEC-8652:1995,January 1995.It does not require knowledge of the new features introduced by Ada 2005,(officially known as ISO/IEC 8652:1995 with Technical Corrigendum 1and Amendment 1).Both reference manuals are included in the GNAT documentationpackage.@node Conventions@unnumberedsec Conventions@cindex Conventions, typographical@cindex Typographical conventions@noindentFollowing are examples of the typographical and graphic conventions usedin this guide:@itemize @bullet@item@code{Functions}, @code{utility program names}, @code{standard names},and @code{classes}.@item@code{Option flags}@item@file{File Names}, @samp{button names}, and @samp{field names}.@item@code{Variables}.@item@emph{Emphasis}.@item[optional information or parameters]@itemExamples are described by text@smallexampleand then shown this way.@end smallexample@end itemize@noindentCommands that are entered by the user are preceded in this manual by thecharacters @samp{$ } (dollar sign followed by space).  If your system uses thissequence as a prompt, then the commands will appear exactly as you see themin the manual.  If your system uses some other prompt, then the command willappear with the @samp{$} replaced by whatever prompt character you are using.@node Related Information@unnumberedsec Related Information@noindentSee the following documents for further information on GNAT:@itemize @bullet@item@cite{GNAT User's Guide}, which provides information on how to usethe GNAT compiler system.@item@cite{Ada 95 Reference Manual}, which contains all referencematerial for the Ada 95 programming language.@item@cite{Ada 95 Annotated Reference Manual}, which is an annotated versionof the Ada 95 standard.  The annotations describedetailed aspects of the design decision, and in particular contain usefulsections on Ada 83 compatibility.@item@cite{Ada 2005 Reference Manual}, which contains all referencematerial for the Ada 2005 programming language.@item@cite{Ada 2005 Annotated Reference Manual}, which is an annotated versionof the Ada 2005 standard.  The annotations describedetailed aspects of the design decision, and in particular contain usefulsections on Ada 83 and Ada 95 compatibility.@item@cite{DEC Ada, Technical Overview and Comparison on DIGITAL Platforms},which contains specific information on compatibility between GNAT andDEC Ada 83 systems.@item@cite{DEC Ada, Language Reference Manual, part number AA-PYZAB-TK} whichdescribes in detail the pragmas and attributes provided by the DEC Ada 83compiler system.@end itemize@node Implementation Defined Pragmas@chapter Implementation Defined Pragmas@noindentAda defines a set of pragmas that can be used to supply additionalinformation to the compiler.  These language defined pragmas areimplemented in GNAT and work as described in the Ada ReferenceManual.In addition, Ada allows implementations to define additional pragmaswhose meaning is defined by the implementation.  GNAT provides a numberof these implementation-defined pragmas, which can be used to extendand enhance the functionality of the compiler.  This section of the GNATReference Manual describes these additional pragmas.Note that any program using these pragmas might not be portable to othercompilers (although GNAT implements this set of pragmas on allplatforms).  Therefore if portability to other compilers is an importantconsideration, the use of these pragmas should be minimized.@menu* Pragma Abort_Defer::* Pragma Ada_83::* Pragma Ada_95::* Pragma Ada_05::* Pragma Ada_2005::* Pragma Annotate::* Pragma Assert::* Pragma Ast_Entry::* Pragma C_Pass_By_Copy::* Pragma Check_Name::* Pragma Comment::* Pragma Common_Object::* Pragma Compile_Time_Error::* Pragma Compile_Time_Warning::* Pragma Complete_Representation::* Pragma Complex_Representation::* Pragma Component_Alignment::* Pragma Convention_Identifier::* Pragma CPP_Class::* Pragma CPP_Constructor::* Pragma CPP_Virtual::* Pragma CPP_Vtable::* Pragma Debug::* Pragma Debug_Policy::* Pragma Detect_Blocking::* Pragma Elaboration_Checks::* Pragma Eliminate::* Pragma Export_Exception::* Pragma Export_Function::* Pragma Export_Object::* Pragma Export_Procedure::* Pragma Export_Value::* Pragma Export_Valued_Procedure::* Pragma Extend_System::* Pragma External::* Pragma External_Name_Casing::* Pragma Fast_Math::* Pragma Favor_Top_Level::* Pragma Finalize_Storage_Only::* Pragma Float_Representation::* Pragma Ident::* Pragma Implemented_By_Entry::* Pragma Implicit_Packing::* Pragma Import_Exception::* Pragma Import_Function::* Pragma Import_Object::* Pragma Import_Procedure::* Pragma Import_Valued_Procedure::* Pragma Initialize_Scalars::* Pragma Inline_Always::* Pragma Inline_Generic::* Pragma Interface::* Pragma Interface_Name::* Pragma Interrupt_Handler::* Pragma Interrupt_State::* Pragma Keep_Names::* Pragma License::* Pragma Link_With::* Pragma Linker_Alias::* Pragma Linker_Constructor::* Pragma Linker_Destructor::* Pragma Linker_Section::* Pragma Long_Float::* Pragma Machine_Attribute::* Pragma Main::* Pragma Main_Storage::* Pragma No_Body::* Pragma No_Return::* Pragma No_Strict_Aliasing::* Pragma Normalize_Scalars::* Pragma Obsolescent::* Pragma Passive::* Pragma Persistent_BSS::* Pragma Polling::* Pragma Profile (Ravenscar)::* Pragma Profile (Restricted)::* Pragma Psect_Object::* Pragma Pure_Function::* Pragma Restriction_Warnings::* Pragma Shared::* Pragma Source_File_Name::* Pragma Source_File_Name_Project::* Pragma Source_Reference::* Pragma Stream_Convert::* Pragma Style_Checks::* Pragma Subtitle::* Pragma Suppress::* Pragma Suppress_All::* Pragma Suppress_Exception_Locations::* Pragma Suppress_Initialization::* Pragma Task_Info::* Pragma Task_Name::* Pragma Task_Storage::* Pragma Time_Slice::* Pragma Title::* Pragma Unchecked_Union::* Pragma Unimplemented_Unit::* Pragma Universal_Aliasing ::* Pragma Universal_Data::* Pragma Unreferenced::* Pragma Unreferenced_Objects::* Pragma Unreserve_All_Interrupts::* Pragma Unsuppress::* Pragma Use_VADS_Size::* Pragma Validity_Checks::

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?