On Assertions
Landing page for Assertions.
1 Assertions Intro
- ./assertions-101.html A fairly long overview. Process state, invariants, Floyd-Hoare Triplets, Pre- Post-Conditions.
- ./assertions-in-the-small.html Short programs with assertions
- ../Examples/tiny-examples.html Tiny Programming Examples with a Software Engineering Perspective
- The 3n+1 Termination Problem
- Assertions in Java
- Assertions in C++
- Practical-Advice on Writing Assertions
2 WP Calculus
- Weakest Preconditions, wp(S, Q). Dijkstra.
3 Java Modeling Language (JML)
- http://www.openjml.org/
- JML Intro
4 Tools for Assertions
- http://frama-c.com/ "Frama-C is an extensible and collaborative platform dedicated to source-code analysis of C software." FOSS.
- http://www.key-project.org/ "Integrated Deductive Software Design" For Java. FOSS.
- http://types.cs.washington.edu/checker-framework/ "The Checker Framework enhances Java's type system … detect and prevent errors … includes compiler plug-ins ("checkers") that find bugs or verify their absence." FOSS. 2016
- http://www.coverity.com/ Research from Stanford U. Discovered 1000+ bugs in Linux kernel. Bought by https://www.synopsys.com/. Expensive to buy their service commercially. "Coverity Scan is our free, cloud-based solution specifically for the Open Source Community." Read https://www.synopsys.com/software-integrity.html
- 2018 All the above are actively being used and developed.
5 Design by Contract
- ../OODesign/design-by-contract.html
- ../OODesign/meyer-design-by-contract-1992-markedUp.pdf Bertrand Meyer's full paper with marked up areas by me.
- Design-by-Contract Webinar by Bertrand Meyer, Professor of Software Engineering, ETH Zurich; ACM Fellow; September 17, 2015
- ./JML/jmldbc-2006-markedUp.pdf Design-by-Contract ./JML/jmldbc.pdf
- http://google-opensource.blogspot.com/2011/02/contracts-for-java.html February 4, 2011
6 References
Embedded. All Recommended Reading.