ACM Home Page
Please provide us with feedback. Feedback
An analyzable annotation language
Full text PdfPdf (256 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Seattle, Washington, USA
SESSION: Static Analysis table of contents
Pages: 231 - 245  
Year of Publication: 2002
ISBN:1-58113-471-1
Also published in ...
Authors
Sarfraz Khurshid  Massachusetts Institute of Technology, Cambridge, MA
Darko Marinov  Massachusetts Institute of Technology, Cambridge, MA
Daniel Jackson  Massachusetts Institute of Technology, Cambridge, MA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 49,   Citation Count: 5
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/582419.582441
What is a DOI?

ABSTRACT

The Alloy Annotation Language (AAL) is a language (under development) for annotating Java code based on the Alloy modeling language. It offers a syntax similar to the Java Modeling Language (JML), and the same opportunities for generation of run-time assertions. In addition, however, AAL offers the possibility of fully automatic compile-time analysis. Several kinds of analysis are supported, including: checking the code of a method against its specification; checking that the specification of a method in a subclass is compatible with the specification in the superclass; and checking properties relating method calls on different objects, such as that the equals methods of a class (and its overridings) induce an equivalence. Using partial models in place of code, it is also possible to analyze object-oriented designs in the abstract: investigating, for example, a view relationship amongst objects.The paper gives examples of annotations and such analyses. It presents (informally) a systematic translation of annotations into Alloy, a simple first-order logic with relational operators. By doing so, it makes Alloy's automatic analysis, which is based on state-of-the-art SAT solvers, applicable to the analysis of object-oriented programs, and demonstrates the power of a simple logic as the basis for an annotation language.


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
2
 
3
M. Dalal and D. Gangopahyay. OOLP: A translation approach to object-oriented logic programming. In Proc. First International Conference on Deductive and Object-Oriented Databases (DOOD-89), pages 555--568, Kyoto, Japan, Dec. 1989.
 
4
D. L. Detlefs, K. R. M. Leino, G. Nelson, and J. B. Saxe. Extended static checking. Research Report 159, Compaq Systems Research Center, 1998.
5
6
7
 
8
M. Huisman, B. Jacobs, and J. van den Berg. A case study in class library verification: Java's Vector class. Software Tools for Technology Transfer, 2001.
9
 
10
D. Jackson. Micromodels of software: Modelling and analysis with Alloy, 2001. Available online: http://sdg.lcs.mit.edu/alloy/book.pdf.
11
 
12
 
13
14
15
16
17
 
18
G. T. Leavens. An overview of Larch/C++: Behavioral specifications for C++ modules. In H. Kilov and W. Harvey, editors, Specification of Behavioral Semantics in Object-Oriented Information Modeling, pages 121--142. Kluwer Academic Publishers, 1996.
 
19
G. T. Leavens, A. L. Baker, and C. Ruby. Preliminary design of JML: A behavioral interface specification language for Java. Technical Report TR 98-06i, Department of Computer Science, Iowa State University, June 1998. (last revision: Aug 2001).
20
 
21
 
22
D. C. Luckham and F. von Henke. An overview of Anna, a specification language for Ada. In IEEE Software, volume 2, pages 9--23, Mar. 1985.
 
23
 
24
 
25
 
26
27
 
28
 
29
P. Muller, A. Poetzsch-Heffter, and G. T. Leavens. Modular specification of frame properties in JML. Technical Report 02-02, Iowa State University, Feb. 2002.
 
30
M. Roulo. How to avoid traps and correctly override methods from JLO. http://www.javaworld.com/javaworld/jw-01-1999/jw-01-object.html.
31
 
32
 
33
 
34
Sun Microsystems. Java 2 Platform, Standard Edition, v1.3.1 API Specification. http://java.sun.com/j2se/1.3/docs/api/.
 
35
 
36
M. Vaziri. Finding bugs with a constraint solver. PhD Thesis Proposal, Dept. of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA, 2002.


Collaborative Colleagues:
Sarfraz Khurshid: colleagues
Darko Marinov: colleagues
Daniel Jackson: colleagues