fbpx
Wikipedia

ESC/Java

ESC/Java (and more recently ESC/Java2), the "Extended Static Checker for Java," is a programming tool that attempts to find common run-time errors in Java programs at compile time.[1] The underlying approach used in ESC/Java is referred to as extended static checking, which is a collective name referring to a range of techniques for statically checking the correctness of various program constraints. For example, that an integer variable is greater-than-zero, or lies between the bounds of an array. This technique was pioneered in ESC/Java (and its predecessor, ESC/Modula-3) and can be thought of as an extended form of type checking. Extended static checking usually involves the use of an automated theorem prover and, in ESC/Java, the Simplify theorem prover was used.

ESC/Java is neither sound nor 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 multithreading.

ESC/Java was originally developed at the Compaq Systems Research Center (SRC). SRC launched the project in 1997, after work on their original extended static checker, ESC/Modula-3, ended in 1996. In 2002, SRC released the source code for ESC/Java and related tools. Recent versions of ESC/Java are based around the Java Modeling Language (JML). Users can control the amount and kinds of checking by annotating their programs with specially formatted comments or pragmas.

The University of Nijmegen's Security of Systems group released alpha versions of ESC/Java2, an extended version of ESC/Java that processes the 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 theorem provers and integration with Eclipse.

OpenJML, the successor of ESC/Java2, is available for Java 1.8.[2] The source is available at https://github.com/OpenJML

[3]

See also edit

References edit

  1. ^ Flanagan, C.; Leino, K.R.M.; Lillibridge, M.; Nelson, G.; Saxe, J. B.; Stata, R. (2002). Extended static checking for Java. Proceedings of the Conference on Programming Language Design and Implementation. pp. 234–245. doi:10.1145/512529.512558. ISBN 1-58113-463-0.
  2. ^ "OpenJML download site on sourceforge".
  3. ^ "Java Modeling Language (JML) / Code / [r9606] /OpenJML/Trunk/OpenJML".
Notes
  • Flanagan, C.; Kiniry, K. R. M. (2001). Houdini, an Annotation Assistant for ESC/Java. FME 2001: Formal Methods for Increasing Software Productivity. pp. 500–517. doi:10.1007/3-540-45251-6_29. ISBN 3-540-41791-5.
  • Cataño, N.; Huisman, M. (2002). Formal Specification and Static Checking of Gemplus' Electronic Purse Using ESC/Java. FME 2002:Formal Methods—Getting IT Right. pp. 272–289. doi:10.1007/3-540-45614-7_16. ISBN 3-540-43928-5.
  • Cok, D. R.; Kiniry, J. R. (2005). ESC/Java2: uniting ESC/Java and JML. Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices. pp. 108–128. doi:10.1007/978-3-540-30569-9_6. ISBN 3-540-24287-2.
  • Chalin, P.; Kiniry, J. R.; Leavens, G. T.; Poll, E. (2006). Beyond Assertions: Advanced Specification and Verification with JML and ESC/Java2. Formal Methods for Components and Objects. pp. 342–363. doi:10.1007/3-540-45614-7_16. ISBN 3-540-36749-7.
  • Cok, D. R. (2006). Specifying java iterators with JML and Esc/Java2. Proceedings of the 2006 conference on Specification and verification of component-based systems. pp. 71–74. doi:10.1145/1181195.1181210. ISBN 1-59593-586-X.
  • Chalin, P. (2006). Early detection of JML specification errors using ESC/Java2. Proceedings of the 2006 conference on Specification and verification of component-based systems. pp. 25–32. doi:10.1145/1181195.1181201. ISBN 1-59593-586-X.
  • Ishikawa, H. (2009). An Approach for Refactoring using ESC/Java2: A Simple Case Study. Proceedings of the 2009 conference on New Trends in Software Methodologies, Tools and Techniques. pp. 61–72. ISBN 978-1-60750-049-0.
  • Poll, E. (2009). Teaching Program Specification and Verification Using JML and ESC/Java2 (PDF). Proceedings of the 2nd International Conference on Teaching Formal Methods. pp. 92–104. doi:10.1007/978-3-642-04912-5_7. ISBN 978-3-642-04911-8.
  • James, P. R.; Chalin, P. (2009). ESC4: a modern caching ESC for Java. Proceedings of the 8th international workshop on Specification and verification of component-based systems. pp. 19–26. doi:10.1145/1596486.1596491. ISBN 978-1-60558-680-9.

External links edit

  • Java Programming Toolkit Source Release
  • at the Wayback Machine (archived December 8, 2005)
  • ESC/Java2 at KindSoftware
  • SRC-RR-159 Extended Static Checking. - David L. Detlefs, K. Rustan M. Leino, Greg Nelson, James B. Saxe
  • at the Wayback Machine (archived February 28, 2001)
  • Computer Science & Engineering Colloquia. University of Washington. 1999.

