Types and invariants in the refinement calculus
Science of Computer Programming
A practical theory of programming
A practical theory of programming
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
A specification-oriented semantics for the refinement of real-time systems
Theoretical Computer Science
Specification and Compositional Verification of Real-Time Systems
Specification and Compositional Verification of Real-Time Systems
Concurrent and Real Time Systems: The CSP Approach
Concurrent and Real Time Systems: The CSP Approach
Proceedings of the International Conference on Mathematics of Program Construction, 375th Anniversary of the Groningen University
Reasoning about Non-terminating Loops Using Deadline Commands
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
A predicative semantics for real-time refinement
Programming methodology
Coercing real-time refinement: a transmitter
1FACS'96 Proceedings of the 1st BCS-FACS conference on Northern Formal Methods
Hi-index | 0.00 |
In real-time programming a timeout mechanism allows exceptional behaviour, such as a lack of response, to be handled effectively, while not overly affecting the programming for the normal case. For example, in a pump controller if the water level has gone below the minimum level and the pump is on and hence pumping in more water, then the water level should rise above the minimum level within a specified time. If not, there is a fault in the system and it should be shut down and an alarm raised. Such a situation can be handled by normal case code that determines when the level has risen above the minimum, plus a timeout case handling the situation when the specified time to reach the minimum has passed.In this paper we introduce a timeout mechanism, give it a formal definition in terms of more basic real-time commands, develop a refinement law for introducing a timeout clause to implement a specification, and give an example of using the law to introduce a timeout. The framework used is a machine-independent real-time programming language, which makes use of a deadline command to represent timing constraints in a machine-independent fashion. This allows a more abstract approach to handling timeouts.