This Article 
 Bibliographic References 
 Add to: 
State Constraints and Pathwise Decomposition of Programs
August 1990 (vol. 16 no. 8)
pp. 880-896

A state constraint is a programming construct designed to restrict a program's domain of definition. It can be used to decompose a program pathwise, i.e. dividing the program into subprograms along the control flow, as opposed to dividing the program across the control flow when the program is decomposed into functions and procedures. As a result, a program consisting of one or more execution paths of another program can be constructed and manipulated. The author describes the idea involved, examines the properties of state constraints, establishes a formal basis for pathwise decomposition and discusses their uses in program simplification, testing and verification.

[1] R. B. Anderson,Proving Programs Correct. New York: Wiley, 1979.
[2] E. Charniak and D. McDermott,Introduction to Artificial Intelligence. Reading, MA: Addison-Wesley, 1985, p. 147.
[3] E. W. Dijkstra,A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall, 1976.
[4] N. Gehani,Ada: An Advanced Introduction. Englewood Cliffs, NJ: Prentice-Hall, 1983.
[5] J. C. Huang, "A new verification rule and its applications,"IEEE Trans. Software Eng., vol. SE-6, no. 5, pp. 480-484, Sept. 1980.
[6] J. C. Huang, "Instrumenting programs for symbolic-trace generation,"Computer, vol. 13, no. 12, Dec. 1980.
[7] J. C. King, "A new approach to program testing," inProc. of 1975 Int. Conf. Reliable Software, Los Angeles, CA, 1975.
[8] W. Leler,Constraint Programming Languages. Reading, MA: Addison-Wesley, 1988.
[9] L. G. Stucki, "Automatic generation of self-metric software," inProc. IEEE Symp. Computer Software Reliability, 1973, pp. 94-100.

Index Terms:
state constraint; programming construct; program pathwise; subprograms; control flow; execution paths; formal basis; pathwise decomposition; program simplification; testing; verification; computational complexity; program testing; software engineering.
J.C. Huang, "State Constraints and Pathwise Decomposition of Programs," IEEE Transactions on Software Engineering, vol. 16, no. 8, pp. 880-896, Aug. 1990, doi:10.1109/32.57625
Usage of this product signifies your acceptance of the Terms of Use.