java, this, article, includes, list, general, references, lacks, sufficient, corresponding, inline, citations, please, help, improve, this, article, introducing, more, precise, citations, march, 2010, learn, when, remove, this, message, more, recently, extende. This article includes a list of general references but it lacks sufficient corresponding inline citations Please help to improve this article by introducing more precise citations March 2010 Learn how and when to remove this message ESC Java and more recently ESC Java2 the Extended Static Checker for Java is a programming tool that attempts to find common run time errors in Java programs at compile time 1 The underlying approach used in ESC Java is referred to as extended static checking which is a collective name referring to a range of techniques for statically checking the correctness of various program constraints For example that an integer variable is greater than zero or lies between the bounds of an array This technique was pioneered in ESC Java and its predecessor ESC Modula 3 and can be thought of as an extended form of type checking Extended static checking usually involves the use of an automated theorem prover and in ESC Java the Simplify theorem prover was used ESC Java is neither sound nor 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 multithreading ESC Java was originally developed at the Compaq Systems Research Center SRC SRC launched the project in 1997 after work on their original extended static checker ESC Modula 3 ended in 1996 In 2002 SRC released the source code for ESC Java and related tools Recent versions of ESC Java are based around the Java Modeling Language JML Users can control the amount and kinds of checking by annotating their programs with specially formatted comments or pragmas The University of Nijmegen s Security of Systems group released alpha versions of ESC Java2 an extended version of ESC Java that processes the 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 theorem provers and integration with Eclipse OpenJML the successor of ESC Java2 is available for Java 1 8 2 The source is available at https github com OpenJML 3 See also editJava Modeling Language JML References edit Flanagan C Leino K R M Lillibridge M Nelson G Saxe J B Stata R 2002 Extended static checking for Java Proceedings of the Conference on Programming Language Design and Implementation pp 234 245 doi 10 1145 512529 512558 ISBN 1 58113 463 0 OpenJML download site on sourceforge Java Modeling Language JML Code r9606 OpenJML Trunk OpenJML Notes Flanagan C Kiniry K R M 2001 Houdini an Annotation Assistant for ESC Java FME 2001 Formal Methods for Increasing Software Productivity pp 500 517 doi 10 1007 3 540 45251 6 29 ISBN 3 540 41791 5 Catano N Huisman M 2002 Formal Specification and Static Checking of Gemplus Electronic Purse Using ESC Java FME 2002 Formal Methods Getting IT Right pp 272 289 doi 10 1007 3 540 45614 7 16 ISBN 3 540 43928 5 Cok D R Kiniry J R 2005 ESC Java2 uniting ESC Java and JML Proceedings of the 2004 international conference on Construction and Analysis of Safe Secure and Interoperable Smart Devices pp 108 128 doi 10 1007 978 3 540 30569 9 6 ISBN 3 540 24287 2 Chalin P Kiniry J R Leavens G T Poll E 2006 Beyond Assertions Advanced Specification and Verification with JML and ESC Java2 Formal Methods for Components and Objects pp 342 363 doi 10 1007 3 540 45614 7 16 ISBN 3 540 36749 7 Cok D R 2006 Specifying java iterators with JML and Esc Java2 Proceedings of the 2006 conference on Specification and verification of component based systems pp 71 74 doi 10 1145 1181195 1181210 ISBN 1 59593 586 X Chalin P 2006 Early detection of JML specification errors using ESC Java2 Proceedings of the 2006 conference on Specification and verification of component based systems pp 25 32 doi 10 1145 1181195 1181201 ISBN 1 59593 586 X Ishikawa H 2009 An Approach for Refactoring using ESC Java2 A Simple Case Study Proceedings of the 2009 conference on New Trends in Software Methodologies Tools and Techniques pp 61 72 ISBN 978 1 60750 049 0 Poll E 2009 Teaching Program Specification and Verification Using JML and ESC Java2 PDF Proceedings of the 2nd International Conference on Teaching Formal Methods pp 92 104 doi 10 1007 978 3 642 04912 5 7 ISBN 978 3 642 04911 8 James P R Chalin P 2009 ESC4 a modern caching ESC for Java Proceedings of the 8th international workshop on Specification and verification of component based systems pp 19 26 doi 10 1145 1596486 1596491 ISBN 978 1 60558 680 9 External links editJava Programming Toolkit Source Release Extended Static Checking for Java at the Wayback Machine archived December 8 2005 ESC Java2 at KindSoftware SRC RR 159 Extended Static Checking David L Detlefs K Rustan M Leino Greg Nelson James B Saxe Extended Static Checking Modula 3 at the Wayback Machine archived February 28 2001 Extended Static Checking Computer Science amp Engineering Colloquia University of Washington 1999 Retrieved from https en wikipedia org w index php title ESC Java amp oldid 1065953421, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.