All About Ada and SPARK Programming

Ada and SPARK are often used to develop applications that require high reliability and no bugs.

Ada a general purpose programming language that incorporates advanced programming features like contracts and object oriented programming support.

SPARK is a subset of the latest version of Ada that can be formally proven to be free of bugs. It takes advantage of Ada 2012’s contract support.

We have collected articles that are related to Ada and SPARK here.

What is SPARK

These articles take a look at what makes SPARK different from other programming languages. 

Ada and SPARK are programming languages that are especially applicable in systems demanding high confidence in software reliability, safety, and security.
This TechXchange includes articles about the Ada/SPARK programming language.
Ada 2012 introduced contracts that provide a way to specify how a program should work.
Ada and SPARK are typically used for developing highly reliable software and it can reduce the cost of doing so.
Nvidia is using RISC-V for its security processor, and programming is handled via Ada/SPARK.
With security always of paramount concern, NVIDIA is working with AdaCore to take advantage of SPARK and Ada in its automotive platforms.
Thinkstock
Adopting Spark
Adacore and Thales have created a white paper addressing the incremental utilization of SPARK’s provability for high assurance applications.
AdaCore
promo
A cyber-physical system leveraging SPARK offers a good way to develop and test safety-critical systems.

Comparing SPARK to Other Programming Languages

SPARK has a number of competitors when it comes to supporting safe code development including Ada on which SPARK is based. These are some articles that examine the similarities and differences. 

Programming languages often defer reliability and security issues to tools and processes. Two initiatives—SPARK and Rust—state that language is key to reaching these objectives...
This TechXchange takes a look at some programming languages that target high reliability embedded applications
Both languages approach the reliability vs. efficiency tradeoff from different angles, but each has a place in embedded-systems programming.
Programming in the large is something embedded programmers should be familiar with, as projects often last months or years and include a number of developers.

Some Resources on Ada and SPARK

Here are some more links for Ada and SPARK. 

Check out tools and projects done with the Ada and SPARK programming languages
VDC Research thinks Ada can help control software-development costs. The firm’s findings, including TCO calculations, reveal how that’s possible.
Getty Images | Adacore
make_with_ada_txc_getty
Taking a look at Adacore's Make With Ada Competition
100269668 © Ronstik | Dreamstime.com
Programmer contemplating
This is the first in a series of challenges on your ability to recognize different programming languages.
AdaPilot is a new open-source project to develop a safety-critical flight-controller system based on Ada-SPARK....

Check Out More TechXchange Topics

ID 38307812 © Cammeraydave | Dreamstime.com
id_38307812__cammeraydave__dreamstime
Search for a TechXchange
monsitj / iStock via Getty Images
High-Quality Software
High-quality software requires good programmers using the right tools and methodologies.
The Raspberry Pi platform is popular with developers and includes a range of form factors.

About the Author

William G. Wong

William G. Wong

Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sign up for our eNewsletters
Get the latest news and updates

Comment About the Article

To join the conversation, and become an exclusive member of Electronic Design, create an account today!