Programs as Paths: An Approach to Timing Constraint Analysis

A program can be decomposed into a set of possible execution paths. These can be described in terms of primitives such as assignments, assumptions and coercions, and composition operators such as sequential composition and nondeterministic choice as well as finitely or infinitely iterated sequential composition. Some of these paths cannot possibly be followed (they are dead or infeasible), and they may or may not terminate. Decomposing programs into paths provides a foundation for analyzing properties of programs. Our motivation is timing constraint analysis of real-time programs, but the same techniques can be applied in other areas such as program testing. In general the set of execution paths for a program is infinite. For timing analysis we would like to decompose a program into a finite set of subpaths that covers all possible execution paths, in the sense that we only have to analyze the subpaths in order to determine suitable timing constraints that cover all execution paths.

[1]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[2]  Ian J. Hayes,et al.  A sequential real-time refinement calculus , 2001, Acta Informatica.

[3]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[4]  Colin J. Fidge,et al.  A real-time refinement calculus that changes only time , 1996 .

[5]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[6]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[7]  Colin J. Fidge,et al.  Semantic characterisation of dead control-flow paths , 2001, IEE Proc. Softw..

[8]  Robin W. Whitty Reply to the Rebuttal of the review of Beizer's ‘Software Testing Techniques’ (2nd edn) , 1994, Softw. Test. Verification Reliab..

[9]  Colin J. Fidge,et al.  Linear Approximation of Execution-Time Constraints , 2003, Formal Aspects of Computing.

[10]  Colin J. Fidge,et al.  The deadline command , 1999, IEE Proc. Softw..

[11]  Dexter Kozen,et al.  Kleene algebra with tests , 1997, TOPL.

[12]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[13]  Ian J. Hayes Real-Time Program Refinement Using Auxiliary Variables , 2000, FTRTFT.

[14]  Ian J. Hayes Reasoning about real-time repetitions: terminating and nonterminating , 2002, Sci. Comput. Program..

[15]  Eric C. R. Hehner,et al.  A Practical Theory of Programming , 1993, Texts and Monographs in Computer Science.

[16]  Doron A. Peled,et al.  Path Exploration Tool , 1999, TACAS.

[17]  Ralph-Johan Back,et al.  Reasoning algebraically about loops , 1999, Acta Informatica.