Unformatted text preview: applications
communication protocols
processors (CPUs)
IBM's CICS
kernel of a secure distributed operating system
compilers
safetycritical: medical systems, nuclear control
railways: French — safetycritical, Chinese — all aspects
aerospace — attitude monitors
instrumentation systems
AT&T switching system
Airbus cabin communication
AAMP5 commercial microprocessor 1/7 programs are
commands to a computer → execution
mathematical expressions → theory of programming why theory? → proof, calculation, precision, understanding
theory = formalism + rules of proof, calculation, manipulation formal
informal careful, detailed
sloppy, sketchy formal = using formulas (mathematical expressions)
informal = using a natural language (English) 2/7 start informal (with discussion)
end formal (with program) then test, but
how do you know if the program is working?
what about the inputs you didn't test? proof tells whether program is correct for all inputs proof / verification after development
program development, with proof at each step
program modification, with proof 3/7 other theories
Hoare triples P { S } R or {P } S { R } Dijkstra's weakest preconditions w p (S , R ) Vienna Development Method (VDM)
Z and B
temporal logic ◊ process algebras (CSP, CCS, mucalculus, picalculus, ...)
event traces, interleaved histories
model checking
exhaustive automated testing
up to 1060 states ≈ 2200 states ≈ 200 bits ≈ 6 variables
abstraction, proof (not automated) 4/7 this theory
simpler
just boolean expressions
more general
includes terminating and nonterminating computation
includes sequential and parallel computation
includes standalone and interactive computation
includes time and space bounds and real time
includes probabilistic computations 5/7 prerequisites
basic boolean algebra (true, false, not, and, or)
intermediate programming, any language
assignment statement, if statement reading
C.A.R.Hoare, J.Misra: Verified Software: Theories, Tools, Experiments
www.cs.utoronto.ca/~hehner/vsttehoaremisra.pdf 6/7 TEXTBOOK available FREE
at www.cs.utoronto.ca/~hehner 7/7 ...
View
Full
Document
 Spring '11

Click to edit the document details