Ravenscar profile: Difference between revisions
From HandWiki
(linkage) |
(update) |
||
Line 1: | Line 1: | ||
{{Short description|Feature of the Ada programming language}} | |||
The '''Ravenscar profile''' is a subset of the [[Ada (programming language)|Ada]] tasking features designed for safety-critical hard [[Real-time computing|real-time computing]]. It was defined by a separate technical report in Ada 95; it is now part of the Ada 2012 Standard. It has been named after the English village of Ravenscar, the location of the 8th International Real-Time Ada Workshop (IRTAW 8). | The '''Ravenscar profile''' is a subset of the [[Ada (programming language)|Ada]] tasking features designed for safety-critical hard [[Real-time computing|real-time computing]]. It was defined by a separate technical report in Ada 95; it is now part of the Ada 2012 Standard. It has been named after the English village of Ravenscar, the location of the 8th International Real-Time Ada Workshop (IRTAW 8). | ||
== Restrictions of the profile== | == Restrictions of the profile== | ||
A Ravenscar Ada application uses the following [[Directive (programming)|compiler directive]]: | A Ravenscar Ada application uses the following [[Directive (programming)|compiler directive]]: | ||
< | <syntaxhighlight lang="ada"> | ||
pragma Profile (Ravenscar); | pragma Profile (Ravenscar); | ||
</ | </syntaxhighlight> | ||
This is the same as writing the following set of configuration pragmas: | This is the same as writing the following set of configuration pragmas: | ||
< | <syntaxhighlight lang="ada"> | ||
pragma Task_Dispatching_Policy (FIFO_Within_Priorities); | pragma Task_Dispatching_Policy (FIFO_Within_Priorities); | ||
pragma Locking_Policy (Ceiling_Locking); | pragma Locking_Policy (Ceiling_Locking); | ||
Line 36: | Line 38: | ||
No_Dependence => Ada.Execution_Time.Timers, | No_Dependence => Ada.Execution_Time.Timers, | ||
No_Dependence => Ada.Task_Attributes); | No_Dependence => Ada.Task_Attributes); | ||
</ | </syntaxhighlight> | ||
== See also == | == See also == | ||
Line 42: | Line 44: | ||
* [[High integrity software]] | * [[High integrity software]] | ||
* [[SPARK (programming language)]] | * [[SPARK (programming language)]] | ||
* From "Ada Reference Manual (Ada | * From "Ada Reference Manual (Ada 2022"): ([http://www.ada-auth.org/standards/22rm/html/rm-d-13.html D.13 The Ravenscar and Jorvik Profiles]) | ||
== References == | == References == | ||
Line 82: | Line 84: | ||
[[Category:Ada (programming language)]] | [[Category:Ada (programming language)]] | ||
[[Category:Ada programming language family]] | [[Category:Ada programming language family]] | ||
<!-- Hidden categories below --> | |||
{{Sourceattribution|Ravenscar profile}} | {{Sourceattribution|Ravenscar profile}} |
Latest revision as of 02:45, 25 July 2025
Short description: Feature of the Ada programming language
The Ravenscar profile is a subset of the Ada tasking features designed for safety-critical hard real-time computing. It was defined by a separate technical report in Ada 95; it is now part of the Ada 2012 Standard. It has been named after the English village of Ravenscar, the location of the 8th International Real-Time Ada Workshop (IRTAW 8).
Restrictions of the profile
A Ravenscar Ada application uses the following compiler directive:
pragma Profile (Ravenscar);
This is the same as writing the following set of configuration pragmas:
pragma Task_Dispatching_Policy (FIFO_Within_Priorities); pragma Locking_Policy (Ceiling_Locking); pragma Detect_Blocking; pragma Restrictions ( No_Abort_Statements, No_Calendar, No_Dynamic_Attachment, No_Dynamic_Priorities, No_Implicit_Heap_Allocations, No_Local_Protected_Objects, No_Local_Timing_Events, No_Protected_Type_Allocators, No_Relative_Delay, No_Requeue_Statements, No_Select_Statements, No_Specific_Termination_Handlers, No_Task_Allocators, No_Task_Hierarchy, No_Task_Termination, Simple_Barriers, Max_Entry_Queue_Length => 1, Max_Protected_Entries => 1, Max_Task_Entries => 0, No_Dependence => Ada.Asynchronous_Task_Control, No_Dependence => Ada.Calendar, No_Dependence => Ada.Execution_Time.Group_Budget, No_Dependence => Ada.Execution_Time.Timers, No_Dependence => Ada.Task_Attributes);
See also
- Ada (programming language)
- High integrity software
- SPARK (programming language)
- From "Ada Reference Manual (Ada 2022"): (D.13 The Ravenscar and Jorvik Profiles)
References
- Alan Burns (December 1999). "The Ravenscar Profile". ACM SIGAda Ada Letters XIX (4): 49–52. doi:10.1145/340396.340450. http://i12www.ira.uka.de/~engelc/lehre/seminarSS07/material/RP_spec.pdf.
- Alan Burns, Brian Dobbing and Tullio Vardanega (June 2004). "Guide for the use of the Ada Ravenscar Profile in high integrity systems". ACM SIGAda Ada Letters XXIV (2): 1–74. doi:10.1145/997119.997120. https://www.sigada.org/ada_letters/jun2004/ravenscar_article.pdf.
- Template:Cite tech report
External links
![]() | Original source: https://en.wikipedia.org/wiki/Ravenscar profile.
Read more |