< Ada Programming

Ada. Time-tested, safe and secure.

This is an overview of the major features that are available in Ada 2012, the most recent version of the Ada standard.

Summary of what's new

New syntax

Added 4 forms of expressions:

  • conditional expressions
  • case expressions
  • quantified expressions
  • expression functions

These additional expressions originated with new support for contract based programming.

New keywords

Added 1 keyword (73 total)

  • some

New pragmas

Added 5 pragmas:

Note that all these pragmas except Default_Storage_Pool born obsolescent, and it is recommended to use them as aspects instead.

New aspects

Aspect specifications is a new feature of Ada 2012. While some aspect identifiers are completely new, others were present in previous versions of the language as aspect-related pragmas or attribute-definition clauses. Note that for these pragmas, in some cases the old pragma identifiers are marked as obsolescent, while in other cases the usage of the pragma is still the recommended approach.

Added 18 aspects:

  • Constant_Indexing
  • CPU (also added as an obsolescent pragma)
  • Default_Component_Value
  • Default_Iterator
  • Default_Storage_Pool
  • Default_Value
  • Dispatching_Domain (also added as an obsolescent pragma)
  • Dynamic_Predicate
  • Implicit_Dereference
  • Independent (also added as an obsolescent pragma)
  • Independent_Components (also added as an obsolescent pragma)
  • Iterator_Element
  • Post
  • Pre
  • Static_Predicate
  • Synchronization
  • Type_Invariant
  • Variable_Indexing

Aspect specifications already present in previous versions of the language as pragmas:

  • All_Calls_Remote
  • Asynchronous (pragma now obsolescent)
  • Atomic (pragma now obsolescent)
  • Atomic_Components (pragma now obsolescent)
  • Attach_Handler (pragma now obsolescent)
  • Convention (pragma now obsolescent)
  • Elaborate_Body
  • Export (pragma now obsolescent)
  • External_Name
  • External_Tag
  • Import (pragma now obsolescent)
  • Inline (pragma now obsolescent)
  • Interrupt_Handler (pragma now obsolescent)
  • Interrupt_Priority (pragma now obsolescent)
  • Link_Name
  • No_Return (pragma now obsolescent)
  • Output
  • Pack (pragma now obsolescent)
  • Preelaborate
  • Priority (pragma now obsolescent)
  • Pure
  • Relative_Deadline (pragma now obsolescent)
  • Remote_Call_Interface
  • Remote_Types
  • Shared_Passive
  • Storage_Size (pragma now obsolescent)
  • Unchecked_Union (pragma now obsolescent)
  • Volatile (pragma now obsolescent)
  • Volatile_Components (pragma now obsolescent)

Aspect specifications already present in previous versions of the language as attribute definition clauses:

  • Address
  • Alignment
  • Bit_Order
  • Component_Size
  • Input
  • Machine_Radix
  • Read
  • Size
  • Small
  • Storage_Size
  • Storage_Pool
  • Stream_Size
  • Write

New attributes

Added 5 attributes:

  • Has_Same_Storage
  • Max_Alignment_For_Allocation
  • Old
  • Overlaps_Storage
  • Result

New packages

  • Multiprocessing:
    • System.Multiprocessors
    • System.Multiprocessors.Dispatching_Domains
  • Real-time:
    • Ada.Execution_Time.Interrupts
  • OS facilities:
    • Ada.Directories.Hierarchical_File_Names
  • Iterators:
    • Ada.Iterator_Interfaces
  • Text handling:
    • Ada.Strings.UTF_Encoding
    • Ada.Wide_Characters.Handling
    • Ada.Wide_Wide_Characters.Handling
  • Container library:
    • Ada.Containers.Multiway_Trees
    • Ada.Containers.Indefinite_Multiway_Trees
    • Ada.Containers.Indefinite_Holders
    • Ada.Containers.Bounded_Vectors
    • Ada.Containers.Bounded_Doubly_Linked_Lists
    • Ada.Containers.Bounded_Hashed_Maps
    • Ada.Containers.Bounded_Ordered_Maps
    • Ada.Containers.Bounded_Hashed_Sets
    • Ada.Containers.Bounded_Ordered_Sets
    • Ada.Containers.Bounded_Multiway_Trees
    • Ada.Containers.Synchronized_Queue_Interfaces
    • Ada.Containers.Unbounded_Synchronized_Queues
    • Ada.Containers.Bounded_Synchronized_Queues
    • Ada.Containers.Unbounded_Priority_Queues
    • Ada.Containers.Bounded_Priority_Queues

See also

Wikibook

Pages in the category Ada 2012

  • Category:Book:Ada Programming/Ada 2012 feature

Papers and presentations

Rationale

Ada Reference Manual

Ada Issues

Implementations

Press releases

This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.