Content deleted Content added
Citation bot (talk | contribs) Alter: title. Add: date, chapter. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox3 | #UCB_webform_linked 683/2306 |
GreenC bot (talk | contribs) Rescued 1 archive link. Wayback Medic 2.5 per Category:All articles with dead external links - pass 6 |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1:
'''Extended static checking''' ('''ESC''') is a collective name in [[computer science]] for a range of techniques for [[static code analysis|statically checking]] the correctness of various program constraints.<ref>C. Flanagan, K.R.M. Leino, M. Lillibridge, G. Nelson, [[James B. Saxe|J. B. Saxe]] and R. Stata. "Extended static checking for Java". In ''Proceedings of the Conference on Programming Language Design and Implementation'', pages 234-245, 2002. doi: http://doi.acm.org/10.1145/512529.512558</ref> ESC can be thought of as an extended form of [[type checking]]. As with type checking, ESC is performed automatically at [[compile time]] (i.e. without human intervention). This distinguishes it from more general approaches to the [[formal verification]] of software, which typically rely on human-generated proofs. Furthermore, it promotes practicality over soundness, in that it aims to dramatically reduce the number of ''false positives'' (overestimated errors that are not real errors, that is, ESC over strictness) at the cost of introducing some ''false negatives'' (real ESC underestimation error, but that need no programmer's attention, or are not targeted by ESC).<ref name=GNESCUWCSC /><ref>{{cite conference | last1=Babic | first1=Domagoj | last2=Hu | first2=Alan J. | title=Calysto: Scalable and Precise Extended Static Checking | publisher=ACM Press | conference=Proceedings of the International Conference on Software Engineering (ICSE)| year=2008 | doi=10.1145/1368088.1368118 | page=}}</ref> ESC can identify a range of errors
The techniques used in extended static checking come from various fields of computer science, including [[static program analysis]], [[symbolic simulation]], [[model checking]], [[abstract interpretation]], [[satisfiability modulo theories|SAT solving]] and [[automated theorem proving]] and [[type checking]]. Extended static checking is generally performed only at an intraprocedural, rather than interprocedural, level in order to scale to large programs.<ref name=GNESCUWCSC>{{Cite web
Line 6:
| accessdate = 2012-02-01
| url = http://stage.uwtv.org/video/player.aspx?mediaid=1577083988
| archive-url = https://archive.today/20130416030925/http://stage.uwtv.org/video/player.aspx?mediaid=1577083988
}}{{Dead link|date=August 2019 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Furthermore, extended static checking aims to report errors by exploiting user-supplied specifications, in the form of [[precondition|pre-]] and [[postcondition|post-conditions]], [[loop invariant]]s and [[class invariant]]s.▼
| url-status = dead
| archive-date = April 16, 2013
▲
Extended static checkers typically operate by propagating [[predicate transformer semantics#Strongest postcondition|strongest postconditions]] (
Extended
== See also ==
Line 19 ⟶ 22:
==Further reading==
*{{cite book |author1=Cormac Flanagan |author2=K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, Raymie Stata|title=Proceedings of the ACM SIGPLAN 2002 conference on Programming language design and implementation |chapter=Extended static checking for Java
*{{cite book|last1=Babic|first1=Domagoj|first2=Alan J. |last2=Hu|title=Proceedings of the 13th international conference on Software engineering - ICSE '08 |chapter=Calysto
*{{cite book|last=Chess|first=B.V.|title=Proceedings 2002 IEEE Symposium on Security and Privacy |year=2002|chapter=Improving computer security using extended static checking|pages=160–173|doi=10.1109/SECPRI.2002.1004369|isbn=978-0-7695-1543-4|citeseerx=10.1.1.15.2090|s2cid=12067758 }}
*{{cite journal|last1=Rioux|first1=Frédéric|first2=Patrice |last2=Chalin|year=2006|title=Improving the Quality of Web-based Enterprise Applications with Extended Static Checking: A Case Study|journal=Electronic Notes in Theoretical Computer Science|volume=157|issue=2|pages=119–132|issn=1571-0661|doi=10.1016/j.entcs.2005.12.050|doi-access=free}}
*{{cite journal|last1=James|first1=Perry R.|first2=Patrice |last2=Chalin|year=2009|title=Faster and More Complete Extended Static Checking for the Java Modeling Language|journal=Journal of Automated Reasoning|volume=44|issue=1–2|pages=145–174|issn=0168-7433|doi=10.1007/s10817-009-9134-9|citeseerx=10.1.1.165.7920|s2cid=14996225 }}
*{{cite book|last=Xu|first=Dana N.|title=Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
*{{cite book|last=Leino|first=K. Rustan M.|title=Informatics |chapter=Extended Static Checking: A Ten-Year Perspective
*{{cite journal|year=1998|title=Extended Static Checking|journal=Compaq SRC Research Report|issue=159|first1=David L. |last1=Detlefs |first2=K. Rustan M. |last2=Leino |first3=Greg |last3=Nelson |first4=James B. |last4=Saxe}}
|