Abstract
The problem of generalizing functional specifications for while loops is considered. This problem occurs frequently when trying to verify that an initialized loop satisfies some functional specification, i.e., produces outputs which are some function of the program inputs.
The notion of a valid generalization of a loop specification is defined. A particularly simple valid generalization, a base generalization, is discussed. A property of many commonly occurring while loops, that of being uniformly implemented, is defined. A technique is presented which exploits this property in order to systematically achieve a valid generalization of the loop specification. Two classes of uniformly implemented loops that are particularly susceptible to this form of analysis are defined and discussed. The use of the proposed technique is illustrated with a number of applications. Finally, an implication of the concept of uniform loop implementation for the validation of the obtained generalization is explained.
- 1 BASILI, V.R., AND NOONAN, R.E. A comparison of the axiomatic and functional models of structured programming. IEEE Trans. Softw. Eng. SE-6 (Sept. 1980), 454-465.Google Scholar
- 2 BASU, S. A note on synthesis of inductive assertions. IEEE Trans. Softw. Eng. SE-6 (Jan. 1980), 32-39.Google Scholar
- 3 BASU, S.K., AND MISRA, J. Proving loop programs. IEEE Trans. Softw. Eng. SE-1 (March 1975), 76-86.Google Scholar
- 4 BASU, S.K., AND MISRA, J. Some classes of naturally provable programs. In Proceedings of the 2nd International Conference on Software Engineering (San Francisco, Oct. 13-15). IEEE, New York, 1976, pp. 400-406. Google Scholar
- 5 DUNLOP, D., AND BASILI, V.R. A comparative analysis of functional correctness. Comput. Surv. 14, 2 (June 1982), 229-244. Google Scholar
- 6 GRIES, D. Is sometime ever better than alway? ACM Trans. Program. Lang. Syst. I (Oct. 1979), 258-265. Google Scholar
- 7 HOARE, C.A.R. An axiomatic basis for computer programming. Commun. ACM 12 (Oct. 1969), 576-583. Google Scholar
- 8 MILLS, H.D. Mathematical foundations for structured programming. Rept. FSC 72-6012, IBM Federal Systems Division, Bethesda, MD, 1972.Google Scholar
- 9 MILLS, H.D. The new math of computer programming. Commun. ACM 18 (Jan. 1975), 43-48. Google Scholar
- 10 MISRA, J. Some aspects of the verification of loop computations. IEEE Trans. Softw. Eng. SE- 4 (Nov. 1978), 478-486.Google Scholar
- 11 MISRA, J. Systematic verification of simple loops. Tech. Rep. TR-97, University of Texas, Austin, Tex., March 1979.Google Scholar
- 12 MORRIS, J.H., AND WEGBREIT, B. Subgoal induction. Commun. ACM 20 (April 1977), 209-222. Google Scholar
- 13 WEBREIT, B. Complexity of synthesizing inductive assertions. J. ACM 24 (July 1977), 504-512. Google Scholar
Index Terms
- Generalizing specifications for uniformly implemented loops
Recommendations
Transformations techniques for extracting parallelism in non-uniform nested loops
Executing a program in parallel machines needs not only to find sufficient parallelism in a program, but it is also important that we minimize the synchronization and communication overheads in the parallelized program. This yields to improve the ...
Parallelizing tightly nested loops
IPPS '91: Proceedings of the Fifth International Parallel Processing SymposiumPresents a new technique to parallelize nested loops at the statement level. It transforms sequential nested loops, either vectorizable or not, into parallel ones. Previously, the wavefront method was used to parallelize non-vectorizable nested loops. ...
Software Pipelining of Nested Loops
CC '01: Proceedings of the 10th International Conference on Compiler ConstructionSoftware pipelining is a technique to improve the performance of a loop by overlapping the execution of several iterations. The execution of a software-pipelined loop goes through three phases: prolog, kernel, and epilog. Software pipelining works best ...
Comments