
There's a mini RTOS in my language - inamberclad
http://blog.adacore.com/theres-a-mini-rtos-in-my-language
======
nickpsecurity
For people wanting to learn, this article trying to use it for audio
applications will give you a nice taste of the language:

[http://www.electronicdesign.com/embedded-
revolution/assessin...](http://www.electronicdesign.com/embedded-
revolution/assessing-ada-language-audio-applications)

This Barnes book shows how it’s systematically designed for safety at every
level:

[https://www.adacore.com/books/safe-and-secure-
software](https://www.adacore.com/books/safe-and-secure-software)

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:

[http://www.eiffel.com/developers/design_by_contract_in_detai...](http://www.eiffel.com/developers/design_by_contract_in_detail.html)

[https://en.wikipedia.org/wiki/SPARK_(programming_language)](https://en.wikipedia.org/wiki/SPARK_\(programming_language\))

[https://www.amazon.com/Building-High-Integrity-
Applications-...](https://www.amazon.com/Building-High-Integrity-Applications-
SPARK/dp/1107040736)

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:

[https://www.adacore.com/community](https://www.adacore.com/community)

~~~
mcguire
SPARK might be kludgier than Rust, but the guarantees it can make are
stronger. And from what I've seen, it's less kludgy than the dependent type
systems I've seen.

~~~
nickpsecurity
I meant integrating it into FFI's expecting C code. It's true that it makes
stronger guarantees. I have a concept also that's called Brute Force Assurance
where one source gets converted into Rust, Frama-C, and SPARK. Idea is static
analysis tools for each knock out errors others can't catch. Final result is
portable C.

------
_pmf_
I wonder if the lack of mechanisms like Ada's rendez-vous or QNX' mailboxes in
other ecosystems are due to patent encumbrance.

~~~
noselasd
Those are quite old concepts - I would imagine any patent to have expired by
now.

They are also available in almost all embedded/rtos ecosystems.

------
nurettin
I wonder if rust's "fearless concurrency"[1] allows you to create threads
which can migrate between CPUs.

[1] - [https://blog.rust-lang.org/2017/11/14/Fearless-
Concurrency-I...](https://blog.rust-lang.org/2017/11/14/Fearless-Concurrency-
In-Firefox-Quantum.html)

~~~
MaxBarraclough
Threads which can move between CPUs? That's up to the OS, no?

~~~
nurettin
According to the article, an ADA partitioning scheme (ravenscar) enforces this
option.

------
irascible
Saw this on reddit. Comments were full of "What's an RTOS?" ... which made me
sad.

Real Time Operating System people.. cmon..

~~~
sametmax
What makes me sad is the arrogance of your comment. There are 1000 of things
that each of us know that you don't.

~~~
klibertp
Not knowing is normal.

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?

~~~
sametmax
If you are in a thread about a specific topic, likely filled with people
knowing what they are talking about, asking there is only natural. It's quick,
prevent you from learning the wrong information by looking it up wrong, filter
the essential... And last but not least, the answer will be added to the
thread, allowing the next readers to find it in the right context, including
search engine bots.

This is as close as it gets to a win-win.

~~~
klibertp
> If you are in a thread about a specific topic, likely filled with people
> knowing what they are talking about, asking there is only natural.

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?

~~~
sametmax
Yeah that's fair.

