1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>AARM95 - Predefined Language Environment</TITLE>
<META NAME="Author" CONTENT="JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor">
<META NAME="GENERATOR" CONTENT="Arm_Form.Exe, Ada Reference Manual generator">
<STYLE type="text/css">
DIV.paranum {position: absolute; font-family: Arial, Helvetica, sans-serif; left: 0.5 em; top: auto}
TT {font-family: "Courier New", monospace}
DT {display: compact}
DIV.Normal {font-family: "Times New Roman", Times, serif; margin-bottom: 0.6em}
DIV.Wide {font-family: "Times New Roman", Times, serif; margin-top: 0.6em; margin-bottom: 0.6em}
DIV.Annotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
DIV.WideAnnotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0.6em; margin-bottom: 0.6em}
DIV.Index {font-family: "Times New Roman", Times, serif}
DIV.SyntaxSummary {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
DIV.Notes {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.6em}
DIV.NotesHeader {font-family: "Times New Roman", Times, serif; margin-left: 2.0em}
DIV.SyntaxIndented {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
DIV.Indented {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-bottom: 0.6em}
DIV.CodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
DIV.SmallIndented {font-family: "Times New Roman", Times, serif; margin-left: 10.0em; margin-bottom: 0.6em}
DIV.SmallCodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-bottom: 0.6em}
DIV.Examples {font-family: "Courier New", monospace; margin-left: 2.0em; margin-bottom: 0.6em}
DIV.SmallExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left: 7.5em; margin-bottom: 0.6em}
DIV.IndentedExamples {font-family: "Courier New", monospace; margin-left: 8.0em; margin-bottom: 0.6em}
DIV.SmallIndentedExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left: 15.0em; margin-bottom: 0.6em}
UL.Bulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SmallBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SmallNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.IndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.CodeIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.CodeIndentedNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SyntaxIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NotesBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NotesNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
DL.Hanging {font-family: "Times New Roman", Times, serif; margin-top: 0em; margin-bottom: 0.6em}
DD.Hanging {margin-left: 6.0em}
DL.IndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.IndentedHanging {margin-left: 2.0em}
DL.HangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.HangingInBulleted {margin-left: 4.0em}
DL.SmallHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.SmallHanging {margin-left: 7.5em}
DL.SmallIndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.SmallIndentedHanging {margin-left: 2.0em}
DL.SmallHangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.SmallHangingInBulleted {margin-left: 5.0em}
DL.Enumerated {font-family: "Times New Roman", Times, serif; margin-right: 0.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.Enumerated {margin-left: 2.0em}
DL.SmallEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.SmallEnumerated {margin-left: 2.5em}
DL.NestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
DL.SmallNestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
</STYLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFF0" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
<P><A HREF="AA-TOC.html">Contents</A> <A HREF="AA-0-29.html">Index</A> <A HREF="AA-0-28.html">Previous</A> <A HREF="AA-A-1.html">Next</A></P>
<HR>
<H1>Annex A</H1>
<H2>(normative)</H2>
<H1>Predefined Language Environment</H1>
<DIV Class="Paranum"><FONT SIZE=-2>1</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> [<A NAME="I4779"></A>
<A NAME="I4780"></A>This Annex contains the specifications of library
units that shall be provided by every implementation. There are three
root library units: Ada, Interfaces, and System; other library units
are children of these:]</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>2/1</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> {<I><A HREF="defect1.html#8652/0047">8652/0047</A></I>}
<BR>
</DIV>
<DIV Class="SyntaxIndented">[<FONT SIZE=-1>Standard -- <A HREF="AA-A-1.html">A.1</A><BR>
Ada -- <A HREF="AA-A-2.html">A.2</A><BR>
Asynchronous_Task_Control -- <A HREF="AA-D-11.html">D.11</A><BR>
Calendar -- <A HREF="AA-9-6.html">9.6</A><BR>
Characters -- <A HREF="AA-A-3-1.html">A.3.1</A><BR>
Handling -- <A HREF="AA-A-3-2.html">A.3.2</A><BR>
Latin_1 -- <A HREF="AA-A-3-3.html">A.3.3</A><BR>
Command_Line -- <A HREF="AA-A-15.html">A.15</A><BR>
Decimal -- <A HREF="AA-F-2.html">F.2</A><BR>
Direct_IO -- <A HREF="AA-A-8-4.html">A.8.4</A><BR>
Dynamic_Priorities -- <A HREF="AA-D-5.html">D.5</A><BR>
Exceptions -- <A HREF="AA-11-4-1.html">11.4.1</A><BR>
Finalization -- <A HREF="AA-7-6.html">7.6</A><BR>
<U> Float_Text_IO -- <A HREF="AA-A-10-9.html">A.10.9</A><BR>
Float_Wide_Text_IO -- <A HREF="AA-A-11.html">A.11</A><BR>
Integer_Text_IO -- <A HREF="AA-A-10-8.html">A.10.8</A><BR>
Integer_Wide_Text_IO -- <A HREF="AA-A-11.html">A.11</A><BR>
</U> Interrupts -- <A HREF="AA-C-3-2.html">C.3.2</A><BR>
Names -- <A HREF="AA-C-3-2.html">C.3.2</A><BR>
IO_Exceptions -- <A HREF="AA-A-13.html">A.13</A><BR>
Numerics -- <A HREF="AA-A-5.html">A.5</A><BR>
Complex_Elementary_Functions -- <A HREF="AA-G-1-2.html">G.1.2</A><BR>
Complex_Types -- <A HREF="AA-G-1-1.html">G.1.1</A><BR>
Discrete_Random -- <A HREF="AA-A-5-2.html">A.5.2</A><BR>
Elementary_Functions -- <A HREF="AA-A-5-1.html">A.5.1</A><BR>
Float_Random -- <A HREF="AA-A-5-2.html">A.5.2</A><BR>
Generic_Complex_Elementary_Functions<BR>
-- <A HREF="AA-G-1-2.html">G.1.2</A><BR>
Generic_Complex_Types -- <A HREF="AA-G-1-1.html">G.1.1</A><BR>
Generic_Elementary_Functions -- <A HREF="AA-A-5-1.html">A.5.1</A><BR>
Real_Time -- <A HREF="AA-D-8.html">D.8</A><BR>
Sequential_IO -- <A HREF="AA-A-8-1.html">A.8.1</A><BR>
Storage_IO -- <A HREF="AA-A-9.html">A.9</A><BR>
Streams -- <A HREF="AA-13-13-1.html">13.13.1</A><BR>
Stream_IO -- <A HREF="AA-A-12-1.html">A.12.1</A></FONT></DIV>
<DIV Class="SyntaxIndented"><FONT SIZE=-1>Standard (<I>...continued</I>)<BR>
Ada (<I>...continued</I>)<BR>
Strings -- <A HREF="AA-A-4-1.html">A.4.1</A><BR>
Bounded -- <A HREF="AA-A-4-4.html">A.4.4</A><BR>
Fixed -- <A HREF="AA-A-4-3.html">A.4.3</A><BR>
Maps -- <A HREF="AA-A-4-2.html">A.4.2</A><BR>
Constants -- <A HREF="AA-A-4-6.html">A.4.6</A><BR>
Unbounded -- <A HREF="AA-A-4-5.html">A.4.5</A><BR>
Wide_Bounded -- <A HREF="AA-A-4-7.html">A.4.7</A><BR>
Wide_Fixed -- <A HREF="AA-A-4-7.html">A.4.7</A><BR>
Wide_Maps -- <A HREF="AA-A-4-7.html">A.4.7</A><BR>
Wide_Constants -- <A HREF="AA-A-4-7.html">A.4.7</A><BR>
Wide_Unbounded -- <A HREF="AA-A-4-7.html">A.4.7</A><BR>
Synchronous_Task_Control -- <A HREF="AA-D-10.html">D.10</A><BR>
Tags -- <A HREF="AA-3-9.html">3.9</A><BR>
Task_Attributes -- <A HREF="AA-C-7-2.html">C.7.2</A><BR>
Task_Identification -- <A HREF="AA-C-7-1.html">C.7.1</A><BR>
Text_IO -- <A HREF="AA-A-10-1.html">A.10.1</A><BR>
Complex_IO -- <A HREF="AA-G-1-3.html">G.1.3</A><BR>
Editing -- <A HREF="AA-F-3-3.html">F.3.3</A><BR>
Text_Streams -- <A HREF="AA-A-12-2.html">A.12.2</A><BR>
Unchecked_Conversion -- <A HREF="AA-13-9.html">13.9</A><BR>
Unchecked_Deallocation -- <A HREF="AA-13-11-2.html">13.11.2</A><BR>
Wide_Text_IO -- <A HREF="AA-A-11.html">A.11</A><BR>
Complex_IO -- <A HREF="AA-G-1-3.html">G.1.3</A><BR>
Editing -- <A HREF="AA-F-3-4.html">F.3.4</A><BR>
Text_Streams -- <A HREF="AA-A-12-3.html">A.12.3</A></FONT></DIV>
<DIV Class="SyntaxIndented"><FONT SIZE=-1> Interfaces -- <A HREF="AA-B-2.html">B.2</A><BR>
C -- <A HREF="AA-B-3.html">B.3</A><BR>
Pointers -- <A HREF="AA-B-3-2.html">B.3.2</A><BR>
Strings -- <A HREF="AA-B-3-1.html">B.3.1</A><BR>
COBOL -- <A HREF="AA-B-4.html">B.4</A><BR>
Fortran -- <A HREF="AA-B-5.html">B.5</A></FONT></DIV>
<DIV Class="SyntaxIndented"><FONT SIZE=-1> System -- <A HREF="AA-13-7.html">13.7</A><BR>
Address_To_Access_Conversions -- <A HREF="AA-13-7-2.html">13.7.2</A><BR>
Machine_Code -- <A HREF="AA-13-8.html">13.8</A><BR>
RPC -- <A HREF="AA-E-5.html">E.5</A><BR>
Storage_Elements -- <A HREF="AA-13-7-1.html">13.7.1</A><BR>
Storage_Pools -- <A HREF="AA-13-11.html">13.11</A></FONT>]</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>2.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Discussion: </B>In running
text, we generally leave out the ``Ada.'' when referring to a child of
Ada. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>2.b</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Reason: </B>We had no strict
rule for which of Ada, Interfaces, or System should be the parent of
a given library unit. However, we have tried to place as many things
as possible under Ada, except that interfacing is a separate category,
and we have tried to place library units whose use is highly non-portable
under System. </FONT></DIV>
<H4 ALIGN=CENTER>Implementation Requirements</H4>
<DIV Class="Paranum"><FONT SIZE=-2>3</FONT></DIV>
<DIV Class="Normal"> The implementation shall ensure that each language
defined subprogram is reentrant in the sense that concurrent calls on
the same subprogram perform as specified, so long as all parameters that
could be passed by reference denote nonoverlapping objects. </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>3.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>For example,
simultaneous calls to Text_IO.Put will work properly, so long as they
are going to two different files. On the other hand, simultaneous output
to the same file constitutes erroneous use of shared variables. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>3.b</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>To be honest: </B>Here, ``language
defined subprogram'' means a language defined library subprogram, a subprogram
declared in the visible part of a language defined library package, an
instance of a language defined generic library subprogram, or a subprogram
declared in the visible part of an instance of a language defined generic
library package. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>3.c</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>The rule
implies that any data local to the private part or body of the package
has to be somehow protected against simultaneous access. </FONT></DIV>
<H4 ALIGN=CENTER>Implementation Permissions</H4>
<DIV Class="Paranum"><FONT SIZE=-2>4</FONT></DIV>
<DIV Class="Normal"> The implementation may restrict the replacement
of language-defined compilation units. The implementation may restrict
children of language-defined library units (other than Standard). </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>4.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>For example,
the implementation may say, ``you cannot compile a library unit called
System'' or ``you cannot compile a child of package System'' or ``if
you compile a library unit called System, it has to be a package, and
it has to contain at least the following declarations: ...''. </FONT></DIV>
<H4 ALIGN=CENTER>Wording Changes from Ada 83</H4>
<DIV Class="Paranum"><FONT SIZE=-2>4.b</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>Many of Ada 83's language-defined
library units are now children of Ada or System. For upward compatibility,
these are renamed as root library units (see <A HREF="AA-J-1.html">J.1</A>).</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>4.c</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>The order and lettering of the
annexes has been changed. </FONT></DIV>
<HR>
<P><A HREF="AA-TOC.html">Contents</A> <A HREF="AA-0-29.html">Index</A> <A HREF="AA-0-28.html">Previous</A> <A HREF="AA-A-1.html">Next</A> <A HREF="AA-TTL.html">Legal</A></P>
</BODY>
</HTML>
|