skip to main content
10.1145/302405.302467acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article
Free Access

Dynamically discovering likely program invariants to support program evolution

Authors Info & Claims
Published:16 May 1999Publication History
First page image

References

  1. And98.James H. Andrews. Testing using log file analysis: Tools, methods and issues. ln Proceedings of the 13th Annual International Conference on Automated Software Engineering (ASE'98), Honolulu, Hawaii, October 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. BBM97.Nicolaj Bjomer, Anca Browne, and Zohar Manna. Automatic generation of invariants and intermediate assertions. Theoretical Computer Science, 173(1):49-87, February 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. BG93.Ivan Bratko and Marko Grobelnik. Inductive learning applied to program construction and verification. In Jose Cuena, editor, Knowledge Oriented Software Design: Extended Papers from the IFIP TC 12 Workshop on Art$cial Intelligence from the Information Processing Perspective, AIFIPP '92, Madrid, Spain, 14-15 September, 1992, pages 169-182. North-Holland, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. BG97.Bernard Boigelot and Patrice Godefroid. Automatic synthesis of specifications from the dynamic observation of reactive programs. In Proceedings of the Third International Workshop on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'97), volume 1217 of Lecture Notes in Computer Science, pages 321-333, Twente, April 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. BLS96.S. Bensalem, Y. Lakhnech, and H. Saidi. Powerful techniques for the automatic generation of invariants. ln Proceedings of the Eighth International Conference on Computer Aided Verification CAV, pages 323-335, New Brunswick, NJ, USA, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. CC77.Patrick M. Cousot and Radhia Cousot. Automatic synthesis of optimal invariant assertions: Mathematical foundations. In Proceedings of the ACM Symposium on Artijicial Intelligence and Programming Languages, volume 12(S) of ACM SIGPLAN Notices, pages l-12, Rochester, NY, August 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Coh94.William W. Cohen. Grammatically biased learning: learning logic programs using an explicit antecedent description language. Artificial Intelligence, 68:303-366,1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. CW98a.Jonathan E. Cook and Alexander L. Wolf. Discovering models of software processes from event-based data. ACM Transactions on Software Engineering and Methodology, 7(3):215-249, July 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. CW98b.Jonathan E. Cook and Alexander L. Wolf. Event-based detection of concurrency. In Sixth International Symposdum on the Foundations of Software Engineering (FSE-6), Orlando, FL, November 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. DB84.Douglas D. Dunlop and Victor R. Basili. A heuristic for deriving loop functions. IEEE Transactions on Software Engineering, 10(3):275-285, May 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. DC94.Matthew B. Dwyer and Lori A. Clarke. Datallow analysis for verifying properties of concurrent programs. ln Proceedings of the ACM SIGSOFT '94 Symposium on the Foundations of Software Engineering, pages 62-75, December 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Det96.David L. Detlefs. An overview of the Extended Static Checking system. In First Workshop on Formal Methods in Software Practice, pages 1-9, January 1996.Google ScholarGoogle Scholar
  13. EDG95.Edison Design Group. C++ Front End Xnternal Documentalion, version 2.28 edition, March 1995. http://www.edg.com.Google ScholarGoogle Scholar
  14. EGHT94.David Evans, John Gut.tag, James Horning, and Yang Meng Tan. LCLint: A tool for using specifications to check code. Proceedings of the ACM SIGSOFT '94 Symposium on Ihe Foundadions of Software Engineering, pages 87-97, December 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Eva96.David Evans. Static detection of dynamic memory errors. In Proceedings of Ihe SZGPLAN '96 Conference on PTO- gramming Language Design and Implementation, pages 44-53, Philadelphia, PA, May 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. GC96.Gerald C. GannodandBetty H.C. Cheng. Strongest postcondition semantics as the formal basis for reverse engineering. Journal of Automated Software Engineering, 3(1/2):139-164, June 1996.Google ScholarGoogle Scholar
  17. GH96.Rakesh Ghiya and Laurie J. Her&en. Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C. In Proceedings of the 23rd Annual ACM SZGPLAN- SZGACT Symposium on Principles of Programming Languages, pages l-15, St. Petersburg Beach, Florida, January 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Giv96.Robert Givan. Inferring program specifications in polynomial-time. In Proceedings of the Third Znternalional Symposium on Static Analysis, SAS '96, pages 205-219, Aachen, Germany, September 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Gri81.David Gries. The Science of Programming. Springer- Verlag, New York, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Gup90.Rajiv Gupta. A fresh look at optimizing array bound checking. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementalion, pages 272-282, White Plains, NY, USA, June 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. GW75.Steven M. German and Ben Wegbreit. A synthesizer of inductiveassertions. IEEE Transactions on Software Engineering, 1(1):68-75, March 1975.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. HFGO94.Monica Hutchins, Herb Foster, Tarak Goradia, and Thomas Ostrand. Experimentson the effectivenessof dataflowand controlflow-based test adequacy criteria. In Proceedings of the 16th Zntemzational Conference on Sojtware Engineering, pages 191-200, May 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. HHN92.Laurie J. Hendren, Joseph H-el, and Alexandru Nicolau. Abstractions for recursive pointer data structures: Improving the analysis and transformation of imperative programs. In Proceedings of the SZGPLAN '9.2 Conference on PTO- gramming Language Design and Zmplemenlation, pages 249- 260, San Francisco, California, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. HRWY98.Mary Jean Harrold, Gregg Rothermel, Rui Wu, and Liu Yi. An empirical investigation of program spectra. In ACM SZGPLAN/SZGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE '98), pages 83-90, Montreal, Canada, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. HWF90.Robert Henry, Kenneth M. Whaley, and Bruce Forstall. The University of Washington Illustrating Compiler. In PTO- ceedings of the SZGPLAN '90 Conference on Programming Language Design and Zmplemenlation, pages 223-246, June 1990. Google ScholarGoogle Scholar
  26. JGS93.Neil D. Jones, Carsten K. Gomard, and Peter Sestoft. Partial Evaluation and Automatic Program Generation. Prentice Hall, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. JH98.Ralph Jeffords and Constance Heitmeyer. Automatic generation of state invariants from requirements specifications. In Proceedings of the ACM SZGSOFT '98 Sympositim on the Foundations of Software Engineering, pages 56-69, Orlando, Florida, November 3-5, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. JvH+98.Bart Jacobs, Joachim van den Berg, Marieke H&man, Martijn van Berkum, Ulrich Hensel, and Hendrik Tews. Reasoning about Java classes. In objec&Oriented Programming Systems, Languages, and Applicalions (OOPSLA '98), Vancouver, BC, Canada, October 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. KM76.Shmuel Katz and Zohar Manna. Logical analysis of programs. Communications of the ACM, 19(4)::188-206, April 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. KW95.Priyadarshan Kolte and Michael Wolfe. Elimination of redundant array subscript range checks. In Proceedings of the SZGPLAN '95 Conference on Programming Language Design and Zmplemenlalion, pages 270-278, La Jolla, California, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. LN98.K. Rustan M. Leino and Greg Nelson. An extended static checker for Modula-3. In Compiler Construc6sn: 7th International Conference, CC'98, pages 302-305. Springer-Verlag, April 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Mit97.Tom M. Mitchell. Machine Learning. WCB/McGraw- Hill, Boston, MA, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. NCOD97.Gleb Naumovich, Lori A. Clarke, Leon J. Osterweil, and Matthew B. Dwyer. Verification of concurrent software with FLAVERS. In Proceedings of the 19th International Conference on Software Engineering, pages 594-595, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. NL98.George C. NecuIa and Peter Lee. The design and implementation of a certifying compiler. In Proceedings of Ihe ACM SZGPLAN'BB Conference on Programming Language Design and Zmplemen2atioq pages 333-344, Montreal, Canada, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. OJ97.Robert O'Callahau and Daniel Jackson. Lackwit: A program understanding tool based on type inference. In Proceedings of the 19th International Conference on Software Engineering, pages 338-348, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Pfe92.Frank Pfeting. Dependent types in logic programming. In Types in Logic Programming, chapter 10, pages 285-311. MIT Press, Cambridge, MA, 1992.Google ScholarGoogle Scholar
  37. Qui90.J. R. Quinlan. Learning logical definitions from relations. Machine Learning, 5:239-266,199O. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. RBDL97.Thomas Reps, Thomas Ball, Manuvir Drrs, and James Larus. The use of program profiling for software maintenance with applications to the year 2000 problem. In Proceedings of the Sixth European Software Engineering Confere,nce and Fifth ACM SZGSOFT Symposium on the Foundation3 of Software Engineering (ESEC/FSE 97), pages 432-449, Zurich, Switzerland, September 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. RH98.Gregg Rothermel and Mary Jean Harrold. Empirical studies of a safe regression test selection technique. TTansaclions on Software Engineering, 24(6):401-419, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. SI77.Norihisa Suzuki and Kiyoshi Ishiheta. Implementation of an array bound checker. In Proceedings of the Fourth Annual ACM Symposium on Principles of Programming Languages, pages 132-143, Los Angeles, CA, January 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. van97.Guido van Rossum. Python Reference Manual, release 1.5 edition, December 1997.Google ScholarGoogle Scholar
  42. War96.Martin P. Ward. Program analysis by formal transformation. The Compuler Journal, 39(7):598-618,1996.Google ScholarGoogle ScholarCross RefCross Ref
  43. Weg74.Ben Wegbreit. The synthesis of loop predicates. Communications of the ACM, 17(2):102-112, February 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. XP98.Hongwei Xi and Frank Pfenning. Eliminating array bound checking through dependent types. In Proceedings of Ihe ACM SZGPLAN'98 Conference on Programming Language Design and Implementation, pages 249-257, Montreal, Canada, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamically discovering likely program invariants to support program evolution

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              ICSE '99: Proceedings of the 21st international conference on Software engineering
              May 1999
              741 pages
              ISBN:1581130740
              DOI:10.1145/302405

              Copyright © 1999 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 16 May 1999

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              Overall Acceptance Rate276of1,856submissions,15%

              Upcoming Conference

              ICSE 2025

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader