VLDB 2026 Research / reviewers in the wild / expert
Cristiano Calcagno
dblp:93/6299
· DBLP profile ↗
41ranked-venue papers
25as first author
0since 2021 · last 2013
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 31 · 17 first-authorTheory of computation · 15 · 11 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
14 papers |
Program verification · 52% Programming languages and type systems · 24% Program analysis · 23% | |
| Theoretical computer science
5 papers |
Logic in computer science · 94% Automated reasoning and model checking · 6% |
Topics — the 30 heaviest of 42, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program verification › program logic
separation logic |
0.4 | 5 | 2011 | Compositional Shape Analysis by Means of Bi-Abduction · J. ACM 2011 Reasoning about multiple related abstractions with MultiStar · OOPSLA 2010 Cyclic proofs of program termination in separation logic · POPL 2008 |
Program analysis › static analysis › pointer analysis
shape analysis |
0.4 | 4 | 2011 | Compositional Shape Analysis by Means of Bi-Abduction · J. ACM 2011 Compositional shape analysis by means of bi-abduction · POPL 2009 Scalable Shape Analysis for Systems Code · CAV 2008 |
Logic in computer science › modal logic › spatial logic
context logic |
0.2 | 3 | 2010 | Adjunct elimination in Context Logic for trees · Inf. Comput. 2010 Context logic as modal logic: completeness and parametric inexpressivity · POPL 2007 Context logic and tree update · POPL 2005 |
Program verification › program logic
hoare logic |
0.2 | 5 | 2012 | Variables as Resource in Hoare Logics · LICS 2006 Context logic and tree update · POPL 2005 Freefinement · POPL 2012 |
Program verification › refinement
refinement calculus |
0.1 | 1 | 2012 | Freefinement · POPL 2012 |
Programming languages and type systems
type systems |
0.1 | 3 | 2012 | A polymorphic modal type system for lisp-like multi-staged languages · POPL 2006 Freefinement · POPL 2012 Closed Types as a Simple Approach to Safe Imperative Multi-stage Programming · ICALP 2000 |
Program verification › program logic › separation logic
bi-abduction |
0.1 | 1 | 2011 | Compositional Shape Analysis by Means of Bi-Abduction · J. ACM 2011 |
Program analysis › static analysis › interprocedural analysis
compositional analysis |
0.1 | 1 | 2011 | Compositional Shape Analysis by Means of Bi-Abduction · J. ACM 2011 |
Program analysis › static analysis
abstract interpretation |
0.1 | 1 | 2009 | Compositional shape analysis by means of bi-abduction · POPL 2009 |
Logic in computer science › algebraic logic
algebraic semantics |
0.1 | 1 | 2009 | Classical BI: a logic for reasoning about dualising resources · POPL 2009 |
Logic in computer science › proof theory › substructural logic
bunched implications |
0.1 | 1 | 2009 | Classical BI: a logic for reasoning about dualising resources · POPL 2009 |
Logic in computer science › proof theory › proof transformation
cut elimination |
0.1 | 1 | 2009 | Classical BI: a logic for reasoning about dualising resources · POPL 2009 |
Logic in computer science
proof theory |
0.1 | 1 | 2009 | Classical BI: a logic for reasoning about dualising resources · POPL 2009 |
Logic in computer science › proof theory
substructural logic |
0.1 | 1 | 2009 | Classical BI: a logic for reasoning about dualising resources · POPL 2009 |
Programming languages and type systems › metaprogramming
multi-stage programming |
0.1 | 2 | 2006 | A polymorphic modal type system for lisp-like multi-staged languages · POPL 2006 Closed Types as a Simple Approach to Safe Imperative Multi-stage Programming · ICALP 2000 |
Program verification › pointer program verification
heap-manipulating program verification |
0.1 | 1 | 2008 | Cyclic proofs of program termination in separation logic · POPL 2008 |
Program verification › system verification
systems code verification |
0.1 | 1 | 2008 | Scalable Shape Analysis for Systems Code · CAV 2008 |
Program verification
termination analysis |
0.1 | 1 | 2008 | Cyclic proofs of program termination in separation logic · POPL 2008 |
Program verification › termination analysis
termination proofs |
0.1 | 1 | 2008 | Cyclic proofs of program termination in separation logic · POPL 2008 |
Program verification › pointer program verification
heap verification |
0.1 | 1 | 2007 | Shape Analysis for Composite Data Structures · CAV 2007 |
Logic in computer science
completeness |
0.1 | 1 | 2007 | Context logic as modal logic: completeness and parametric inexpressivity · POPL 2007 |
Logic in computer science
modal logic |
0.1 | 1 | 2007 | Context logic as modal logic: completeness and parametric inexpressivity · POPL 2007 |
Automated reasoning and model checking
program verification |
0.1 | 1 | 2007 | Local Action and Abstract Separation Logic · LICS 2007 |
Logic in computer science › program logic
separation logic |
0.1 | 1 | 2007 | Local Action and Abstract Separation Logic · LICS 2007 |
Programming languages and type systems › type systems
type soundness |
0.1 | 2 | 2002 | Syntactic Type Soundness Results for the Region Calculus · Inf. Comput. 2002 Stratified operational semantics for safety and correctness of the region calculus · POPL 2001 |
Programming languages and type systems
language design |
0.1 | 1 | 2006 | A polymorphic modal type system for lisp-like multi-staged languages · POPL 2006 |
Programming languages and type systems › type systems
modal type systems |
0.1 | 1 | 2006 | A polymorphic modal type system for lisp-like multi-staged languages · POPL 2006 |
Programming languages and type systems › type inference
principal types |
0.1 | 1 | 2006 | A polymorphic modal type system for lisp-like multi-staged languages · POPL 2006 |
Programming languages and type systems
type inference |
0.1 | 1 | 2006 | A polymorphic modal type system for lisp-like multi-staged languages · POPL 2006 |
Program verification
program logic |
0.1 | 1 | 2005 | Permission accounting in separation logic · POPL 2005 |
Methods — techniques the papers use, named apart from their topics
separation logic · 0.3hoare triples · 0.1abductive inference · 0.1abstract predicate families · 0.1display logic · 0.1cut elimination · 0.1bi-abduction · 0.1algebraic semantics · 0.1hoare-style proof system · 0.1cyclic proof · 0.1abstract interpretation · 0.1separation algebras · 0.1modal logic · 0.1hoare logic · 0.1bisimulation · 0.1translation · 0.1side-condition-free logic · 0.1weakest precondition · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2013 | Javanni: A Verifier for JavaScript
Martín Nordio, Cristiano Calcagno, Carlo A. Furia |
FASE | 2 |
| 2012 | FreefinementabstractFreefinement is an algorithm that constructs a sound refinement calculus from a verification system under certain conditions. In this paper, a verification system is any formal system for establishing whether an inductively defined term, typically a program, satisfies a specification. Examples of verification systems include Hoare logics and type systems. Freefinement first extends the term language to include specification terms, and builds a verification system for the extended language that is a sound and conservative extension of the original system. The extended system is then transformed into a sound refinement calculus. The resulting refinement calculus can interoperate closely with the verification system - it is even possible to reuse and translate proofs between them. Freefinement gives a semantics to refinement at an abstract level: it associates each term of the extended language with a set of terms from the original language, and refinement simply reduces this set. The paper applies freefinement to a simple type system for the lambda calculus and also to a Hoare logic. Stephan van Staden, Cristiano Calcagno, Bertrand Meyer 0001 |
POPL | 2 |
| 2011 | Compositional Shape Analysis by Means of Bi-AbductionabstractThe accurate and efficient treatment of mutable data structures is one of the outstanding problem areas in automatic program verification and analysis. Shape analysis is a form of program analysis that attempts to infer descriptions of the data structures in a program, and to prove that these structures are not misused or corrupted. It is one of the more challenging and expensive forms of program analysis, due to the complexity of aliasing and the need to look arbitrarily deeply into the program heap. This article describes a method of boosting shape analyses by defining a compositional method, where each procedure is analyzed independently of its callers. The analysis algorithm uses a restricted fragment of separation logic, and assigns a collection of Hoare triples to each procedure; the triples provide an over-approximation of data structure usage. Our method brings the usual benefits of compositionality---increased potential to scale, ability to deal with incomplete programs, graceful way to deal with imprecision---to shape analysis, for the first time. The analysis rests on a generalized form of abduction (inference of explanatory hypotheses), which we call bi-abduction . Bi-abduction displays abduction as a kind of inverse to the frame problem: it jointly infers anti-frames (missing portions of state) and frames (portions of state not touched by an operation), and is the basis of a new analysis algorithm. We have implemented our analysis and we report case studies on smaller programs to evaluate the quality of discovered specifications, and larger code bases (e.g., sendmail, an imap server, a Linux distribution) to illustrate the level of automation and scalability that we obtain from our compositional method. This article makes number of specific technical contributions on proof procedures and analysis algorithms, but in a sense its more important contribution is holistic: the explanation and demonstration of how a massive increase in automation is possible using abductive inference. Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
J. ACM | 1 |
| 2010 | Verifying Executable Object-Oriented Specifications with Separation Logic
Stephan van Staden, Cristiano Calcagno, Bertrand Meyer 0001 |
ECOOP | 2 |
| 2010 | Reasoning about multiple related abstractions with MultiStarabstractEncapsulated abstractions are fundamental in object-oriented programming. A single class may employ multiple abstractions to achieve its purpose. Such abstractions are often related and combined in disciplined ways. This paper explores ways to express, verify and rely on logical relationships between abstractions. It introduces two general specification mechanisms: export clauses for relating abstractions in individual classes, and axiom clauses for relating abstractions in a class and all its descendants. MultiStar, an automatic verification tool based on separation logic and abstract predicate families, implements these mechanisms in a multiple inheritance setting. Several verified examples illustrate MultiStar's underlying logic. To demonstrate the flexibility of our approach, we also used MultiStar to verify the core iterator hierarchy of a popular data structure library. Stephan van Staden, Cristiano Calcagno |
OOPSLA | 2 |
| 2010 | Tracking Heaps That Hop with Heap-Hop
Jules Villard, Étienne Lozes, Cristiano Calcagno |
TACAS | 3 |
| 2010 | Adjunct elimination in Context Logic for trees
Cristiano Calcagno, Thomas Dinsdale-Young, Philippa Gardner |
Inf. Comput. | 1 |
| 2009 | Bi-abductive Resource Invariant Synthesis
Cristiano Calcagno, Dino Distefano, Viktor Vafeiadis |
APLAS | 1 |
| 2009 | Proving Copyless Message Passing
Jules Villard, Étienne Lozes, Cristiano Calcagno |
APLAS | 3 |
| 2009 | Automatic Parallelization with Separation Logic
Mohammad Raza, Cristiano Calcagno, Philippa Gardner |
ESOP | 2 |
| 2009 | Classical BI: a logic for reasoning about dualising resourcesabstractWe show how to extend O'Hearn and Pym's logic of bunched implications, BI, to classical BI (CBI), in which both the additive and the multiplicative connectives behave classically. Specifically, CBI is a non-conservative extension of (propositional) Boolean BI that includes multiplicative versions of falsity, negation and disjunction. We give an algebraic semantics for CBI that leads us naturally to consider resource models of CBI in which every resource has a unique dual. We then give a cut-eliminating proof system for CBI, based on Belnap's display logic, and demonstrate soundness and completeness of this proof system with respect to our semantics. James Brotherston, Cristiano Calcagno |
POPL | 2 |
| 2009 | Compositional shape analysis by means of bi-abductionabstractThis paper describes a compositional shape analysis, where each procedure is analyzed independently of its callers. The analysis uses an abstract domain based on a restricted fragment of separation logic, and assigns a collection of Hoare triples to each procedure; the triples provide an over-approximation of data structure usage. Compositionality brings its usual benefits -- increased potential to scale, ability to deal with unknown calling contexts, graceful way to deal with imprecision -- to shape analysis, for the first time. Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
POPL | 1 |
| 2008 | Scalable Shape Analysis for Systems Code
Hongseok Yang, Oukseh Lee, Josh Berdine, Cristiano Calcagno, Byron Cook, Dino Distefano, Peter W. O'Hearn |
CAV | 4 |
| 2008 | Space Invading Systems Code
Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
LOPSTR | 1 |
| 2008 | Cyclic proofs of program termination in separation logicabstractWe propose a novel approach to proving the termination of heap-manipulating programs, which combines separation logic with cyclic proof within a Hoare-style proof system.Judgements in this system express (guaranteed) termination of the program when started from a given line in the program and in a state satisfying a given precondition, which is expressed as a formula of separation logic. The proof rules of our system are of two types: logical rules that operate on preconditions; and symbolic execution rules that capture the effect of executing program commands. James Brotherston, Richard Bornat, Cristiano Calcagno |
POPL | 3 |
| 2007 | Adjunct Elimination in Context Logic for Trees
Cristiano Calcagno, Thomas Dinsdale-Young, Philippa Gardner |
APLAS | 1 |
| 2007 | Shape Analysis for Composite Data Structures
Josh Berdine, Cristiano Calcagno, Byron Cook, Dino Distefano, Peter W. O'Hearn, Thomas Wies, Hongseok Yang |
CAV | 2 |
| 2007 | Local Action and Abstract Separation LogicabstractSeparation logic is an extension of Hoare's logic which supports a local way of reasoning about programs that mutate memory. We present a study of the semantic structures lying behind the logic. The core idea is of a local action, a state transformer that mutates the state in a local way. We formulate local actions for a class of models called separation algebras, abstracting from the RAM and other specific concrete models used in work on separation logic. Local actions provide a semantics for a generalized form of (sequential) separation logic. We also show that our conditions on local actions allow a general soundness proof for a separation logic for concurrency, interpreted over arbitrary separation algebras. Cristiano Calcagno, Peter W. O'Hearn, Hongseok Yang |
LICS | 1 |
| 2007 | Context logic as modal logic: completeness and parametric inexpressivity
Cristiano Calcagno, Philippa Gardner, Uri Zarfaty |
POPL | 1 |
| 2007 | Footprint Analysis: A Shape Analysis That Discovers Preconditions
Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
SAS | 1 |
| 2007 | Modular Safety Checking for Fine-Grained Concurrency
Cristiano Calcagno, Matthew J. Parkinson, Viktor Vafeiadis |
SAS | 1 |
| 2006 | Variables as Resource in Hoare LogicsabstractHoare logic is bedevilled by complex but coarse side conditions on the use of variables. We define a logic, free of side conditions, which permits more precise statements of a program’s use of variables. We show that it admits translations of proofs in Hoare logic, thereby showing that nothing is lost, and also that it admits proofs of some programs outside the scope of Hoare logic. We include a treatment of reference parameters and global variables in procedure call (though not of parameter aliasing). Our work draws on ideas from separation logic: program variables are treated as resource rather than as logical variables in disguise. For clarity we exclude a treatment of the heap. Matthew J. Parkinson, Richard Bornat, Cristiano Calcagno |
LICS | 3 |
| 2006 | A polymorphic modal type system for lisp-like multi-staged languagesabstractThis article presents a polymorphic modal type system and its principal type inference algorithm that conservatively extend ML by all of Lisp's staging constructs (the quasi-quotation system). The combination is meaningful because ML is a practical higher-order, impure, and typed language, while Lisp's quasi-quotation system has long evolved complying with the demands from multi-staged programming practices. Our type system supports open code, unrestricted operations on references, intentional variable-capturing substitution as well as capture-avoiding substitution, and lifting values into code, whose combination escaped all the previous systems. Ik-Soon Kim, Kwangkeun Yi, Cristiano Calcagno |
POPL | 3 |
| 2006 | Beyond Reachability: Shape Abstraction in the Presence of Pointer Arithmetic
Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
SAS | 1 |
| 2005 | Symbolic Execution with Separation Logic
Josh Berdine, Cristiano Calcagno, Peter W. O'Hearn |
APLAS | 2 |
| 2005 | From Separation Logic to First-Order Logic
Cristiano Calcagno, Philippa Gardner, Matthew Hague |
FoSSaCS | 1 |
| 2005 | Permission accounting in separation logicabstractA lightweight logical approach to race-free sharing of heap storage between concurrent threads is described, based on the notion of permission to access. Transfer of permission between threads, subdivision and combination of permission is discussed. The roots of the approach are in Boyland's [3] demonstration of the utility of fractional permissions in specifying non-interference between concurrent threads. We add the notion of counting permission, which mirrors the programming technique called permission counting. Both fractional and counting permissions permit passivity, the specification that a program can be permitted to access a heap cell yet prevented from altering it. Models of both mechanisms are described. The use of two different mechanisms is defended. Some interesting problems are acknowledged and some intriguing possibilities for future development, including the notion of resourcing as a step beyond typing, are paraded. Richard Bornat, Cristiano Calcagno, Peter W. O'Hearn, Matthew J. Parkinson |
POPL | 2 |
| 2005 | Context logic and tree updateabstractSpatial logics have been used to describe properties of tree-like structures (Ambient Logic) and in a Hoare style to reason about dynamic updates of heap-like structures (Separation Logic). We integrat this work by analyzing dynamic updates to tree-like structures with pointers (such as XML with identifiers and idrefs). Naíve adaptations of the Ambient Logic are not expressive enough to capture such local updates. Instead we must explicitly reason about arbitrary tree contexts in order to capture updates throughout the tree. We introduce Context Logic, study its proof theory and models, and show how it generalizes Separation Logic and its general theory BI. We use it to reason locally about a small imperative programming language for updating trees, using a Hoare logic in the style of O'Hearn, Reynolds and Yang, and show that weakest preconditions are derivable. We demonstrate the robustness of our approach by using Context Logic to capture the locality of term rewrite systems. Cristiano Calcagno, Philippa Gardner, Uri Zarfaty |
POPL | 1 |
| 2005 | Deciding validity in a spatial logic for treesabstractWe consider a propositional spatial logic for finite trees. The logic includes $\A \Par \B$ (tree composition), $\A \,{\Guarantee}\, \B$ (the implication induced by composition), and $\Zero$ (the unit of composition). We show that the satisfaction and validity problems are equivalent, and decidable. The crux of the argument is devising a finite enumeration of trees to consider when deciding whether a spatial implication is satisfied. We introduce a sequent calculus for the logic, and show it to be sound and complete with respect to an interpretation in terms of satisfaction. Finally, we describe a complete proof procedure for the sequent calculus. We envisage applications in the area of logic-based type systems for semistructured data. We describe a small programming language based on this idea. Cristiano Calcagno, Luca Cardelli, Andrew D. Gordon 0001 |
J. Funct. Program. | 1 |
| 2004 | ML-Like Inference for Classifiers
Cristiano Calcagno, Eugenio Moggi, Walid Taha |
ESOP | 1 |
| 2004 | A Decidable Fragment of Separation Logic
Josh Berdine, Cristiano Calcagno, Peter W. O'Hearn |
FSTTCS | 2 |
| 2004 | Two-level languages for program optimization
Cristiano Calcagno |
Theor. Comput. Sci. | 1 |
| 2003 | Implementing Multi-stage Languages Using ASTs, Gensym, and Reflection
Cristiano Calcagno, Walid Taha, Liwen Huang, Xavier Leroy |
GPCE | 1 |
| 2003 | Closed types for a safe imperative MetaMLabstractThis paper addresses the issue of safely combining computational effects and multi-stage programming. We propose a type system which exploits a notion of closed type , to check statically that an imperative multi-stage program does not cause run-time errors. Our approach is demonstrated formally for a core language called $\hbox{\sf MiniML}^{\sf meta}_{\sf ref}$ . This core language safely combines multi-stage constructs and ML-style references, and is a conservative extension of $\hbox{\sf MiniML}_{\sf ref}$ , a simple imperative subset of SML. In previous work, we introduced a closed type constructor , which was enough to ensure the safe execution of dynamically generated code in the pure fragment of $\hbox{\sf MiniML}^{\sf meta}_{\sf ref}$ . Cristiano Calcagno, Eugenio Moggi, Tim Sheard |
J. Funct. Program. | 1 |
| 2003 | Program logic and equivalence in the presence of garbage collection
Cristiano Calcagno, Peter W. O'Hearn, Richard Bornat |
Theor. Comput. Sci. | 1 |
| 2002 | Syntactic Type Soundness Results for the Region Calculus
Cristiano Calcagno, Simon Helsen, Peter Thiemann 0001 |
Inf. Comput. | 1 |
| 2001 | On Garbage and Program Logic
Cristiano Calcagno, Peter W. O'Hearn |
FoSSaCS | 1 |
| 2001 | Computability and Complexity Results for a Spatial Assertion Language for Data Structures
Cristiano Calcagno, Hongseok Yang, Peter W. O'Hearn |
FSTTCS | 1 |
| 2001 | Stratified operational semantics for safety and correctness of the region calculusabstractThe region analysis of Tofte and Talpin is an attempt to determine statically the life span of dynamically allocated objects. But the calculus is at once intuitively simple, yet deceptively subtle, and previous theoretical analyses have been frustratingly complex: no analysis has revealed and explained in simple terms the connection between the subleties of the calculus and the imperative features it builds on. We present a novel approach for proving safety and correctness of a simplified version of the region calculus. We give a stratified operational semantics, composed of a highlevel semantics dealing with the conceptual difficulties of effect annotations, and a low-level one with explicit operations on a region-indexed store. The main results of the paper are a proof simpler than previous ones, and a modular approach to type safety and correctness. The flexibility of this approach is demonstrated by the simplicity of the extension to the full calculus with type and region polymorphism. Cristiano Calcagno |
POPL | 1 |
| 2000 | Closed Types as a Simple Approach to Safe Imperative Multi-stage Programming
Cristiano Calcagno, Eugenio Moggi, Walid Taha |
ICALP | 1 |
| 2000 | Semantic analysis of pointer aliasing, allocation and disposal in Hoare logic351292abstractBornat has recently described an approach to reasoning about pointers, building on work of Morris. Here we describe a semantics that validates the approach, and use it to help devise axioms for operations that allocate and dispose of memory. 1. INTRODUCTION It is widely acknowledged that pointers cause problems for program-proving formalisms (e.g. [8, 17, 13, 16, 9, 1, 14, 7]), but there is less agreement on precisely what the problems are. So, before describing our own work, we rst discuss where we believe the diculties lie. The rst issue that must be faced is aliasing , where distinct expressions can denote the same l-value. The problem here can be seen by reference to Hoare logic, where assignment is treated using substitution on the object-language level: fP [E=x]g x := E fPg: For this treatment of assignment to be sound it is necessary that dierent identiers are not aliases. With pointers the problem is that aliasing is not an exceptional circumstance: for example, it wi... Cristiano Calcagno, Samin S. Ishtiaq, Peter W. O'Hearn |
PPDP | 1 |