Reasoning about time in higher-level language software
- 1 July 1989
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 15 (7), 875-889
- https://doi.org/10.1109/32.29487
Abstract
A methodology for specifying and providing assertions about time in higher-level-language programs is described. The approach develops three ideas: the distinction between, and treatment of, both real-time and computer times; the use of upper and lower bounds on the execution times of program elements; and a simple extension of Hoare logic to include the effects of the passage of real-time. Schemas and examples of timing bounds and assertions are presented for a variety of statement types and programs, such as conventional sequential programs including loops, time-related statements such as delay, concurrent programs with synchronization, and software in the presence of interrupts. Examples of assertions that are proved include deadlines, timing invariants for periodic processes, and the specification of time-based events such as those needed for the recognition of single and double clicks from a mouse button.<>Keywords
This publication has 13 references indexed in Scilit:
- Microprocessor architectures: a comparison based on code generation by compilerCommunications of the ACM, 1986
- Safety analysis of timing properties in real-time systemsIEEE Transactions on Software Engineering, 1986
- Real-Time Euclid: A language for reliable real-time systemsIEEE Transactions on Software Engineering, 1986
- Toward real-time performance benchmarks for AdaCommunications of the ACM, 1986
- Special Feature: An Architecture for Real-Time Software SystemsIEEE Software, 1986
- SqueakPublished by Association for Computing Machinery (ACM) ,1985
- The ESTEREL synchronous programming language and its mathematical semanticsLecture Notes in Computer Science, 1985
- Real-Time Behavior of ProgramsIEEE Transactions on Software Engineering, 1981
- Time, clocks, and the ordering of events in a distributed systemCommunications of the ACM, 1978
- An axiomatic basis for computer programmingCommunications of the ACM, 1969