Skip to main content Accessibility help
×
Publisher:
Cambridge University Press
Online publication date:
September 2009
Print publication year:
2007
Online ISBN:
9780511546990

Book description

This book presents a unique method for decomposing a computer program along its execution paths, for simplifying the subprograms so produced, and for recomposing a program from its subprograms. This method enables us to divide and conquer the complexity involved in understanding the computation performed by a program by decomposing it into a set of subprograms and then simplifying them to the furthest extent possible. The resulting simplified subprograms are generally more understandable than the original program as a whole. The method may also be used to simplify a piece of source code by following the path-oriented method of decomposition, simplification, and recomposition. The analysis may be carried out in such a way that the derivation of the analysis result constitutes a correctness proof. The method can be applied to any source code (or portion thereof) that prescribes the computation to be performed in terms of assignment statements, conditional statements, and loop constructs, regardless of the language or paradigm used.

Refine List

Actions for selected content:

Select all | Deselect all
  • View selected items
  • Export citations
  • Download PDF (zip)
  • Save to Kindle
  • Save to Dropbox
  • Save to Google Drive

Save Search

You can save your searches here and later view and run them again in "My saved searches".

Please provide a title, maximum of 40 characters.
×

Contents

References
Aho, A. V., Sethi, R., and Ullman, J. D., Compilers: Principles, Techniques, and Tools, Addison-Wesley, Reading, MA, 1986.
Aho, A. V. and Ullman, J. D., The Theory of Parsing, Translation, and Compiling, Vol. II: Compiling, Prentice-Hall, Englewood Cliffs, NJ, 1973.
Aiken, A., “Introduction to set constraint-based program analysis,” Science of Computer Programming 35, (2–3), 79–111, 1999.
Ammons, G. and Larus, J. R., “Improving Data-Flow Analysis with Path Profiles,” Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, Montreal, Quebec, 1998, 72–84.
Amtoft, T., Nielson, F., and Nielson, H. R., Type and Effect Systems: Behaviours for Concurrency, World Scientific, Singapore, 1999.
Anderson, R. B., Proving Programs Correct, John Wiley & Sons, New York, NY, 1979.
Charniak, E. and McDermott, D., Introduction to Artificial Intelligence, Addison-Wesley, Reading, MA, 1985, p. 147.
Cousot, P. and Cousot, R., “Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints,” in the Proceeding of the ACM Symposium on Principles of Programming Languages, Association for Computing Machinery, New York, NY, 1977, pp. 238–52.
Dijkstra, E. W., “Guarded commands, nondeterminancy and formal derivation of programs,” Communications of the ACM 18, 453–7, 1975.
Dijkstra, E. W., A Discipline of Programming, Prentice-Hall, Englewood Cliffs, NJ, 1976.
Flanagan, C. and Qadeer, S., “A type and effect system for atomicity,” ACM SIGPLAN Notices 38, 338–49, 2003.
Fosdick, L. D. and Osterweil, L. J., “Data flow analysis in software reliability,” ACM Computing Surveys 8, 305–30, 1976.
Gehani, N., ADA: An Advanced Introduction, Prentice-Hall, Englewood Cliffs, NJ, 1983.
Howden, W. E. and Eichhorst, P., “Proving properties of Programs from program traces,” CS Report #18, University of California at San Diego, 1977.
Huang, J. C., “A new verification rule and its applications,” IEEE Transactions on Software Engineering SE6, 480–4, 1980a.
Huang, J. C., “Instrumenting programs for symbolic-trace generation,” Computer 13, 17–23, 1980b.
Huang, J. C., “State constraints and pathwise decomposition of programs,” IEEE Transactions on Software Engineering 16, 880–96, 1990.
Huang, J. C. and Leng, T., “Generalized loop-unrolling: A method for program speedup” in Proceedings of the 1999 IEEE Workshop on Application-Specific Software Engineering and Technology, IEEE, 1999, pp. 244–8.
Johnsonbaugh, R. and Kalin, M., Application Programming in C++, Prentice-Hall, Englewood Cliff, NJ, 1999.
Jones, N. D. and Nielson, F., “Abstract interpretation: A semantics-based tool for program analysis,” in Handbook of Logic in Computer Science, Vol. 4: Semantic Modeling, Oxford University Press, New York, NY, 1995.
Jalote, P., Vangala, V., Singh, T., and Jain, P., “Program partitioning: A framework for combining static and dynamic analysis,” in Proceedings of the 2006 International Workshop on Dynamic Systems Analysis, ACM Press, 2006, pp. 11–16.
Khurshid, S., Pǎsǎreanu, C. S., and Visser, W., "Generalized symbolic execution for model checking and testing," In H. Garavel and J. Hatcliff, editors, Tools and Algorithms for the Construction and Analysis of Systems, 9th International Conference, TACAS 2003, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2003, Warsaw, Poland, 2003, Proceedings, volume 2619 of Lecture Notes in Computer Science, Springer, 2003.
King, J. C., “A new approach to program testing,” in Proceeding of the 1975 International Conference on Reliable Software, ACM Press, 1975.
King, J. C., “Symbolic Execution and Program Testing,” Communications of te ACM 19, 385–94, 1976.
Leler, W., Constraint programming languages: Their specification and generation, Addison-Wesley, Reading, MA, 1988.
Leng, T., Program Speedup Through Generalized Loop Unrolling: Practical Aspects, Ph.D. dissertation, Department of Computer Science, University of Houston, Houston, TX, 2001.
Lunts, A. G., “A method of analysis of finite automata,” Soviet Physics – Doklady 10, 102–3, 1965.
Manna, Z., Mathematical Theory of Computation, McGraw-Hill, New York, NY, 1974.
McCabe, T. J., “A complexity measure,” IEEE Transactions on Software Engineering SE2, 308–20, 1976.
Nielson, F., Nielson, H. R., and Hankin, C., Principles of Program Analysis, 2nd ed., Springer-Verlag, New York, NY, 2005.
Prata, S., C++ Primer Plus, 5th ed., Sams Publishing, Indianapolis, 2005.
Stucki, L. G., “Automatic generation of self-metric software,” in Proceedings of the IEEE Symposium on Computer Software Reliability, IEEE, New York, NY, 1973, pp. 94–100.
Weiser, M., “Program Slicing,” IEEE Transactions on Software Engineering, SE-10, 1984, 352–7.
WIKIPEDIA: The Internet free encyclopedia, available at http://en.wikipedia.org.
Yeh, R. T., “Verification of programs by predicate transformation,” in Current Trends in Programming Methodology, Vol. II: Program Validation, Prentice-Hall, Englewood Cliffs, NJ, 1977, pp. 228–47.

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Book summary page views

Total views: 0 *
Loading metrics...

* Views captured on Cambridge Core between #date#. This data will be updated every 24 hours.

Usage data cannot currently be displayed.