Content deleted Content added
m Undid revision 1305049123 by Bender the Bot (talk) bot error fixed |
|||
(16 intermediate revisions by 10 users not shown) | |||
Line 1:
{{More footnotes|date=March 2010}}
'''ESC/Java''' (and more recently '''ESC/Java2'''), the "Extended Static Checker for Java," is a [[programming tool]] that attempts to find common [[run-time error]]s in [[Java (programming language)|Java]] programs at [[compile time]].<ref>{{cite conference |last1=Flanagan |first1=C. |last2=Leino |first2=K.R.M. |last3=Lillibridge |first3=M. |last4=Nelson |first4=G. |author4-link=Greg Nelson (computer scientist)|last5=Saxe |
ESC/Java is neither [[soundness|sound]] nor [[completeness (logic)|complete]]. This was intentional and aims to reduce the number of errors and/or warnings reported to the programmer, in order to make the tool more useful in practice. However, it does mean that: firstly, there are programs that ESC/Java will erroneously consider to be incorrect (known as ''false-positives''); secondly, there are incorrect programs it will consider to be correct (known as ''false-negatives''). Examples in the latter category include errors arising from [[modular arithmetic]] and/or [[Thread (computer science)|multithreading]].
Line 8:
The [[Radboud University Nijmegen|University of Nijmegen]]'s ''Security of Systems'' group released alpha versions of ESC/Java2, an extended version of ESC/Java that processes the [[Java Modeling Language|JML]] specification language through 2004. From 2004 to 2009, ESC/Java2 development was managed by the KindSoftware Research Group at [[University College Dublin]], which in 2009 moved to the [[IT University of Copenhagen]], and in 2012 to the [[Technical University of Denmark]]. Over the years, ESC/Java2 has gained many new features including the ability to reason with multiple [[Automated theorem prover|theorem prover]]s and integration with [[Eclipse (software)|Eclipse]].
[http://www.openjml.org/ OpenJML], the successor of ESC/Java2, is available for Java 1.8.<ref>
<ref>{{Cite web|url=https://sourceforge.net/p/jmlspecs/code/HEAD/tree/OpenJML/trunk/OpenJML/|title=Java Modeling Language (JML) / Code / [r9606] /OpenJML/Trunk/OpenJML}}</ref>
== See also ==
Line 19:
;Notes
{{refbegin}}
*{{cite conference |last1=Flanagan |first1=C. |last2=Kiniry |first2=K. R. M. |title=Houdini, an Annotation Assistant for ESC/Java |work=FME 2001: Formal Methods for Increasing Software Productivity |series=Lecture Notes in Computer Science |pages=500–517 |year=2001 |volume=2021 |isbn=3-540-41791-5 |doi=10.1007/3-540-45251-6_29}}
*{{cite conference |last1=Cataño |first1=N. |last2=Huisman |first2=M. |title=Formal Specification and Static Checking of
*{{cite conference |last1=Cok |first1=D. R. |last2=Kiniry |first2=J. R. |title=ESC/Java2: uniting ESC/Java and JML |work=Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices |series=Lecture Notes in Computer Science |pages=108–128 |year=2005 |volume=3362 |isbn=3-540-24287-2 |doi=10.1007/978-3-540-30569-9_6}}
*{{cite conference |last1=Chalin |first1=P. |last2=Kiniry |first2=J. R. |last3=Leavens |first3=G. T. |last4=Poll |first4=E. |title=Beyond Assertions: Advanced Specification and Verification with JML and ESC/Java2 |work=Formal Methods for Components and Objects |pages=[https://archive.org/details/formalmethodsfor0000fmco/page/342 342–363] |year=2006 |isbn=3-540-36749-7 |doi=10.1007/3-540-45614-7_16 |url=
*{{cite conference |last1=Cok |first1=D. R. |title=Specifying java iterators with JML and Esc/Java2 |work=Proceedings of the 2006 conference on Specification and verification of component-based systems |pages=71–74 |year=2006 |isbn=1-59593-586-X |doi=10.1145/1181195.1181210}}
*{{cite conference |last1=Chalin |first1=P. |title=Early detection of JML specification errors using ESC/Java2 |work=Proceedings of the 2006 conference on Specification and verification of component-based systems |pages=25–32 |year=2006 |isbn=1-59593-586-X |doi=10.1145/1181195.1181201}}
*{{cite conference |last1=Ishikawa |first1=H. |title=An Approach for Refactoring using ESC/Java2: A Simple Case Study |work=Proceedings of the 2009 conference on New Trends in Software Methodologies, Tools and Techniques |pages=61–72 |year=2009 |isbn=978-1-60750-049-0}}
*{{cite conference |last1=Poll |first1=E. |title=Teaching Program Specification and Verification Using JML and ESC/Java2 |work=Proceedings of the 2nd International Conference on Teaching Formal Methods |series=Lecture Notes in Computer Science |pages=92–104 |year=2009 |volume=5846 |isbn=978-3-642-04911-8 |doi=10.1007/978-3-642-04912-5_7 |url=
*{{cite conference |last1=James |first1=P. R. |last2=Chalin |first2=P. |title=ESC4: a modern caching ESC for Java |work=Proceedings of the 8th international workshop on Specification and verification of component-based systems |pages=19–26 |year=2009 |isbn=978-1-60558-680-9 |doi=10.1145/1596486.1596491}}
{{refend}}
== External links ==
* [http://www.hpl.hp.com/downloads/crl/jtk/ Java Programming Toolkit Source Release]{{Dead link|date=July 2025 |bot=InternetArchiveBot |fix-attempted=yes }}
* {{webarchive |url=https://web.archive.org/web/20051208055447/http://research.compaq.com/SRC/esc/ |title=Extended Static Checking for Java |date=December 8, 2005}}
* {{usurped|1=[https://web.archive.org/web/20051231203805/http://www.kindsoftware.com/products/opensource/ESCJava2/ ESC/Java2 at KindSoftware]}}
* [
* {{webarchive |url=https://web.archive.org/web/20010228175138/http://research.compaq.com/SRC/esc/escm3/download.html |title=Extended Static Checking Modula-3 |date=February 28, 2001}}
* {{usurped|1=[https://web.archive.org/web/20071002143846/http://www.researchchannel.org/prog/displayevent.aspx?rID=2761
{{DEFAULTSORT:Esc Java}}
[[Category:2002
[[Category:Static program analysis tools]]
[[Category:Formal methods tools]]
|