points by johnisgood 7 years ago

You might want to look into Ada and SPARK. It allows constraint-based programming, formal verification to verify your program's correctness, and so on.

https://www.adacore.com/about-spark

https://en.wikibooks.org/wiki/Ada_Programming/Contract_Based...

https://www.adacore.com/gems/gem-31

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

On top of that, Ada was designed with parallel programming in mind as well, so there are language constructs built in to make your job easier.