Ada Programming/Ada 2022

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Ada. Time-tested, safe and secure.
Ada. Time-tested, safe and secure.

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


Summary of what's new[edit | edit source]

New profile[edit | edit source]

Jorvik is a subset of the Ada tasking capabilities, similar to Ravenscar and which imposes fewer restrictions, removing the following ones compared to the Ravenscar profile:

  • No_Implicit_Heap_Allocations
  • No_Relative_Delay
  • Simple_Barriers
  • Max_Entry_Queue_Length => 1
  • Max_Protected_Entries => 1
  • No_Dependence => Ada.Calendar
  • No_Dependence => Ada.Synchronous_Barriers

New syntax[edit | edit source]

  • Assignment target name @
  • Square brackets for array aggregates
  • Default initial conditions for types
  • Default generic parameters
  • Declare expressions
  • Reduction expressions
  • Iteration filters
  • Generalized literals

New keywords[edit | edit source]

  • parallel

New pragmas[edit | edit source]

  • Admission_Policy
  • All_Calls_Remote
  • Conflict_Check_Policy
  • Elaborate_Body
  • Generate_Deadlines
  • Preelaborable_Initialization
  • Preelaborate
  • Profile now supports the Jorvik profile
  • Pure
  • Remote_Call_Interface
  • Remote_Types
  • Shared_Passive

New aspects[edit | edit source]

  • Aggregate
  • Allows_Exit
  • Default_Initial_Condition
  • Dispatching
  • Elaborate_Body
  • Full_Access_Only
  • Global
  • Global'Class
  • Integer_Literal
  • Iterator_View
  • Max_Entry_Queue_Length
  • No_Controlled_Parts
  • No_Return (for functions)
  • Nonblocking
  • Parallel_Calls
  • Parallel_Iterator
  • Preelaborable_Initialization
  • Put_Image
  • Real_Literal
  • Relative_Deadline
  • Stable_Properties
  • Stable_Properties'Class
  • Static
  • Static_Predicate
  • String_Literal
  • Synchronization
  • Use_Formal
  • Yield

New attributes[edit | edit source]

  • Enum_Rep
  • Enum_Val
  • Index
  • Object_Size
  • Parallel_Reduce
  • Preelaborable_Initialization
  • Put_Image
  • Reduce
  • Relative_Deadline

New packages[edit | edit source]

  • Atomic_Operations
    • System.Atomic_Operations.Exchange
    • System.Atomic_Operations.Test_And_Set
    • System.Atomic_Operations.Integer_Arithmetic
    • System.Atomic_Operations.Modular_Arithmetic
  • Big Numbers
    • Ada.Numerics.Big_Numbers.Big_Integers
    • Ada.Numerics.Big_Numbers.Big_Reals
  • Containers
    • Ada.Containers.Bounded_Indefinite_Holders

See also[edit | edit source]

Wikibook[edit | edit source]