The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.
-
Upload
seth-mcleod -
Category
Documents
-
view
212 -
download
0
Transcript of The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.
![Page 1: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/1.jpg)
The ideal of program correctness
Tony Hoare
CAV Seattle August 2006
![Page 2: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/2.jpg)
Scientific ideals
• accuracy of measurement
• purity of materials
• completeness of logic
• correctness of programs
• simplicity of theory
• and certainty of answers
• to the relevant basic questions
![Page 3: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/3.jpg)
Basic questions of Engineering
• What does the product do?– what is the specification?
• How does the product work?– what are its components? – what are their interfaces?– how are they connected?
![Page 4: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/4.jpg)
Basic questions of Science
• Why does it work?– what scientific theory does it rely on?
• How do we know the answers are correct?– by experiment, – by calculation, – by proof– all checked by computer.
![Page 5: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/5.jpg)
A program verifier
• automatically checks that a program conforms to its specification
• serves as an essential tool for research into the science of programming.
• proposed in 1969
• still a Grand Challenge for Computing research
![Page 6: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/6.jpg)
A Grand Challenge project
• (eg. the Human Genome 1991-2004)
• pursues scientific ideals
• involves hundreds of scientists
• with many specialist skills
• delivers a measurable outcome
• with prospects of widespread exploitation
![Page 7: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/7.jpg)
A measurable outcome
• One million lines of verified code• plus specifications, designs, assertions,...• machine-checked by a program verifier• at various levels of assurance• with hundreds of programs/modules• of various sizes: 100 to 100K lines• drawn from a wide range of applications• held in a public Repository.
![Page 8: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/8.jpg)
Levels of assurance
1. freedom from overflows, exceptions
2. soundness of internal interfaces
3. continuity of service (crash-proofing)
4. resistance to intrusion (security)
5. avoidance of damage (safety)
6. total functional correctness (the ideal)
![Page 9: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/9.jpg)
Applications drawn from
• critical systems• embedded control• operating system kernels• web services• desktop applications• open source library classes• program generators • compilers ...
![Page 10: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/10.jpg)
Repository
• conserves programs verified so far
• and the tools that checked them
• and the relevant journal record.
• Also: challenge codes not yet verified
• and specifications not yet coded
• and tools that apply to them
... selected by the research community
![Page 11: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/11.jpg)
Tools
• design environments• reverse engineering aids• test case generators• program analysers• verification condition generators• model checkers• proof engines ......all contributing to the program verifier
![Page 12: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/12.jpg)
Exploitation
• software based on rational design
• programmers make less mistakes
• mistakes are detected immediately
• software is delivered sooner
• evolves more easily
• resists attack from virus/worm/spam
• and is cheaper to develop and use
![Page 13: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/13.jpg)
Cheaper
“Based on [our] software developer and user surveys, the [US] national costs of an inadequate infrastructure for software testing is estimated to range from $22.2 to $59.5 billion. Over half these costs are borne by users...”
The Economic Impact of Inadequate Infrastructure for Software Testing. Planning report 02-03, National Institute of Standards & Technology, May 2002.
![Page 14: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/14.jpg)
Many skills
• Theory– to cover pointers, inheritance, concurrency,...
• Tools– exploit the theory in analysers, checkers, VC
generators, provers, decision procedures, ...
• Experiments– apply the tools to verify the challenge codes
and specifications
![Page 15: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/15.jpg)
Theory
• Theories abound.
• They must be unified and integrated
• and developed for incorporation in tools
• for application by other scientists
• ...and later by software engineers
![Page 16: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/16.jpg)
Tools
• Tools are exciting and prestigious.
• They need maintenance
• and customer support
• They need adaptation for inter-working
• and later for integration
• allowing continued separate evolution
... to meet user needs
![Page 17: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/17.jpg)
Experiments
• Experiments are hard work.
• They apply other peoples’ prototype tools
• to other peoples’ realistic programs
• to reach scientifically valid conclusions
• and gain experience for later advances
(... that will make earlier work trivial)
![Page 18: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/18.jpg)
IFIP Working Conference
• Verified Software: theories, tools, experiments.
• Zurich: 10 -14 Oct. 2005
• Chairmen: Tony Hoare, Jay Misra, Natarajan Shankar
• Sponsor: IFIP WG2.3 (programming methodology)
![Page 19: The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.](https://reader036.fdocuments.in/reader036/viewer/2022082917/5514c6eb550346935c8b490e/html5/thumbnails/19.jpg)
A Program Verifier
One can dream of routinely using a verifying compiler as an everyday tool. In the context of this idea our work has been extremely modest and must be considered as a small first step. We only hope that, indeed, this has been a first step of a progression which will allow this dream to come to fruition.
A Program VerifierThesis by James C. King
Carnegie Institute of TechnologySeptember 1969