www.kit.edu
KIT – Universit¨ at des Landes Baden-W¨ urttemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
Bernhard Beckert with M. Kirsten, V. Klebanov, M. Ulbrich, A. Weigl | RS3 Practitioner Event
Relational Specification and Verification From Non-Interference to - - PowerPoint PPT Presentation
Relational Specification and Verification From Non-Interference to Regression-free Program Evolution Bernhard Beckert with M. Kirsten, V. Klebanov, M. Ulbrich, A. Weigl | RS3 Practitioner Event www.kit.edu KIT Universit at des Landes
www.kit.edu
KIT – Universit¨ at des Landes Baden-W¨ urttemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
Bernhard Beckert with M. Kirsten, V. Klebanov, M. Ulbrich, A. Weigl | RS3 Practitioner Event
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 2/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 4/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 4/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 4/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 4/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 5/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 7/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 8/29
Bernhard Beckert Karlsruhe Institute of Technology Reiner H¨ ahnle TU Darmstadt Wolfgang Ahrendt Chalmers Univ., Gothenburg
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 9/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 9/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 9/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 9/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 9/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 9/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 9/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 9/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 10/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 10/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 11/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 11/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 12/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 12/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 12/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 12/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 13/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 14/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 14/29
Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 15/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 16/29
IF x AND y THEN z := TRUE ENDIF ...
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 16/29
IF x AND y THEN z := TRUE ENDIF ...
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 16/29
State
IF x AND y THEN z := TRUE ENDIF ...
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 16/29
IF x THEN z := y ENDIF ...
State State
IF x AND y THEN z := TRUE ENDIF ...
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 16/29
IF x THEN z := y ENDIF ...
State State
IF x AND y THEN z := TRUE ENDIF ...
Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 17/29
Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 17/29
Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 17/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 18/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 18/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 19/29
PLC[ Parameter ] :
s0 s1 s2 s3 s4 s5 s6 s7
SEmergency :
e0 e1 e2 e3 Emergency Mode
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 20/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 21/29
Start StampUp StampDown
ButtonUp ButtonDown ButtonUp ButtonDown ¬Emerg ¬Emerg
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 22/29
Start StampUp StampDown
ButtonUp ButtonDown ButtonUp ButtonDown ¬Emerg ¬Emerg
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 22/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 23/29
Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 24/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 24/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 25/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 25/29
[A. Alexandrescu. Three optimization tips for C++, 2012]
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 26/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 27/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 28/29
Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 29/29