ABSTRACT
jStar is a tool for automatically verifying Java programs. It uses separation logic to support abstract reasoning about object specifications. jStar can verify a number of challenging design patterns, including Subject/Observer, Visitor, Factory and Pooling. However, to use jStar one has to deal with a family of command-line tools that expect specifications in separate files and diagnose the errors by inspecting the text output from these tools.
In this paper we present a plug-in, called jStar-eclipse, allowing programmers to use jStar from within Eclipse IDE. Our plug-in allows writing method contracts in Java source files in form of Java annotations. It automatically translates Java annotations into jStar specifications and propagates errors reported by jStar back to Eclipse, pinpointing the errors to the locations in source files. This way the plug-in ensures an overall better user experience when working with jStar. Our end goal is to make automated verification based on separation logic accessible to a broader audience.
- M. Barnett, M. Fähndrich, K. Leino, P. Müller, W. Schulte, and H. Venter. Specification and verification: The spec# experience. Communications of the ACM, 54(6):81--91, 2011. Google ScholarDigital Library
- M. Barnett, K. Leino, and W. Schulte. The Spec# programming system: An overview. CASSIS, 2005. Google ScholarDigital Library
- M. Botinčan, D. Distefano, M. Dodds, R. Grigore, D. Naudžziūnienė, and M. J. Parkinson. coreStar: The Core of jStar. In Boogie 2011: 1st Intl. Workshop on Intermediate Verification Languages, 2011.Google Scholar
- L. Burdy, Y. Cheon, D. Cok, M. Ernst, J. Kiniry, G. Leavens, K. Leino, and E. Poll. An overview of JML tools and applications. International Journal on STTT, 7(3):212--232, 2005. Google ScholarDigital Library
- C. Calcagno, D. Distefano, P. W. O'Hearn, and H. Yang. Compositional shape analysis by means of BI-abduction. In POPL, 2009. Google ScholarDigital Library
- D. Distefano and M. J. Parkinson. jStar: Towards practical verification for Java. In OOPSLA, 2008. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google ScholarDigital Library
- M. J. Parkinson and G. M. Bierman. Separation logic and abstraction. In POPL, 2005. Google ScholarDigital Library
- M. J. Parkinson and G. M. Bierman. Separation logic, abstraction and inheritance. In POPL, 2008. Google ScholarDigital Library
- R. Vallée-Rai, L. Hendren, V. Sundaresan, P. Lam, E. Gagnon, and P. Co. Soot-a Java optimization framework. In CASCON, 1999.Google Scholar
Index Terms
jStar-eclipse: an IDE for automated verification of Java programs
Recommendations
Cross language refactoring for Eclipse plug-ins
WRT '08: Proceedings of the 2nd Workshop on Refactoring ToolsThis article presents our research on how a cross-language refactoring could be implemented in an Eclipse Plugin.
A non-Java language running on the Java virtual machine JVM interacts with Java code. Refactorings in either language might break the code ...
Eclipse API usage: the good and the bad
Today, when constructing software systems, many developers build their systems on top of frameworks. Eclipse is such a framework that has been in existence for over a decade. Like many other evolving software systems, the Eclipse platform has both ...
Analyzing the Eclipse API Usage: Putting the Developer in the Loop
CSMR '13: Proceedings of the 2013 17th European Conference on Software Maintenance and ReengineeringEclipse guidelines distinguish between two types of interfaces provided to third-party developers, i.e., APIs and non-APIs. APIs are stable and supported, while non-APIs are unstable, unsupported and discouraged as they are subject to arbitrary change ...
Comments