Information-flow and data-flow analysis of while-programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Validation of ultrahigh dependability for software-based systems
Communications of the ACM
Combining static worst-case timing analysis and program proof
Real-Time Systems
Safety analysis of Hawk In Flight monitor
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Extreme programming explained: embrace change
Extreme programming explained: embrace change
The Infeasibility of Quantifying the Reliability of Life-Critical Real-Time Software
IEEE Transactions on Software Engineering
Is Proof More Cost-Effective Than Testing?
IEEE Transactions on Software Engineering
Exposing Uninitialized Variables: Strengthening and Extending Run-Time Checks in Ada
Ada-Europe '02 Proceedings of the 7th Ada-Europe International Conference on Reliable Software Technologies
Consolidated ada reference manual: language and standard libraries
Consolidated ada reference manual: language and standard libraries
Static analysis of Ravenscar programs
IRTAW '03 Proceedings of the 12th international workshop on Real-time Ada
A historical perspective on runtime assertion checking in software development
ACM SIGSOFT Software Engineering Notes
An Integrated Approach to High Integrity Software Verification
Journal of Automated Reasoning
Ada-Europe'03 Proceedings of the 8th Ada-Europe international conference on Reliable software technologies
Smart certification of mixed criticality systems
Ada-Europe'05 Proceedings of the 10th Ada-Europe international conference on Reliable Software Technologies
Why programming languages still matter
Rigorous Development of Complex Fault-Tolerant Systems
Hi-index | 0.00 |
Ada is unique amongst modern high-level languages in the degree to which it allows programming errors to be trapped at the compilation stage. Using a tool like the SPARK Examiner amplifies this effect and can provide a high degree of confidence that a program is well formed before we try and verify that its behaviour is correct. Despite this progress a less tractable class of errors remain: run-time exceptions. For safety-related systems a run-time error may be just as hazardous as any other logical error. For secure systems, guarding against the deliberate generation of such errors-through buffer overflow attacks for example-is vital. The paper explains how automated techniques based on formal verification or proof techniques have now matured and provide an industrial strength solution.