# SPARK

> programming language

**Wikidata**: [Q3493345](https://www.wikidata.org/wiki/Q3493345)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/SPARK_(programming_language))  
**Source**: https://4ort.xyz/entity/spark

## Summary
SPARK is a procedural programming language and software development technology introduced in 1988. It is distinguished by its adherence to strong, static, and safe typing disciplines. Developed by Altran and the University of Southampton, it is available as free and open-source software under the GNU General Public License.

## Key Facts
- **Inception:** SPARK was created in **1988**.
- **Developers:** The language was developed by **Altran** and the **University of Southampton**.
- **Type System:** It utilizes **nominative**, **static**, **strong**, and **safe** typing disciplines.
- **License:** SPARK is released under the **GNU General Public License, version 3.0**.
- **Programming Paradigm:** It functions as a **procedural programming language**.
- **Aliases:** The language is also known by the aliases **Spark**, **SPADE Ada Kernel**, and **SPADE Ada Reduced Kernel**.
- **Repository:** The source code is maintained at **github.com/AdaCore/spark2014**.
- **Official Website:** Resources and information are hosted at **adacore.com/sparkpro**.

## FAQs
### Q: What type of programming language is SPARK?
A: SPARK is a procedural programming language characterized by strong, static, and safe typing. It is designed to allow for the construction of highly reliable software systems.

### Q: Is SPARK free to use?
A: Yes, SPARK is free and open-source software. It is licensed specifically under the GNU General Public License, version 3.0.

### Q: Who created and maintains SPARK?
A: The language was originally created in 1988. Its development is attributed to the company Altran and the University of Southampton.

## Why It Matters
SPARK occupies a critical niche in the landscape of programming languages due to its rigorous approach to code safety and verification. While many languages require extensive runtime testing to find errors, SPARK's design philosophy—centered on strong, static, and safe typing—allows developers to prove mathematical properties about their code before it ever runs. This capability drastically reduces the potential for bugs and security vulnerabilities, making it a vital tool in industries where failure is not an option.

Its open-source nature under the GPL v3.0 license ensures that these high-assurance capabilities are accessible to a wide range of developers, not just those in proprietary environments. The continued collaboration between industry leaders like Altran and academic institutions like the University of Southampton ensures that SPARK remains a bridge between theoretical computer science and practical, mission-critical software engineering.

## Notable For
- **Safety and Security:** Distinguished by its "safe typing" discipline, which aids in preventing common programming errors.
- **Open Source Accessibility:** Being a high-assurance language available under the GNU GPL v3.0.
- **Academic and Industry Collaboration:** A product of combined development efforts from a major engineering firm (Altran) and a research university (Southampton).
- **Longevity:** A specialized programming language with a history dating back to 1988.

## Body
### History and Development
SPARK was originally conceived in **1988**. It exists as a dialect of a computer language and has evolved through the combined efforts of academic and industrial research. The primary entities credited with its development are **Altran**, a global engineering and enterprise consulting group, and the **University of Southampton**.

Over the years, the language has been known by several names, including:
- Spark
- SPADE Ada Kernel
- SPADE Ada Reduced Kernel

### Technical Specifications
As a **procedural programming language**, SPARK is designed to execute a sequence of instructions. Its architecture is defined by a strict **typing discipline**. Specifically, it employs:
- **Nominative typing:** Types are distinct and not interchangeable simply because they share structure.
- **Static typing:** Type checking is performed during compile-time rather than run-time.
- **Strong typing:** The language enforces strict rules on how different types of data interact.
- **Safe typing:** The design emphasizes the prevention of type errors that could lead to unsafe operations.

### Licensing and Availability
SPARK is classified as **free and open-source software**. It is distributed under the **GNU General Public License, version 3.0**. The active source code repository is hosted on GitHub under the project name **spark-adacore** (url: `https://github.com/AdaCore/spark2014`).

### Identifiers and Community
SPARK has a distinct presence in technical databases and developer communities:
- **Wikipedia:** Article title "SPARK (programming language)" available in 7 languages (including English, Spanish, Finnish, and Chinese).
- **Library Records:** Indexed by the Library of Congress (ID: sh2015001170) and the National Library of Israel.
- **Developer Q&A:** Tagged as `spark-ada` on Stack Overflow.

## References

1. [Source](https://github.com/JohnMarkOckerbloom/ftl/blob/master/data/wikimap)
2. [Source](https://github.com/AdaCore/spark2014/blob/master/LICENSE)
3. Freebase Data Dumps. 2013
4. National Library of Israel Names and Subjects Authority File
5. [OpenAlex](https://docs.openalex.org/download-snapshot/snapshot-data-format)