
Introduction to Ada and SPARK (2009) [pdf] - vezzy-fnord
https://www.cse.msu.edu/~cse814/Lectures/09_spark_intro.pdf
======
mcguire
" _Abstraction & composition ... Affects of a unit specified by its contract_"

"Affects" there is clearly a noun, thus meaning "the conscious subjective
aspect of feeling or emotion" (thank you, WordNet!). So, Ada is artificially
intelligent?!?!

(I consider the authors to be a legitimate mocking target because they're
supposed to be talking about a formal method; details matter.)

Anyway, I'd like to point out that most, if not all, of what was left out of
Ada can, in fact, be handled formally with more or less difficulty. Some are
trivial, such as goto's, while others are pretty damn hairy, like pointers and
dynamic memory. One that is particularly galling is concurrency, where "Cannot
reason about the effects of a [concurrent] module by examining its code in
isolation" is simply false although nondeterminacy does remain problematic.

Overall, I think I like the SPARK approach, although I've never dug into it in
detail.

------
JPKab
Ada represents everything that is wrong with the U.S. Department of Defense's
approach to solving their organizational problems.

Systems integration projects routinely fail in the military community, and the
reason for this, of course, must be purely the result of so many different
programming languages! Anyone who has worked in that industry can tell you
that the problem Ada was trying to solve wasn't the actual problem.

Limited number of available programmers due to absurdly arbitrary security
clearance process: Check Highly bureaucratic culture which has multiple middle
managers for every person who actually works: Check Contract award process
which is so complex that it favors proposal writing skills over software
writing skills: Check Bloated fiefdoms whose members actively fight any and
all efforts to integrate to protect their own jobs: Check

None of these problems are ever going to be solved by a programming language.

~~~
dognotdog
Disregarding that it's not a solution to the DoD's problem as such, does
Ada/SPARK have merit for writing embedded software?

I am coincidentally researching if I could rewrite parts of a personal project
in Ada (from C) to improve reliability, and so far have failed to conclude
either way.

~~~
qznc
Have you considered MISRA C?

Ada/SPARK have merit if you really want to do hard real time and formal
methods. That seems overkill for a personal project?

~~~
OopsCriticality
A problem there is cost for a personal project: are there any free or low-cost
MISRA C static checkers out there?

Frama-C might be worth looking into if the goal is improved reliability, and
they'd be able to leverage their existing C skillset.

~~~
hga
Lowest I know of is Gimpel's PC-/FlexLint, single workstation prices are $389
to run on Windows, $998 for obfuscated C source code:
[http://www.gimpel.com/html/index.htm](http://www.gimpel.com/html/index.htm)

The MISRA documentation is not very expensive and useful by itself, £15 + VAT
for an ecopy:
[http://www.misra.org.uk/?TabId=58](http://www.misra.org.uk/?TabId=58)

------
mcguire
" _one of four proposals selected as DoD’s language_ "

Does anyone know about the proposals that weren't selected?

~~~
lavezza
This looks like a good place to start.
[http://iment.com/maida/computer/redref/index.htm](http://iment.com/maida/computer/redref/index.htm)

------
squigs25
Thought this was going to be about Adaboost on Apache Spark, but it is not!

