Found in 3 comments on Hacker News
pjmlp · 2021-02-20 · Original thread
Yep, here some very good books about it, specially relevant given the main subject.

"Building High Integrity Applications with SPARK"

https://www.amazon.com/Building-High-Integrity-Applications-...

"Building Parallel, Embedded, and Real-Time Applications with Ada"

https://www.amazon.com/Building-Parallel-Embedded-Real-Time-...

"Embedded Software Development for Safety-Critical Systems"

https://www.amazon.com/Embedded-Software-Development-Safety-...

johnisgood · 2019-02-25 · Original thread
I am surprised it does not mention Ada. I really feel like that Ada is not getting enough attention, it definitely deserves more. Even if you have heard of the language before, please do check out some of the resources available, you will not regret it!

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:

https://www.amazon.com/Building-Parallel-Embedded-Real-Time-...

https://www.amazon.com/Concurrent-Real-Time-Programming-Alan...

...other good resources:

https://en.wikibooks.org/wiki/Ada_Style_Guide/Concurrency

https://www.adacore.com/uploads/books/pdf/AdaCore-Tech-Cyber...

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.

pjmlp · 2017-10-14 · Original thread
I live in Germany, do not always bother to check if the URL contains locale information.

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

https://archive.org/details/byte-magazine-1981-08 https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk....

"Building Parallel, Embedded, and Real-Time Applications with Ada" - John McCormick

https://www.amazon.co.uk/Building-Parallel-Embedded-Real-Tim...

"Project Oberon: The Design Of An Operating System And Compiler" - Niklaus Wirth

https://www.amazon.co.uk/Project-Oberon-Design-Operating-Com...

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.

http://www.astrobe.com/default.htm

https://www.mikroe.com/products/#compilers-software

https://www.ptc.com/en/products/developer-tools

Fresh book recommendations delivered straight to your inbox every Thursday.