Category:SPARK: Difference between revisions
add changed syntax coming with SPARK 2014
(Category created) |
(add changed syntax coming with SPARK 2014) |
||
(15 intermediate revisions by 6 users not shown) | |||
Line 1:
{{language|SPARK
|site=http://www.altran-praxis.com/spark.aspx
|tags=spark
|exec=machine
|gc=allowed
Line 9 ⟶ 11:
|safety=safe
|LCT=yes}}
{{language programming paradigm|concurrent}}
{{language programming paradigm|imperative}}
{{language programming paradigm|object-oriented}}
[[wp: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:
*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.
In older versions, the annotations always began, on each line, with the Ada comment symbol “--”, so all SPARK programs comply with the [[Ada]] standard. Newer versions, starting with SPARK 2014, use the aspect syntax known from Ada 2012.
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 [[SPARK_Proof_Process|here]].
The SPARK tools are freely available under the GNU GPL. The SPARK language definition is available from AdaCore at [http://docs.adacore.com/spark2014-docs/html/lrm/ SPARK 2014 Reference Manual].
The [news:comp.lang.ada comp.lang.ada] [[newsgroup]] ([http://groups.google.com/group/comp.lang.ada/topics access via Google Groups])is the main forum for discussing or asking questions about SPARK.
|