Spark Ada Flashcards
What is Ada the required standard for?
Military applications in the US. Ada was first designed for these military applications.
What does Ada have instead of methods?
Functions and procedures
Is Ada case senstitive?
No
What is a package?
A collection of types, global variables, functions and procedures.
Why is Ada used in critical systems?
Ada was specifically designed for real time critical systems more specifically military applications.
What is SPARK Ada?
A formally verified subset of Ada, aiming to enhance software reliability, safety, and security in critical systems by leveraging formal methods and static analysis tools to mathematically prove properties about the software’s behaviour.
How many levels of analysis does SPARK Ada have?
3 Levels
What is analysed in Level 1 analysis of Spark Ada?
The correct Ada syntax is used.
What is analysed in Level 2 of Spark Ada?
Data flow analysis and Information flow analysis.
What is data flow analysis?
- Checks input/output behaviour of parameters and variables
- Checks initialisation of variables
- Checks that changed and imported variables are used later
What is information flow analysis?
Verifies interdependencies (multiple dependencies) between variables
What is analysed in Level 3 of SPARK Ada?
- Generation of verification conditions
- Proof of verification conditions
What does SPARK Ada restrict?
- Function side effects
- Control on the amount of memory used
What must be added to a program file to active SPARK Mode?
pragma SPARK_MODE(On)
What is Pragma?
Annotations to a unit in Ada