CVS difference for ais/ai-00387.txt

Differences between 1.4 and version 1.5
Log of other versions for file ais/ai-00387.txt

--- ais/ai-00387.txt	2004/12/09 19:55:38	1.4
+++ ais/ai-00387.txt	2005/01/07 03:07:45	1.5
@@ -1,4 +1,4 @@
-!standard 0.3   (3)                                 04-12-02  AI95-00387/03
+!standard 0.3   (3)                                 04-12-30  AI95-00387/03
 !standard 0.3   (5)
 !standard 0.3   (6)
 !standard 0.3   (32)
@@ -228,11 +228,300 @@
 
 Not applicable
 
---!corrigendum
+!corrigendum 0.3(3)
 
+@drepl
+@xbullet<Rationale for the Ada Programming Language -- 1995 edition, which
+gives an introduction to the new features of Ada, and explains the rationale
+behind them. Programmers should read this first.>
+@dby
+@xbullet<Ada 95 Rationale. This gives an introduction to the new features of
+Ada incorporated in the 1995 edition of this Standard, and explains
+the rationale behind them. Programmers unfamiliar with Ada 95 should
+read this first.>
+
+@xbullet<Ada 2005 Rationale. This gives an introduction to the changes and new
+features in Ada 2005 (compared with the 1995 edition), and explains
+the rationale behind them. Programmers should read this rationale
+before reading this Standard in depth.>
+
+!corrigendum 0.3(5)
+
+@drepl
+@xbullet<The Annotated Ada Reference Manual (AARM). The AARM contains all of
+the text in the RM95, plus various annotations. It is intended primarily for
+compiler writers, validation test writers, and others who wish to study the
+fine details. The annotations include detailed rationale for individual rules
+and explanations of some of the more arcane interactions among the rules.>
+@dby
+@xbullet<The Annotated Ada Reference Manual (AARM). The AARM contains all of
+the text in the consolidated Ada Reference Manual, plus various annotations. It
+is intended primarily for compiler writers, validation test writers, and others
+who wish to study the fine details. The annotations include detailed rationale
+for individual rules and explanations of some of the more arcane interactions
+among the rules.>
+
+!corrigendum 0.3(6)
+
+@drepl
+Ada was originally designed with three overriding concerns: program reliability
+and maintenance, programming as a human activity, and efficiency. This revision
+to the language was designed to provide greater flexibility and extensibility,
+additional control over storage management and synchronization, and
+standardized packages oriented toward supporting important application areas,
+while at the same time retaining the original emphasis on reliability,
+maintainability, and efficiency.
+@dby
+Ada was originally designed with three overriding concerns: program reliability
+and maintenance, programming as a human activity, and efficiency. The 1995
+revision to the language was designed to provide greater flexibility and
+extensibility, additional control over storage management and synchronization,
+and standardized packages oriented toward supporting important application
+areas, while at the same time retaining the original emphasis on reliability,
+maintainability, and efficiency. This amended version provides further
+flexibility and adds more standardized packages within the framework provided
+by the 1995 revision.
+
+!corrigendum 0.3(32)
+
+@drepl
+An enumeration type defines an ordered set of distinct enumeration literals,
+for example a list of states or an alphabet of characters. The enumeration
+types Boolean, Character, and Wide_Character are predefined.
+@dby
+An enumeration type defines an ordered set of distinct enumeration literals,
+for example a list of states or an alphabet of characters. The enumeration
+types Boolean, Character, Wide_Character, and Wide_Wide_Character are
+predefined.
+
+!corrigendum 0.3(34)
+
+@drepl
+Composite types allow definitions of structured objects with related
+components. The composite types in the language include arrays and records. An
+array is an object with indexed components of the same type. A record is an
+object with named components of possibly different types. Task and protected
+types are also forms of composite types. The array types String and Wide_String
+are predefined.
+@dby
+Composite types allow definitions of structured objects with related
+components. The composite types in the language include arrays and records. An
+array is an object with indexed components of the same type. A record is an
+object with named components of possibly different types. Task and protected
+types are also forms of composite types. The array types String, Wide_String,
+and Wide_Wide_String are predefined.
+
+!corrigendum 0.3(38)
+
+@dinsa
+From any type a new type may be defined by derivation. A type, together with
+its derivatives (both direct and indirect) form a derivation class. Class-wide
+operations may be defined that accept as a parameter an operand of any type in
+a derivation class. For record and private types, the derivatives may be
+extensions of the parent type. Types that support these object-oriented
+capabilities of class-wide operations and type extension must be tagged, so
+that the specific type of an operand within a derivation class can be
+identified at run time. When an operation of a tagged type is applied to an
+operand whose specific type is not known until run time, implicit dispatching
+is performed based on the tag of the operand.
+@dinst
+Interface types provide abstract models from which other interfaces and types
+may be composed and derived. This provides a reliable form of multiple
+inheritance. Interface types may also be implemented by synchronized types
+(task types and protected types) thereby enabling concurrent programming and
+inheritance to be merged.
+
+!corrigendum 0.3(41)
+
+@drepl
+Representation clauses can be used to specify the mapping between types and
+features of an underlying machine. For example, the user can specify that
+objects of a given type must be represented with a given number of bits, or
+that the components of a record are to be represented using a given storage
+layout. Other features allow the controlled use of low level, nonportable, or
+implementation-dependent aspects, including the direct insertion of machine
+code.
+@dby
+Aspect clauses can be used to specify the mapping between types and
+features of an underlying machine. For example, the user can specify that
+objects of a given type must be represented with a given number of bits, or
+that the components of a record are to be represented using a given storage
+layout. Other features allow the controlled use of low level, nonportable, or
+implementation-dependent aspects, including the direct insertion of machine
+code.
+
+!corrigendum 0.3(42)
+
+@drepl
+The predefined environment of the language provides for input-output and other
+capabilities (such as string manipulation and random number generation) by
+means of standard library packages. Input-output is supported for values of
+user-defined as well as of predefined types. Standard means of representing
+values in display form are also provided. Other standard library packages are
+defined in annexes of the standard to support systems with specialized
+requirements.
+@dby
+The predefined environment of the language provides for input-output and other
+capabilities by
+means of standard library packages. Input-output is supported for values of
+user-defined as well as of predefined types. Standard means of representing
+values in display form are also provided.
+
+The predefined standard library packages provide facilities such as string
+manipulation, containers of various kinds (vectors, lists, maps etc.),
+mathematical functions, random number generation, and access to the
+execution environment.
+
+The specialized annexes define further predefined library packages and
+facilities with emphasis on areas such as real-time scheduling,
+interrupt handling, distributed systems, numerical computation, and
+high-integrity systems.
+
+!corrigendum 0.3(44)
+
+@drepl
+This International Standard replaces the first edition of 1987. In this
+edition, the following major language changes have been incorporated:
+@dby
+This amended International Standard updates the edition of 1995 which
+replaced the first edition of 1987. In the 1995 edition, the following
+major language changes were incorporated:
+
+!corrigendum 0.3(45)
+
+@drepl
+@xbullet<Support for standard 8-bit and 16-bit character sets. See Section 2,
+3.5.2, 3.6.3, A.1, A.3, and A.4.>
+@dby
+@xbullet<Support for standard 8-Bit and 16-bit characters was added. See
+clauses 2.1, 3.5.2, 3.6.3, A.1, A.3, and A.4.>
+
+!corrigendum 0.3(46)
+
+@drepl
+@xbullet<Object-oriented programming with run-time polymorphism. See the
+discussions of classes, derived types, tagged types, record extensions, and
+private extensions in clauses 3.4, 3.9, and 7.3. See also the new forms of
+generic formal parameters that are allowed by 12.5.1, ``Formal Private and
+Derived Types'' and 12.7, ``Formal Packages''.>
+@dby
+@xbullet<The type model was extended to include facilities for object-oriented
+programming with dynamic polymorphism. See the discussions of classes, derived
+types, tagged types, record extensions, and private extensions in clauses 3.4,
+3.9, and 7.3. Additional forms of generic formal parameters were allowed as
+described in clauses 12.5.1 and 12.7.>
+
+!corrigendum 0.3(47)
+
+@drepl
+@xbullet<Access types have been extended to allow an access value to designate
+a subprogram or an object declared by an object declaration (as opposed to just
+a heap-allocated object). See 3.10.>
+@dby
+@xbullet<Access types were extended to allow an access value to designate a
+subprogram or an object declared by an object declaration as opposed to
+just an object allocated on a heap. See clause 3.10.>
+
+!corrigendum 0.3(48)
+
+@drepl
+@xbullet<Efficient data-oriented synchronization is provided via protected
+types. See Section 9.>
+@dby
+@xbullet<Efficient data-oriented synchronization was provided by the
+introduction of protected types. See clause 9.4.>
+
+
+!corrigendum 0.3(49)
+
+@drepl
+@xbullet<The library units of a library may be organized into a hierarchy of
+parent and child units. See Section 10.>
+@dby
+@xbullet<The library structure was extended to allow library units to be
+organized into a hierarchy of parent and child units. See clause 10.1.>
+
+!corrigendum 0.3(50)
+
+@drepl
+@xbullet<Additional support has been added for interfacing to other languages.
+See Annex B.>
+@dby
+@xbullet<Additional support was added for interfacing to other languages.
+See Annex B.>
+
+!corrigendum 0.3(51)
+
+@drepl
+@xbullet<The Specialized Needs Annexes have been added to provide specific
+support for certain application areas:>
+@dby
+@xbullet<The Specialized Needs Annexes were added to provide specific support
+for certain application areas:>
+
+!corrigendum 0.3(57)
+
+@drepl
+@xinbull<Annex H, ``Safety and Security''>
+@dby
+@xinbull<Annex H, ``High Integrity Systems''>
+
+Amendment 1 modifies the 1995 International Standard by making changes and
+additions that improve the capability of the language and the reliability of
+programs written in the language. In particular the changes were designed to
+improve the portability of programs, interfacing to other languages, and
+both the object-oriented and real-time capabilities.
+
+The following significant changes with respect to the 1995 edition are
+incorporated:
+
+@xbullet<Support for program text is extended to cover the entire ISO/IEC
+10646:2003 repertoire. Execution support now includes the 32-bit character
+set. See clauses 2.1, 3.5, 3.6, A.1, A.3, and A.4.>
+
+@xbullet<The object-oriented model has been improved by the addition of an
+interface facility which provides multiple inheritance and additional
+flexibility for type extensions. See clauses 3.4, 3.9, and 7.3. An
+alternative notation for calling operations more akin to that used in
+other languages has also been added. See clause 4.1.3.>
+
+@xbullet<Access types have been further extended to unify properties such as
+the ability to access constants and to exclude null values. See clause
+3.10. Anonymous access types are now permitted more freely and anonymous
+access-to-subprogram types are introduced. See clauses 3.3, 3.6, 3.10, and
+8.5.1.>
+
+@xbullet<The control of structure and visibility has been enhanced to
+permit mutually dependent references between units and finer control
+over access from the private part of a package. See clauses 3.10.1 and
+10.1.2. In addition, limited types have been made more useful by the
+provision of aggregates, constants, and constructor functions. See clauses
+4.3, 6.5, and 7.5.>
+
+@xbullet<The predefined environment has been extended to include additional time
+and calendar operations, improved string handling, a comprehensive
+container library, file and directory management, and access to
+environment variables. See clauses 9.6.1, A.4, A.16, A.17, and A.18.>
+
+@xbullet<Two of the Specialized Needs Annexes have been considerably enhanced:>
+
+@xinbull<The Real-Time Systems Annex now includes the Ravenscar profile for
+high-integrity systems, further dispatching policies such as Round Robin
+and Earliest Deadline First, support for timing events, and support for
+control of CPU time utilization. See clauses D.2, D.13, D.14, and D.15.>
+
+@xinbull<The Numerics Annex now includes support for real and complex vectors
+and matrices as previously defined in ISO/IEC 13813:1997 plus further basic
+operations for linear algebra. See clause G.3.>
+
+@xbullet<The overall reliability of the language has been enhanced by a number
+of improvements. These include new syntax which detects accidental overloading,
+as well as pragmas for making assertions and giving better control over the
+suppression of checks. See clauses 6.1, 11.4.2, and 11.5.>
+
 !ACATS test
 
-Not applicable
+Not applicable, this is just introductory material.
 
 !appendix
 

Questions? Ask the ACAA Technical Agent