This Barnes book shows how it’s systematically designed for safety at every level:
Note: The AdaCore website has a section called Gems that gives tips on a lot of useful ways to apply Ada.
Finally, if you do Ada, you get the option of using Design-by-Contract (built-in to 2012) and/or SPARK language. One gives you clear specifications of program behavior that take you right to source of errors when fuzzing or something. The other is a smaller variant of Ada that integrates into automated, theorem provers to try to prove your code free of common errors in all cases versus just ones you think of like with testing. Those errors include things like integer overflow or divide by zero. Here’s some resources on those:
The book and even language was designed for people without a background in formal methods. I’ve gotten positive feedback from a few people on it. Also, I encouraged some people to try SPARK for safer, native methods in languages such as Go. It’s kludgier than things like Rust designed for that in mind but still works.
GPL download for AdaCore GNAT:
For C++ and Java practitioners : https://www.adacore.com/books/ada-for-the-c-or-java-develope... .
There's also http://university.adacore.com .
For Spark2014 you might want to start with AdaCore University also, or if you're in Paris in December there is a public training session : https://www.adacore.com/public-spark-training .
Then you might want to look up an implementation guidance : https://www.adacore.com/books/implementation-guidance-spark
And no I don't work for AdaCore :-D.
They are also available in almost all embedded/rtos ecosystems.
 - https://blog.rust-lang.org/2017/11/14/Fearless-Concurrency-I...
Real time scheduling on multicore is theoretically hard. The problem is not subtle concurrency bugs which can be squashed with a clever type system.
(I wonder if anyone has come up with the right type system for this problem, yet?)
Real Time Operating System people.. cmon..
Not learning is bad.
If I don't know what RTOS is, my first reflex is to try and learn it on my own. Only if I fail this I will try to make others to give me an answer. I don't like wasting their time and making them provide the same reply for the thousandth time looks pretty wasteful to me.
In this case, looking up RTOS in Google is as simple as it gets. People who ask what it is do so because they didn't try to learn this by themselves.
I'm not exactly a fan of such people. I accept that they have different beliefs than me, and I try my best to be tolerant, but a sense of discomfort when dealing with people like that never leaves me. Is it arrogance too, I wonder?
This is as close as it gets to a win-win.
Sure. But, is it also natural and a win-win situation if your exact question is answered multiple times upthread? Shouldn't you use your browser's search function to see if it's not answered already before posting the question?
You need this skill in your personal life, in your job, when you start a company, etc.
I suggest you try it.