The Ada programming language has evolved over the years taking in the latest programming ideas from object oriented programming to contract-based programming. Ada 2012 introduced contracts into the language. Contracts have been the basis for SPARK, a variant and now subset of Ada. SPARK is designed so developers can create provable applications rather than speculations highlighted in comments.
It is now the start of Adacore’s annual Make for Ada competition. It takes in projects programmed in Ada or SPARK. The competition is managed hackster.io. The first place award is $2000 and the top ten finalist receive $600. That’s not bad for programmers just taking up Ada/SPARK or programmers that are honing their skills.
More Articles About Ada and SPARK
The Getting Started page highlights low cost platforms in case you want to use one of those. It includes a host of Cortex-M0, Cortex-M4 and Cortex-M7 plus RISC-V development kits. The Crazyflie drone is part of the mix. Anthony Gracio rewrote the C code into SPARK discovering and fixing some bugs along the way. You can build on that software rather than starting from scratch.
The free GNAT Community Edition supports ARM, RISC-V and x86 development. FYI, GNAT originally stood for GNU NYU Ada Translator. I have used the tools on the Cortex-M4 and the Crazyflie. The Common Code Generator (CCG) can generate C code allowing most other platforms to be supported. For example, it can be used to support the 8-bit AVR that is popular on Arduinos.
If you want an overview of SPARK and Ada you can take a look at a presentation I made at the Trenton Computer Festival. There are a number of ways to learn how to program in Ada and SPARK including the interactive learn.adacore.com site I wrote about recently. I recommend reading Learning from an Ada Neophyte for those who have no SPARK/Ada exposure.
There are many reasons to use SPARK and Ada including reducing costs and improving code quality. The Make with Ada is a good reason to start learning how to use the tools.
This year I will be helping to judge the competition along with Fabien Chouteau, Software Engineer at AdaCore. I hope to see one of your projects there.