| What is a class invariant? |
| Full text |
Pdf
(127 KB)
|
| Source
|
Workshop on Program Analysis for Software Tools and Engineering
archive
Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
table of contents
Snowbird, Utah, United States
Pages: 86 - 89
Year of Publication: 2001
ISBN:1-58113-413-4
|
|
Author
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 26, Downloads (12 Months): 111, Citation Count: 0
|
|
|
ABSTRACT
This paper is a progress report on our research into the problem of automatically identifying and using class invariants in object-oriented programs. We introduce an example of a class invariant in Java, and review applications for class invariants in software engineering tools and in compiler optimization. We then focus on an elementary problem of definition: what is a class invariant? This question gives an interesting perspective on programming language design. We conclude that there are many reasonable categories of class invariants, and that the problem of finding good definitions cannot be solved by a thought experiment. The only way to choose good categories is to experiment with the analysis of real programs, to see which categories of class invariant are actually useful. Our current research focuses on these experiments.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
L. Boynton and J. Payne. Java class java.util.vector, Dec. 1997. Version 1.38, Sun Microsystems Inc.
|
| |
2
|
Program modularity and scaling of program analysis: position statement. Report of the Dagstuhl Seminar on Program Analysis (Dagstuhl Seminar 236), 1999.
|
| |
3
|
D. L. Detlefs, K. R. M. Leino, G. Nelson, and J. B. Saxe. Extended static checking. Compaq SRC Resarch Report 159, 1998.
|
 |
4
|
Bart Jacobs , Joachim van den Berg , Marieke Huisman , Martijn van Berkum , U. Hensel , H. Tews, Reasoning about Java classes: preliminary report, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.329-340, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
5
|
G. T. Leavens, A. L. Baker, and C. Ruby. Preliminary design of JML.Technical Report 98-060, Iowa State University, May 2001.
|
| |
6
|
|
| |
7
|
B. Meyer. The importance of the class invariant. At http://www.elj.com/eiffel/bm/invariants.
|
| |
8
|
|
| |
9
|
|
 |
10
|
|
 |
11
|
|
| |
12
|
J. van den Berg, C.-B. Breunesse, B. Jacobs, and E. Poll. On the role of invariants in reasoning about object-oriented languages. To appear in: Workshop on Formal Techniques for Java Programs, ECOOP 2001, Budapest, Hungary, June 18, 2001.
|
 |
13
|
|
|