Everything about Extended static checking
Extended static checking (ESC) is a collective name in computer science for a range of techniques for statically checking the correctness of various program constraints. ESC can be thought of as an extended form of type checking. As with type checking, ESC is performed automatically at compile time. 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 at the cost of introducing some false negatives. ESC can identify a range of errors that are currently outside the scope of a type checker, including division by zero, array out of bounds, integer overflow and null dereferences. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Extended static checkingA 5-minute orientation
- Pick up a classic book: Modern Operating SystemsThe most-reprinted book on the subject
- Read the landmark paper: Extended static checking for JavaCited 116 times
- Go sideways: ESC/JavaA closely related topic
- Go sideways: Whiley (programming language)A closely related topic
📖 Definitions
Noun A range of techniques used for statically checking the correctness of some program constraints.
🗂️ The subject at a glance
No outline available.
🏆 Landmark papers (most cited)
Extended static checking for Java
Faster and More Complete Extended Static Checking for the Java Modeling Language
Improving the Quality of Web-based Enterprise Applications with Extended Static Checking: A Case Study
Understanding the implemented access control policy of Android system services with slicing and extended static checking
📚 Books worth reading
Modern Operating SystemsAndrew S. Tanenbaum, Herbert Bos · 1992
Java software solutionsLewis, John, John E. Lewis Ph. D. · 1997
Data Communications and NetworkingBehrouz A. Forouzan, Catherine Ann Coombs · 2000
Starting Out with JavaTony Gaddis · 2004
Data structures & algorithm analysis in JavaMark Allen Weiss · 1999
SystemVerilog for VerificationChris Spear · 2006
Direction and position finding by wirelessRonald Keen · 1920
Programming in C#E. Balagurusamy · 2002
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- 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…
- Whiley (programming language) Whiley is an experimental programming language that combines features from the functional and imperative programming paradigms, and supports formal specificatio…
- Dafny Dafny is an imperative and functional compiled language that compiles to other programming languages, such as C#, Java, JavaScript, Go, and Python. It…
- Runtime predictive analysis Runtime predictive analysis (or predictive analysis) is a runtime verification technique in computer science for detecting property violations in program…
- Java Modeling Language The Java Modeling Language (JML) is a specification language for Java programs, using Hoare style pre- and postconditions and invariants, that follows…
- Static program analysis In computer science, static program analysis (also known as static analysis or static simulation) is the analysis of computer programs performed without…
- Raymie Stata Raymond Paul "Raymie" Stata is an American computer engineer and business executive. Stata received his bachelor's and master's degrees in Computer Science…
- Formal methods In computer science, formal methods are mathematically rigorous techniques for the specification, development, analysis, and verification of software and…