Ada Resources
Googling "Ada" will bring up many good resources but it isn't like Googling "Java", "Python" or "C++". The Ada community is not huge, but it is large.
E-Books Online
There are already some very good introductions to the Ada language available and here are links to my favourites and not favourites.
- "Introduction to Ada" by Raphael Amiard and Gustavo A. Hoffmann - This can be downloaded for free from AdaCore and is an excellent introduction to the language, clear and concise and has the first program on page 5 rather then a chapter of intro before you do anything. It looks to me like a great book. AdaCore also have some other interesting ebooks in this series, all free to download. A fantastic collection. Thank you AdaCore.
- learn.adaCore.com - A fabulous learning resource and reference resource I have used many times.
- Ada Programming - This is a fantastic wikibook on Ada, inparticular it has information on Ada programming for a variety of platforms here; Ada Programming - Installing
Physical Books
There are already some very good introductions to the Ada language available and here are links to my favourites and not favourites.
- "Programming in Ada 2012" by John Barns- This is a series of books one comes out when ever a new ada version comes out. It has become a standard introductory text and attempts to reach absolute beginners but fails to do so by having far too many assumptions about what the reader already knows. However having used the book "Ada 2005" it was OK in that the first four chapters whistle through everything and later chapters deal with things in greater detail. As a fluent C programmer it worked, but for a beginner?
- "Analysable Real-Time Systems" by Alan Burns and Andy Wellings - I found this book intensly useful because of it's clear introduction to multi-tasking, timing and other advanced Ada programming topics. It is not an absolute beginners book but works for someone new to Ada with experience in another language.
- "Real-Time Systems and Programming Languages" by Alan Burns and Andy Wellings - Another book by the same authors as the above book and a large part of the text aqppears in both books. However this book covers not only Ada but also real-time Java and C/Posix. It does not examine the advantages and disadvantages of each but rather attempts to present a neutral view as to how to solve the same problems in each language.
- "Ada Plus Data Structures: An Object Oriented Approach" by Nell Dale and John McCormick - I bought a second hand copy of this book because it is prohibitively expensive only to be totally underwhelmed by its struggle to apply object-oriented concepts to areas of programming where they offered no real benefits. If you really want a look at this book, get it from the public library first.
Other Learning Materials
I have included some material for older versions of Ada because a lot of what they have to say is still current and they can still be a good source of learning material.
Ada Reference Manuals
The Ada syntax is defined in the Ada Reference Manual (ARM) all 765 pages of it which I have
printed before realising that the pdf is easier to search and "The Anotated Ada Reference Manual" is the only easy way to understand exactly the syntax of anything!
Reference material is better off paper.
Ada Optimisation
GNAT Reference Manuals
GNAT Licensing and IDEs
Computer Languages
- Mother Tongues - A computer languages family tree.
- Rosetta Code - Everyone has heard how the Rosetta Stone was the key to deciphering Egyptian scripts. Rosetta Code shows code snippits for doing various common programming tasks in multiple languages. It is a great site to go to if you want to compare different computer languages and also a great site to go to if you want to do one of those common tasks.
Comparisons
Ada Embedded
Embedded software is software that runs on processors embedded in hardware like washing machines, rocket navigation systems, airoplanes and medical devices.
- There are many embedded projects as articles on the AdaCore Blog below are some.
- ARM very quickly and easily start Ada programming on any ARM Cortex‑M or RISC‑V microcontroller.
- STM32F429ZIT6 microcontroller Guillermo Perez's project won a finalist prize in the Make with Ada 2019/20 competition. This project was originally posted on Hackster.io
- STM32 Make with Ada 2020: CryptAda - (Nuclear) Crypto on Embedded Device.
- x86-64 CuBit: A General-Purpose Operating System in SPARK/Ada
- ESP8266 The ESP8266 micro controller by Espressif Systems is one of the cheapest MCUs that support WiFi. This makes it a popular device for wireless IoT applications.
- crypto Proving properties of constant-time crypto code in SPARKNaCl
- General DeBubgger Time travel debugging in GNAT Studio with GDB and RR.
- Android Android application with Ada and WebAssembly.
- ARM Cortex-M In the last couple of years, the maker community switched from AVR based micro-controllers (popularized by Arduino) to the ARM Cortex-M architecture. AdaFruit was at the forefront of this migration, with boards like the Circuit Playground Express or some of the Feathers.
Other