Issue No. 07 - July (1989 vol. 15)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.29487
<p>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.</p>
upper bounds; higher-level language software; assertions; real-time; computer times; lower bounds; execution times; program elements; Hoare logic; timing bounds; sequential programs; time-related statements; delay; concurrent programs; synchronization; deadlines; timing invariants; periodic processes; specification; formal logic; formal specification; real-time systems; synchronisation
A. Shaw, "Reasoning About Time in Higher-Level Language Software," in IEEE Transactions on Software Engineering, vol. 15, no. , pp. 875-889, 1989.