"Building High Integrity Applications with SPARK"
"Building Parallel, Embedded, and Real-Time Applications with Ada"
"Embedded Software Development for Safety-Critical Systems"
It has been supporting multiprocessor, multi-core, and multithreaded architectures for as long as it has been around. It has language constructs to make it really easy to develop, say, embedded parallel and real-time programs. It is such a breeze. I admit I am not quite sure what they are referring to by fearless, but if it means that they can handle concurrent programming safely and efficiently in a language, well, then Ada definitely has it.
Ada is successful in the domain of mission-critical software, which involves air traffic control systems, avionics, medical devices, railways, rockets, satellites, and so on.
Ada is one of the few programming languages to provide high-level operations to control and manipulate the registers and interrupts of input and output devices.
Ada has concurrency types, and its type system integrates concurrency (threading, parallelism) neatly. Protected types for data-based synchronization, and task types for concurrency. They of course can be unified through the use of interface inheritance, and so on.
If you are interested in building such programs, I recommend two books:
...other good resources:
The last PDF will summarize in what ways Ada is awesome for:
- contract-based programming (with static analysis tools (formal verification, etc.))
- object-oriented programming
- concurrent programming
- systems programming
- real-time programming
- developing high-integrity systems
and a lot more. It also gives you a proper introduction to the language's features.
Anyone that actually programmed MS-DOS, knows that we used to program directly against the hardware for actual work. MS-DOS was nothing more than what is usually known as monitor in OS literature.
Continuing the texts from people more relavant to the CS world than me,
"An operating system is a collection of things that don't fit into a language. There shouldn't be one." - Dan Ingalls on
"Building Parallel, Embedded, and Real-Time Applications with Ada" - John McCormick
"Project Oberon: The Design Of An Operating System And Compiler" - Niklaus Wirth
And not to let this just be theory, here are a few examples of commercial products using the language runtime to interface with the hardware.
Fresh book recommendations delivered straight to your inbox every Thursday.