Earlier quoted context omitted.
I don't see anything about safety for dynamic, memory management in that link. It just talks about correctness. I'm specifically wanting affine types and ownership system that let SPARK go from static to dynamic. I do like them splitting it into several levels, though. That worked under Orange Book for security.
AdaCore hired the guy that designed ParaSail, however the language development is a bit slow. https://forge.open-do.org/plugins/moinmoin/parasail/FrontPag...
Fearless concurrency in your microcontroller
51–52 of 52 posts
Re: Fearless concurrency in your microcontroller
#52Earlier quoted context omitted.
Seems AdaCore is working to add some form of borrow-checker to Spark :-) https://cps-vo.org/node/34575
In case you're interested, here was a reply from Yannick at AdaCore: https://groups.google.com/d/msg/comp.lang.ada/H35QcYiWR1Y/jJ... It seems they're adding a little bit of it for SPARK but not critical, dynamic part. I asked him at the end if they plan to go full, dynamic safety for full Ada if the SPARK experiment succeeds. Awaiting the reply.
One of the main limitations of the tech is 'no pointers' in SPARK mode. There are some tricks to hide pointers (you may want to look up the SPARK deployment guide : http://www.adacore.com/knowledge/technical-papers/implementa... ) but it would allow so much more code to be SPARK-compatible. Even in the embedded space sometimes you need pointers and linked-lists and hashmaps (and the new formal containers don't do it for you)... Frama-C allows (and seems to work with) pointers, I don't know how Well.
For Ada you can already go a long way (memory safety and data races) with protected object (nice semantics, check performance), not null pointers, controlled-types... But we're far from Rust's borrow-checker and move semantics. The name Unchecked_Deallocation (to instantiate 'Free') says it all.
Can't wait to see some progress on this !