Category:SPARK: Difference between revisions

From Rosetta Code
Content added Content deleted
(Category created)
 
(Amended SPARK language description.)
Line 9: Line 9:
|safety=safe
|safety=safe
|LCT=yes}}
|LCT=yes}}
'''SPARK''' or '''SPARK Ada''' is a programming language based on [[Ada]] used for high-integrity software development.
[http://en.wikipedia.org/wiki/SPARK_programming_language '''SPARK'''] or '''SPARK Ada''' is a sub-language of Ada, supplemented with annotations (formal comments). Its primary purpose is for high-integrity applications, where static analysis of the source is used to determine properties of the program.


The properties that SPARK code can be analysed for are:
The key language feature are annotations used for static analysis of program semantics. A SPARK program without annotations is basically a legal [[Ada]] program. In relation to full [[Ada]], SPARK is a subset of, since the requirement of provability puts some constraints on which [[Ada]] constructs can be used. SPARK supports [[task|multitasking]] and [[Ada]] concurrency mechanisms using a constraining tasking profile.
*Freedom from data-flow errors.
*Freedom from information flow errors.
*Freedom from information flows that violate safety or security.
*Type safety (freedom from run-time errors).
*Functional correctness.
*Absence of dead paths.


The annotations are used by the Examiner in order to verify the program. For example, if the specified postconditions hold.
The annotations always begin, on each line, with the Ada comment symbol “--”, so all SPARK programs comply with the Ada standard.

A SPARK program can be compiled by any Ada compiler or processed by any other Ada tool.

The annotations state the required properties of a program. Different properties may require different types of annotation.

A description of the SPARK Proof process is [[Encyclopedia:SPARK Proof Process|here]].

The SPARK tools are freely available under the GNU GPL. The SPARK language definition is proprietary - the main copyright is held by [http://www.sparkada.com/ Altran-Praxis].

Revision as of 16:08, 19 August 2010

Language
SPARK
This programming language may be used to instruct a computer to perform a task.
Execution method: Compiled (machine code)
Garbage collected: Allowed
Parameter passing methods: By reference, By value
Type safety: Safe
Type strength: Strong
Type compatibility: Nominative
Type expression: Explicit
Type checking: Static
See Also:
Listed below are all of the tasks on Rosetta Code which have been solved using SPARK.

SPARK or SPARK Ada is a sub-language of Ada, supplemented with annotations (formal comments). Its primary purpose is for high-integrity applications, where static analysis of the source is used to determine properties of the program.

The properties that SPARK code can be analysed for are:

  • Freedom from data-flow errors.
  • Freedom from information flow errors.
  • Freedom from information flows that violate safety or security.
  • Type safety (freedom from run-time errors).
  • Functional correctness.
  • Absence of dead paths.

The annotations always begin, on each line, with the Ada comment symbol “--”, so all SPARK programs comply with the Ada standard.

A SPARK program can be compiled by any Ada compiler or processed by any other Ada tool.

The annotations state the required properties of a program. Different properties may require different types of annotation.

A description of the SPARK Proof process is here.

The SPARK tools are freely available under the GNU GPL. The SPARK language definition is proprietary - the main copyright is held by Altran-Praxis.

Subcategories

This category has the following 3 subcategories, out of 3 total.

Pages in category "SPARK"

The following 8 pages are in this category, out of 8 total.