Cited by 111Formal Methods in VerificationLogic, programming, and type systemsSoftware Testing and Debugging Techniques

Permissive interfaces

Henzinger, Thomas A., Jhala, Ranjit, Majumdar, Rupak·2005·Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering

Abstract

A modular program analysis considers components independently and provides a succinct summary for each component, which is used when checking the rest of the system. Consider a system consisting of a library and a client. A temporal summary, or interface, of the library specifies legal sequences of library calls. The interface is safe if no call sequence violates the library's internal invariants; the interface is permissive if it contains every such sequence. Modular program analysis requires full interfaces, which are both safe and permissive: the client does not cause errors in the library if and only if it makes only sequences of library calls that are allowed by the full interface of the library.Previous interface-based methods have focused on safe interfaces, which may be too restrictive and thus reject good clients. We present an algorithm for automatically synthesizing software interfaces that are both safe and permissive. The algorithm generates interfaces as graphs whose vertices are labeled with predicates over the library's internal state, and whose edges are labeled with library calls. The interface state is refined incrementally until the full interface is constructed. In other words, the algorithm automatically synthesizes a typestate system for the library, against which any client can be checked for compatibility. We present an implementation of the algorithm which is based on the BLAST model checker, and we evaluate some case studies.

Integrity signals

Registry

Crossref · 10.1145/1081706.1081713

Cites

Statistics

Recomputing p-values needs the paper’s full text.

Claims the paper makes

This paper’s full text isn’t openly available, so its claims and self-check weren’t run. The registry and citation checks still apply.

Claims other papers make about this one

Each is checked against this paper’s own text: does it say what the citing paper says it does?

  • In the manycore speedup example, a fat core needing 10 times as many resources would be more effective than the 10 thin cores it replaces.

    “In this example of manycore processor speedup, a fat core needing 10 times as many resources would be more effective than the 10 thin cores it replaces.5,15”

    From A view of the parallel computing landscape (2009) · cites this paper as [5]

Cited by

Sorted by citations

Authors
Henzinger, T. A., Jhala, R., & Majumdar, R.
Affiliations
  • École Polytechnique Fédérale de Lausanne (CH)
  • University of California San Diego (US)
  • University of California, Los Angeles (US)
Venue
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Publisher
ACM
Published
2005-09
Pages
31-40
OpenAlex
W2294152467
Cited by
111
References
0
Citations by year
2025: 2 · 2024: 1 · 2023: 2 · 2022: 1 · 2021: 3 · 2020: 2 · 2019: 1 · 2018: 3 · 2017: 4 · 2016: 5 · 2015: 6 · 2014: 5 · 2013: 9 · 2012: 10
FWCI
8.21
Type
conference paper
Language
en
Open access
closed
Locations
ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) (publishedVersion)
Topics
  • Physical Sciences › Computer Science › Computational Theory and Mathematics › Formal Methods in Verification
  • Physical Sciences › Computer Science › Artificial Intelligence › Logic, programming, and type systems
  • Physical Sciences › Computer Science › Software › Software Testing and Debugging Techniques
Keywords
interface synthesis, temporal interfaces

About these checks

Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.

Statistics and arithmetic are recomputed, not judged.

Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.

What counts as a claim ›How we measure confidence ›How we check this ›

Are you an author, or do you see a problem with this page? Request a review