A+Practical+Theory+of+Programming+02 - applications...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: applications communication protocols processors (CPUs) IBM's CICS kernel of a secure distributed operating system compilers safety-critical: medical systems, nuclear control railways: French — safety-critical, 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, mu-calculus, pi-calculus, ...) 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 stand-alone 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/vstte-hoare-misra.pdf 6/7 TEXTBOOK available FREE at www.cs.utoronto.ca/~hehner 7/7 ...
View Full Document

Ask a homework question - tutors are online