Version 1.1 of ai05s/ai05-0245-1.txt

Unformatted version of ai05s/ai05-0245-1.txt version 1.1
Other versions for file ai05s/ai05-0245-1.txt

!standard 0.3(57.11/2)          11-03-10 AI05-0245-1/01
!class Amendment 11-03-10
!status Amendment 2012 11-03-10
!status work item 11-03-10
!status received 11-03-10
!priority Low
!difficulty Easy
!subject Introduction update for Ada 2012
!summary
The Introduction to the standard is updated to reflect the additions of Ada 2012.
!problem
The Introduction of the Standard does not reflect the additions of Ada 2012.
!proposal
Ask John Barnes to write a nice introduction.
!wording
Add after Introduction (57.11/2):
Amendment 2 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, enhancements are made to address two important issues, namely, the particular problems of multiprocessor architectures, and the need to further increase the capabilities regarding assertions for correctness.
The following significant changes with respect to the 1995 edition as amended by Amendment 1 are incorporated:
* New syntax (the aspect specification) is introduced to enable properties to be specified for various entities in a more structured manner than through pragmas. See clause 13.3.1.
* The concept of assertions introduced in the 2005 edition is extended with the ability to specify preconditions and postconditions for subprograms, and invariants for private types. The concept of constraints in defining subtypes is supplemented with subtype predicates which enable subsets to be specified other than as simple ranges. These properties are all indicated using aspect specifications. See clauses 3.2.4, 13.3.2, and 13.3.3.
* New forms of expressions are introduced. These are if expressions, case expressions, quantified expressions and expression functions. As well as being useful for programming in general in avoiding the introduction of unnecessary assignments, they are especially valuable in conditions and invariants since they avoid the need to introduce auxiliary functions. See clauses 4.5.7, 4.5.8, and 6.8. Membership tests are also made more flexible. See clauses 4.4 and 4.5.2.
* A number of changes are made to parameters. Functions may now have parameters of all modes. In order to mitigate consequent (and indeed existing) problems of inadvertent order dependence, rules are introduced to reduce aliasing. A parameter may now be explicitly marked as aliased and incomplete types may be used as parameters in certain circumstances. See clauses 3.10.1, 6.1, and 6.4.1.
* The use of access types is now more flexible. The rules for accessibility and certain conversions are improved. See clauses 3.10.2, 4.5.2, 4.6, and 8.6. Furthermore, better control of storage pools is provided. See clause 13.11.4.
* The Real-Time Systems Annex now includes facilities for defining domains of processors and assigning tasks to them. Improvements are made to scheduling and budgeting facilities. See clauses D.10.1, D.14, and D.16.
* A number of important improvements are made to the standard library. These include packages for conversions between strings and UTF encodings, and classification functions for wide and wide wide characters. Internationalization is catered for by a package giving locale information. See clauses A.3, A.4.11, and A.19. The container library is extended to include bounded forms of the existing containers and new containers for indefinite objects, multiway trees, and queues. See clause A.18.
* Finally, features are added primarily to ease the use of containers such as the ability to iterate over all elements in a container without having to encode the iteration. These can also be used for iteration over arrays. See clauses 4.1.5, 4.1.6, and 5.5.1.
!discussion
We're not making any changes to the language summary.
[Should we make any changes? Do we need to? - Editor.]
!corrigendum 0.3(57.11/2)
Insert after the paragraph:
the new paragraphs:
Amendment 2 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, enhancements are made to address two important issues, namely, the particular problems of multiprocessor architectures, and the need to further increase the capabilities regarding assertions for correctness.
The following significant changes with respect to the 1995 edition as amended by Amendment 1 are incorporated:
!ACATS test
None needed.
!ASIS
No ASIS impact.
!appendix

From: John Barnes
Sent: Thursday, March 10, 2011  12:08 PM

Herewith a draft new lump of text for incorporation in the Introduction.

[This is version /01 of this AI - Editor.]

I have avoided embedding colourful comments such as (Phew - this new bit
stinks).

****************************************************************

From: Randy Brukardt
Sent: Thursday, March 10, 2011  5:26 PM

> Herewith a draft new lump of text for incorporation in the
> Introduction.

Thanks for getting this done in a timely fashion. (For the rest of you,
especially Ed, Bob, and Tucker, how are you doing with your homework?? :-) This
will be AI05-0245-1.

One solitary comment:

"The following significant changes with respect to the 2005 edition are
incorporated:"

The only problem with this is that there was no ISO edition for Ada 2005, and
for ISO purposes nothing happened in 2005 anyway (Amendment 1 was published in
2007). We have to say something like:

"The following significant changes with respect to the 1995 edition as amended
by the 2007 amendment are incorporated:"

But that probably would probably rile up the people who think that ever
mentioning the real date of 2007 is blasphony. So probably it would be better to
just mention the document by number:

"The following significant changes with respect to the 1995 edition as amended
by Amendment 1 are incorporated:"

I also found a bunch of incorrect clause references (and one missing one), all
of which I fixed. (It's pretty obvious from the text to which clauses you are
referring.)

****************************************************************

Questions? Ask the ACAA Technical Agent