VLDB 2026 Research / reviewers in the wild / expert
Thomas P. Jensen
dblp:69/4418
· DBLP profile ↗
66ranked-venue papers
11as first author
11since 2021 · last 2026
0000-0002-4064-7170ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 44 · 8 first-author · 8 since 2021Theory of computation · 18 · 3 first-author · 3 since 2021Security and privacy · 9 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Complete Abstractions for Verification of Polymorphic Functions with Equality
Malo Revel, Thomas Genet, Thomas P. Jensen |
ESOP (2) | 3 |
| 2025 | Contextual Equality Saturation
Alexandre Drewery, Thomas P. Jensen, David Pichardie |
SAS | 2 |
| 2025 | Design and Implementation of Static Analyses for Tezos Smart ContractsabstractOnce deployed in blockchain, smart contracts become immutable: Attackers can exploit bugs and vulnerabilities in their code that cannot be replaced with a bug-free version. For this reason, the verification of smart contracts before they are deployed in blockchain is important. However, the development of verification tools is not easy, especially if one wants to obtain guarantees by using formal methods. This article describes the development, from scratch, of a static analyzer based on abstract interpretation for the verification of real-world Tezos smart contracts. The analyzer is generic with respect to the property under analysis. This article shows taint analysis as a concrete instantiation of the analyzer, at different levels of precision, to detect untrusted cross-contract invocations. Luca Olivieri, Luca Negrini 0001, Vincenzo Arceri, Thomas P. Jensen, Fausto Spoto |
Distributed Ledger Technol. Res. Pract. | 4 |
| 2025 | An input-output relational domain for algebraic data types and functional arrays
Santiago Bautista, Thomas P. Jensen, Benoît Montagu |
Formal Methods Syst. Des. | 2 |
| 2024 | Verification of Programs with ADTs Using Shallow Horn Clauses
Théo Losekoot, Thomas Genet, Thomas P. Jensen |
SAS | 3 |
| 2024 | Axiomatising an information flow logic based on partial equivalence relationsabstractAbstract We present a relational program logic for reasoning about information flow properties formalised in an assertion language based on partial equivalence relations. We define and prove the soundness of the logic, a proof technique for precise, logic-based information flow properties. The logic extends Hoare logic and its unary state predicates to binary PER-based predicates for relating observationally equivalent states. A salient feature of the logic is that it is capable of reasoning about programs that test on secret data in a secure manner. Andrzej Filinski, Ken Friis Larsen, Thomas P. Jensen |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2023 | Automata-Based Verification of Relational Properties of Functions over Algebraic Data StructuresabstractThis paper is concerned with automatically proving properties about the input-output relation of functional programs operating over algebraic data types. Recent results show how to approximate the image of a functional program using a regular tree language. Though expressive, those techniques cannot prove properties relating the input and the output of a function, e.g., proving that the output of a function reversing a list has the same length as the input list. In this paper, we built upon those results and define a procedure to compute or over-approximate such a relation. Instead of representing the image of a function by a regular set of terms, we represent (an approximation of) the input-output relation by a regular set of tuples of terms. Regular languages of tuples of terms are recognized using a tree automaton recognizing convolutions of terms, where a convolution transforms a tuple of terms into a term built on tuples of symbols. Both the program and the properties are transformed into predicates and Constrained Horn clauses (CHCs). Then, using an Implication Counter Example procedure (ICE), we infer a model of the clauses, associating to each predicate a regular relation. In this ICE procedure, checking if a given model satisfies the clauses is undecidable in general. We overcome undecidability by proposing an incomplete but sound inference procedure for such relational regular properties. Though the procedure is incomplete, its implementation performs well on 120 examples. It efficiently proves non-trivial relational properties or finds counter-examples. Théo Losekoot, Thomas Genet, Thomas P. Jensen |
FSCD | 3 |
| 2023 | Type-directed Program Transformation for Constant-Time EnforcementabstractConstant-time is a programming discipline which protects security sensitive code against a wide class of timing attacks. This discipline can be formalised as a non-interference property and enforced by an information flow type system which prevents branching and memory accesses over secret data. We propose a relaxed information flow type system which tracks indirect flows but only rejects programs leaking secrets through direct flows. The main result of this paper is that any program that is accepted using this relaxed type system can be transformed automatically into a semantically equivalent constant-time program. Our algorithms are implemented in the jasmin compiler and validated against synthetic programs. Gautier Raimondi, Frédéric Besson, Thomas P. Jensen |
PPDP | 3 |
| 2022 | Lifting Numeric Relational Domains to Algebraic Data Types
Santiago Bautista, Thomas P. Jensen, Benoît Montagu |
SAS | 2 |
| 2021 | Trace-based control-flow analysisabstractWe define a small-step semantics for the untyped λ-calculus, that traces the β-reductions that occur during evaluation. By abstracting the computation traces, we reconstruct k-CFA using abstract interpretation, and justify constraint-based k-CFA in a semantic way. The abstract interpretation of the trace semantics also paves the way for introducing widening operators in CFA that go beyond existing analyses, that are all based on exploring a finite state space. We define ∇CFA, a widening-based analysis that limits the cycles in call stacks, and can achieve better precision than k-CFA at a similar cost. Benoît Montagu, Thomas P. Jensen |
PLDI | 2 |
| 2021 | Verification of Program Transformations with Inductive Refinement TypesabstractHigh-level transformation languages like Rascal include expressive features for manipulating large abstract syntax trees: first-class traversals, expressive pattern matching, backtracking, and generalized iterators. We present the design and implementation of an abstract interpretation tool, Rabit, for verifying inductive type and shape properties for transformations written in such languages. We describe how to perform abstract interpretation based on operational semantics, specifically focusing on the challenges arising when analyzing the expressive traversals and pattern matching. Finally, we evaluate Rabit on a series of transformations (normalization, desugaring, refactoring, code generators, type inference, etc.) showing that we can effectively verify stated properties. Ahmad Salim Al-Sibahi, Thomas P. Jensen, Aleksandar S. Dimovski, Andrzej Wasowski |
ACM Trans. Softw. Eng. Methodol. | 2 |
| 2020 | Regular language type inference with term rewritingabstractThis paper defines a new type system applied to the fully automatic verification of safety properties of tree-processing higher-order functional programs. We use term rewriting systems to model the program and its semantics and tree automata to model algebraic data types. We define the regular abstract interpretation of the input term rewriting system where the abstract domain is a set of regular languages. From the regular abstract interpretation we derive a type system where each type is a regular language. We define an inference procedure for this type system which allows us check the validity of safety properties. The inference mechanism is built on an invariant learning procedure based on the tree automata completion algorithm. This invariant learning procedure is regularly-complete and complete in refutation, meaning that if it is possible to give a regular type to a term then we will eventually find it, and if there is no possible type (regular or not) then we will eventually find a counter-example. Timothée Haudebourg, Thomas Genet, Thomas P. Jensen |
Proc. ACM Program. Lang. | 3 |
| 2020 | Stable relations and abstract interpretation of higher-order programsabstractWe present a novel denotational semantics for the untyped call-by-value λ-calculus, where terms are interpreted as stable relations , i.e. as binary relations between substitutions and values, enjoying a monotonicity property. The denotation captures the input-output behaviour of higher-order programs, and is proved sound and complete with respect to the operational semantics. The definition also admits a presentation as a program logic. Following the principles of abstract interpretation, we use our denotational semantics as a collecting semantics to derive a modular relational analysis for higher-order programs. The analysis infers equalities between the arguments of a program and its result—a form of frame condition for functional programs. Benoît Montagu, Thomas P. Jensen |
Proc. ACM Program. Lang. | 2 |
| 2019 | Information-Flow Preservation in Compiler OptimisationsabstractCorrect compilers perform program transformations preserving input/output behaviours of programs. Yet, correctness does not prevent program optimisations from introducing information-flow leaks that would make the target program more vulnerable to side-channel attacks than the source program. To tackle this problem, we propose a notion of Information-Flow Preserving (IFP) program transformation which ensures that a target program is no more vulnerable to passive side-channel attacks than a source program. To protect against a wide range of attacks, we model an attacker who is granted arbitrary memory accesses for a pre-defined set of observation points. We propose a compositional proof principle for proving that a transformation is IFP. Using this principle, we show how a translation validation technique can be used to automatically verify and even close information-flow leaks introduced by standard compiler passes such as dead-store elimination and register allocation. The technique has been experimentally validated on the CompCert C compiler. Frédéric Besson, Alexandre Dang, Thomas P. Jensen |
CSF | 3 |
| 2019 | Compiling Sandboxes: Formally Verified Software Fault IsolationabstractSoftware Fault Isolation (SFI) is a security-enhancing program transformation for instrumenting an untrusted binary module so that it runs inside a dedicated isolated address space, called a sandbox. To ensure that the untrusted module cannot escape its sandbox, existing approaches such as Google’s Native Client rely on a binary verifier to check that all memory accesses are within the sandbox. Instead of relying on a posteriori verification, we design, implement and prove correct a program instrumentation phase as part of the formally verified compiler CompCert that enforces a sandboxing security property a priori . This eliminates the need for a binary verifier and, instead, leverages the soundness proof of the compiler to prove the security of the sandboxing transformation. The technical contributions are a novel sandboxing transformation that has a well-defined C semantics and which supports arbitrary function pointers, and a formally verified C compiler that implements SFI. Experiments show that our formally verified technique is a competitive way of implementing SFI. Frédéric Besson, Sandrine Blazy, Alexandre Dang, Thomas P. Jensen, Pierre Wilke |
ESOP | 4 |
| 2019 | Inferring frame conditions with static correlation analysisabstractWe introduce the abstract domain of correlations to denote equality relations between parts of inputs and outputs of programs. We formalise the theory of correlations, and mechanically verify their semantic properties. We design a static inter-procedural dataflow analysis for automatically inferring correlations for programs written in a first-order language equipped with algebraic data-types and arrays. The analysis, its precision and execution cost, have been evaluated on the code and functional specification of an industrial-size micro-kernel. We exploit the inferred correlations to automatically discharge two thirds of the proof obligations related to the preservation of invariants for this micro-kernel. Oana Fabiana Andreescu, Thomas P. Jensen, Stéphane Lescuyer, Benoît Montagu |
Proc. ACM Program. Lang. | 2 |
| 2019 | Skeletal semantics and their interpretationsabstractThe development of mechanised language specification based on structured operational semantics, with applications to verified compilers and sound program analysis, requires huge effort. General theory and frameworks have been proposed to help with this effort. However, none of this work provides a systematic way of developing concrete and abstract semantics, connected together by a general consistency result. We introduce a skeletal semantics of a language, where each skeleton describes the complete semantic behaviour of a language construct. We define a general notion of interpretation , which provides a systematic and language-independent way of deriving semantic judgements from the skeletal semantics. We explore four generic interpretations: a simple well-formedness interpretation; a concrete interpretation; an abstract interpretation; and a constraint generator for flow-sensitive analysis. We prove general consistency results between interpretations, depending only on simple language-dependent lemmas. We illustrate our ideas using a simple While language. Martin Bodin, Philippa Gardner, Thomas P. Jensen, Alan Schmitt |
Proc. ACM Program. Lang. | 3 |
| 2018 | Verifying Higher-Order Functions with Tree AutomataabstractThis paper describes a fully automatic technique for verifying safety properties of higher-order functional programs. Tree automata are used to represent sets of reachable states and functional programs are modeled using term rewriting systems. From a tree automaton representing the initial state, a completion algorithm iteratively computes an automaton which over-approximates the output set of the program to verify. We identify a subclass of higher-order functional programs for which the completion is guaranteed to terminate. Precision and termination are obtained conjointly by a careful choice of equations between terms. The verification objective can be used to generate sets of equations automatically. Our experiments show that tree automata are sufficiently expressive to prove intricate safety properties and sufficiently simple for the verification result to be certified in Coq. Thomas Genet, Timothée Haudebourg, Thomas P. Jensen |
FoSSaCS | 3 |
| 2018 | Verification of high-level transformations with inductive refinement typesabstractHigh-level transformation languages like Rascal include expressive features for manipulating large abstract syntax trees: first-class traversals, expressive pattern matching, backtracking and generalized iterators. We present the design and implementation of an abstract interpretation tool, Rabit, for verifying inductive type and shape properties for transformations written in such languages. We describe how to perform abstract interpretation based on operational semantics, specifically focusing on the challenges arising when analyzing the expressive traversals and pattern matching. Finally, we evaluate Rabit on a series of transformations (normalization, desugaring, refactoring, code generators, type inference, etc.) showing that we can effectively verify stated properties. Ahmad Salim Al-Sibahi, Thomas P. Jensen, Aleksandar S. Dimovski, Andrzej Wasowski |
GPCE | 2 |
| 2018 | Modular Software Fault Isolation as Abstract Interpretation
Frédéric Besson, Thomas P. Jensen, Julien Lepiller |
SAS | 2 |
| 2016 | Hybrid Monitoring of Attacker KnowledgeabstractEnforcement of noninterference requires proving that an attacker's knowledge about the initial state remains the same after observing a program's public output. We propose a hybrid monitoring mechanism which dynamically evaluates the knowledge that is contained in program variables. To get a precise estimate of the knowledge, the monitor statically analyses non-executed branches. We show that our knowledge-based monitor can be combined with existing dynamic monitors for non-interference. A distinguishing feature of such a combination is that the combined monitor is provably more permissive than each mechanism taken separately. We demonstrate this by proposing a knowledge-enhanced version of a no-sensitive-upgrade (NSU) monitor. The monitor and its static analysis have been formalized and proved correct within the Coq proof assistant. Frédéric Besson, Nataliia Bielova, Thomas P. Jensen |
CSF | 3 |
| 2016 | Correlating Structured Inputs and Outputs in Functional Specifications
Oana Fabiana Andreescu, Thomas P. Jensen, Stéphane Lescuyer |
SEFM | 2 |
| 2015 | Certified Abstract Interpretation with Pretty-Big-Step SemanticsabstractThis paper describes an investigation into developing certified abstract interpreters from big-step semantics using the Coq proof assistant. We base our approach on Schmidt's abstract interpretation principles for natural semantics, and use a pretty-big-step (PBS) semantics, a semantic format proposed by Charguéraud. We propose a systematic representation of the PBS format and implement it in Coq. We then show how the semantic rules can be abstracted in a methodical fashion, independently of the chosen abstract domain, to produce a set of abstract inference rules that specify an abstract interpreter. We prove the correctness of the abstract interpreter in Coq once and for all, under the assumption that abstract operations faithfully respect the concrete ones. We finally show how to define correct-by-construction analyses: their correction amounts to proving they belong to the abstract semantics. Martin Bodin, Thomas P. Jensen, Alan Schmitt |
CPP | 2 |
| 2015 | Dependency Analysis of Functional Specifications with Algebraic Data Structures
Oana Fabiana Andreescu, Thomas P. Jensen, Stéphane Lescuyer |
ICFEM | 2 |
| 2014 | SawjaCard: A Static Analysis Tool for Certifying Java Card Applications
Frédéric Besson, Thomas P. Jensen, Pierre Vittet |
SAS | 2 |
| 2014 | Inference of polynomial invariants for imperative programs: A farewell to Gröbner bases
David Cachera, Thomas P. Jensen, Arnaud Jobin, Florent Kirchner |
Sci. Comput. Program. | 2 |
| 2013 | Hybrid Information Flow Monitoring against Web TrackingabstractMotivated by the problem of stateless web tracking (fingerprinting), we propose a novel approach to hybrid information flow monitoring by tracking the knowledge about secret variables using logical formulae. This knowledge representation helps to compare and improve precision of hybrid information flow monitors. We define a generic hybrid monitor parametrised by a static analysis and derive sufficient conditions on the static analysis for soundness and relative precision of hybrid monitors. We instantiate the generic monitor with a combined static constant and dependency analysis. Several other hybrid monitors including those based on well-known hybrid techniques for information flow control are formalised as instances of our generic hybrid monitor. These monitors are organised into a hierarchy that establishes their relative precision. The whole framework is accompanied by a formalisation of the theory in the Coq proof assistant. Frédéric Besson, Nataliia Bielova, Thomas P. Jensen |
CSF | 3 |
| 2012 | Inference of Polynomial Invariants for Imperative Programs: A Farewell to Gröbner Bases
David Cachera, Thomas P. Jensen, Arnaud Jobin, Florent Kirchner |
SAS | 2 |
| 2012 | Control-flow analysis of function calls and returns by abstract interpretation
Jan Midtgaard, Thomas P. Jensen |
Inf. Comput. | 2 |
| 2011 | Secure the Clones - Static Enforcement of Policies for Secure Object Copying
Thomas P. Jensen, Florent Kirchner, David Pichardie |
ESOP | 1 |
| 2010 | A Provably Correct Stackless Intermediate Representation for Java Bytecode
Delphine Demange, Thomas P. Jensen, David Pichardie |
APLAS | 2 |
| 2010 | Enforcing Secure Object Initialization in Java
Laurent Hubert, Thomas P. Jensen, Vincent Monfort, David Pichardie |
ESORICS | 2 |
| 2010 | Verifying resource access control on mobile interactive devicesabstractA model of resource access control is presented in which the access control to resources can employ user interaction to obtain the necessary permissions. This model is inspired by and improves on the Java security architecture used in Java-enabled mobile telephones. We extend the Java model to incl ude access control permissions with multiplicities in order to allow to use a permission a certain number of times. We define a program model based on control flow graphs together with its operational semantics and provide a formal definition of the basic security policy to enforce viz that an application will always ask for a permission before using it to access a resource. A static analysis which enforces the security policy is defined and proved correct. A constraint solving algorithm implementing the analysis is presented. Frédéric Besson, Guillaume Dufay, Thomas P. Jensen, David Pichardie |
J. Comput. Secur. | 3 |
| 2010 | Long-run cost analysis by approximation of linear operators over dioidsabstractIn this paper we present a semantics-based framework for analysing the quantitative behaviour of programs with respect to resource usage. We start from an operational semantics in which costs are modelled using a dioid structure. The dioid structure of costs allows the definition of the quantitative semantics as a linear operator. We then develop a theory of approximation of such a semantics, which is akin to what is offered by the theory of abstract interpretation for analysing qualitative properties, in order to compute effectively global cost information from the program. We focus on the notion of long-run cost, which models the asymptotic average cost of a program. The abstraction of the semantics has to take two distinct notions of order into account: the order on costs and the order on states. We prove that our abstraction technique provides a correct approximation of the concrete long-run cost of a program. David Cachera, Thomas P. Jensen, Arnaud Jobin, Pascal Sotin |
Math. Struct. Comput. Sci. | 2 |
| 2009 | Control-flow analysis of function calls and returns by abstract interpretationabstractWe derive a control-flow analysis that approximates the interprocedural control-flow of both function calls and returns in the presence of first-class functions and tail-call optimization. In addition to an abstract environment, our analysis computes for each expression an abstract control stack, effectively approximating where function calls return across optimized tail calls. The analysis is systematically calculated by abstract interpretation of the stack-based CaEK abstract machine of Flanagan et al. using a series of Galois connections. Abstract interpretation provides a unifying setting in which we 1) prove the analysis equivalent to the composition of a continuation-passing style (CPS) transformation followed by an abstract interpretation of a stack-less CPS machine, and 2) extract an equivalent constraint-based formulation, thereby providing a rational reconstruction of a constraint-based control-flow analysis from abstract interpretation principles. Jan Midtgaard, Thomas P. Jensen |
ICFP | 2 |
| 2008 | Computing Stack Maps with Interfaces
Frédéric Besson, Thomas P. Jensen, Tiphaine Turpin |
ECOOP | 2 |
| 2008 | A Calculational Approach to Control-Flow Analysis by Abstract Interpretation
Jan Midtgaard, Thomas P. Jensen |
SAS | 2 |
| 2007 | Small Witnesses for Abstract Interpretation-Based Proofs
Frédéric Besson, Thomas P. Jensen, Tiphaine Turpin |
ESOP | 2 |
| 2007 | Rewriting Approximations for Fast Prototyping of Static Analyzers
Yohan Boichut, Thomas Genet, Thomas P. Jensen, Luka Leroux |
RTA | 3 |
| 2006 | A Formal Model of Access Control for Mobile Interactive Devices
Frédéric Besson, Guillaume Dufay, Thomas P. Jensen |
ESORICS | 3 |
| 2006 | Certificates of Resource Usage on Mobile TelephonesabstractResources on Java-enabled mobile telephones are controlled by permissions that grant an applet a certain number of accesses to a resource. Such permissions can be given by the operator or can be obtained dynamically during execution by querying the user interactively. In this talk, we describe a formal model of such interactive access control with an emphasis on how to handle permissions with multiplicities. Based on this model, we present a proof system in which it is possible to engineer a formal proof that an applet will not consume resources for which it does not have permissions. Such proofs will then serve as a basis for constructing compact certificates attesting the correct behaviour of a down-loaded applet. Thomas P. Jensen |
ISoLA | 1 |
| 2006 | Proof-carrying code from certified abstract interpretation and fixpoint compressionabstractProof-carrying code (PCC) is a technique for downloading mobile code on a host machine while ensuring that the code adheres to the host's safety policy. We show how certified abstract interpretation can be used to build a PCC architecture where the code producer can produce program certificates automatically. Code consumers use proof checkers derived from certified analysers to check certificates. Proof checkers carry their own correctness proofs and accepting a new proof checker amounts to type checking the checker in Coq. Certificates take the form of strategies for reconstructing a fixpoint and are kept small due to a technique for fixpoint compression. The PCC architecture has been implemented and evaluated experimentally on a byte code language for which we have designed an interval analysis that allows to generate certificates ascertaining that no array-out-of-bounds accesses will occur. Frédéric Besson, Thomas P. Jensen, David Pichardie |
Theor. Comput. Sci. | 2 |
| 2005 | Certified Memory Usage Analysis
David Cachera, Thomas P. Jensen, David Pichardie, Gerardo Schneider |
FM | 2 |
| 2005 | Interfaces for stack inspectionabstractStack inspection is a mechanism for programming secure applications in the presence of code from various protection domains. Run-time checks of the call stack allow a method to obtain information about the code that (directly or indirectly) invoked it in order to make access control decisions. This mechanism is part of the security architecture of Java and the .NET Common Language Runtime. A central problem with stack inspection is to determine to what extent the local checks inserted into the code are sufficient to guarantee that a global security property is enforced. A further problem is how such verification can be carried out in an incremental fashion. Incremental analysis is important for avoiding re-analysis of library code every time it is used, and permits the library developer to reason about the code without knowing its context of deployment. We propose a technique for inferring interfaces for stack-inspecting libraries in the form of secure calling context for methods. By a secure calling context we mean a pre-condition on the call stack sufficient for guaranteeing that execution of the method will not violate a given global property. The technique is a constraint-based static program analysis implemented via fixed point iteration over an abstract domain of linear temporal logic properties. Frédéric Besson, Thomas de Grenier de Latour, Thomas P. Jensen |
J. Funct. Program. | 3 |
| 2005 | Extracting a data flow analyser in constructive logic
David Cachera, Thomas P. Jensen, David Pichardie, Vlad Rusu |
Theor. Comput. Sci. | 2 |
| 2004 | Extracting a Data Flow Analyser in Constructive Logic
David Cachera, Thomas P. Jensen, David Pichardie, Vlad Rusu |
ESOP | 2 |
| 2003 | Modular Class Analysis with DATALOG
Frédéric Besson, Thomas P. Jensen |
SAS | 2 |
| 2003 | Modular Control-Flow Analysis with Rank 2 Intersection TypesabstractWe show how the principal typing property of the rank 2 intersection type system enables the specification of a modular and polyvariant control-flow analysis. Anindya Banerjee 0001, Thomas P. Jensen |
Math. Struct. Comput. Sci. | 2 |
| 2003 | Class analyses as abstract interpretations of trace semanticsabstractWe use abstract interpretation to abstract a compositional trace semantics for a simple imperative object-oriented language into its projection over a set of program points called watchpoints . We say that the resulting watchpoint semantics is focused on the watchpoints. Every abstraction of the computational domain of this semantics induces an abstract, still compositional, and focused watchpoint semantics. This establishes a basis for developing static analyses obtaining information pertaining only to the watchpoints. As an example, we consider three domains for class analysis of object-oriented programs derived from three techniques present in the literature, namely, rapid type analysis, a simple dataflow analysis, and a constraint-based analysis. We obtain three static analyses which are provably correct and whose abstract operations are provably optimal. Moreover, we prove that our formalization of the constraint-based analysis is more precise than that of the other two analyses. We have implemented our watchpoint semantics and our three domains for class analysis. This implementation shows that the time and space costs of the analysis are actually proportional to the number of watchpoints, as a consequence of the focused nature of the watchpoint semantics. Fausto Spoto, Thomas P. Jensen |
ACM Trans. Program. Lang. Syst. | 2 |
| 2002 | Secure Object Flow Analysis for Java Card
Marc Éluard, Thomas P. Jensen |
CARDIS | 2 |
| 2002 | Secure calling contexts for stack inspectionabstractStack inspection is a mechanism for programming secure applications by which a method can obtain information from the call stack about the code that (directly or indirectly) invoked it. This mechanism plays a fundamental role in the security architecture of Java and the .NET Common Language Runtime. A central problem with stack inspection is to determine to what extent the local checks inserted into the code are sufficient to guarantee that a global security property is enforced. In this paper, we present a technique for inferring a secure calling context for a method. By a secure calling context we mean a pre-condition on the call stack sufficient for guaranteeing that execution of the method will not violate a given global property. This is particularly useful for annotating library code in order to avoid having to re-analyse libraries for every new application. The technique is a constraint based static program analysis implemented via fixed point iteration over an abstract domain of linear temporal logic properties. Frédéric Besson, Thomas de Grenier de Latour, Thomas P. Jensen |
PPDP | 3 |
| 2002 | Correctness of Java card method lookup via logical relations
Ewen Denney, Thomas P. Jensen |
Theor. Comput. Sci. | 2 |
| 2001 | Class Analysis of Object-Oriented Programs through Abstract Interpretation
Thomas P. Jensen, Fausto Spoto |
FoSSaCS | 1 |
| 2001 | Model Checking Security Properties of Control Flow GraphsabstractA fundamental problem in software-based security is whether local security checks inserted into the code are sufficient to implement a global security property. This article introduces a formalism based on a linear-time temporal logic for specifying global security properties pertaining to the control flow of the program, and illustrates its expressive power with a number of existing properties. We define a minimalistic, security-dedicated program model that only contains procedure call and run-time security checks and propose an automatic method for verifying that an implementation using local security checks satisfies a global security property. We then show how to instantiate the framework to the security architecture of Java 2 based on stack inspection and privileged method calls. Frédéric Besson, Thomas P. Jensen, Daniel Le Métayer |
J. Comput. Secur. | 2 |
| 2000 | Correctness of Java Card Method Lookup via Logical Relations
Ewen Denney, Thomas P. Jensen |
ESOP | 2 |
| 1999 | Polyhedral Analysis for Synchronous Languages
Frédéric Besson, Thomas P. Jensen, Jean-Pierre Talpin |
SAS | 2 |
| 1999 | Verification of Control Flow based Security PropertiesabstractA fundamental problem in software based security is whether local security checks inserted into the code are sufficient to implement a global security property. We introduce a formalism based on a two-level linear time temporal logic for specifying global security properties pertaining to the control flow of the program, and illustrate its expressive power with a number of existing properties. We define a minimalistic, security dedicated program model that only contains procedure call and run time security checks and propose an automatic method for verifying that an implementation using local security checks satisfies a global security property. For a given formula in the temporal logic, we prove that there exists a bound on the size of the states that have to be considered in order to assure the validity of the formula: this reduces the problem to finite state model checking. Finally, we instantiate the framework to the security architecture proposed for Java (JDK 1.2). Thomas P. Jensen, Daniel Le Métayer, Tommy Thorn |
S&P | 1 |
| 1998 | Inference of Polymorphic and Conditional Strictness PropertiesabstractWe define an inference system for modular strictness analysis of functional programs by extending a conjunctive strictness logic with polymorphic and conditional properties. This extended set of properties is used to define a syntax-directed, polymorphic strictness analysis based on polymorphic recursion whose soundness is established via a translation from the polymorphic system into the conjunctive system. From the polymorphic analysis, an inference algorithm based on constraint resolution is derived and shown complete for variant of the polymorphic analysis. The algorithm deduces at the same time a property and a set of hypotheses on the free variables of an expression which makes it suitable for analysis of program with module structure. Thomas P. Jensen |
POPL | 1 |
| 1997 | Disjunctive Program Analysis for Algebraic Data TypesabstractWe describe how binding-time, data-flow, and strictness analyses for languages with higher-order functions and algebraic data types can be obtained by instantiating a generic program logic and axiomatization of the properties analyzed for. A distinctive feature of the analyses is that disjunctions of program properties are represented exactly. This yields analyses of high precision and provides a logical characterization of abstract interpretations involving tensor products and uniform properties of recursive data structures. An effective method for proving properties of a program based on fixed-point iteration is obtained by grouping logically equivalent formulae of the same type into equivalence classes, obtaining a lattice of properties of that type, and then defining an abstract interpretation over these lattices. We demonstrate this in the case of strictness analysis by proving that the strictness abstract interpretation of a program is the equivalence class containing the strongest property provable of the program in the strictness logic. Thomas P. Jensen |
ACM Trans. Program. Lang. Syst. | 1 |
| 1996 | Flow Analysis in the Geometry of Interaction
Thomas P. Jensen, Ian Mackie |
ESOP | 1 |
| 1995 | Clock Analysis of Synchronous Dataflow ProgramsabstractSynchronous dataflow languages such as Lustre and Signal have been proposed as a tool for programming reactive systems. These languages rely on a clock analysis to ensure that synchronous operations receive their arguments at the same time. We present a denotational model of a Lustre-like dataflow language and show how a range of clock analyses for this language can be designed and proved correct. To the best of our knowledge this is the first formal correctness proof for such an analysis. We then give a type system formulation of this analysis using clocks as types and show how adding polymorphic clocks enables us to treat programs where clocks vary according to their context. The relationship to the clock analysis by constraint solving used in the language Signal is discussed. 1 Introduction One of the earliest models of concurrent computation is Kahn's networks of processes [Kah74, KM77]. Such a network consists of a set of deterministic processes, or agents, communicating in an ... Thomas P. Jensen |
PEPM | 1 |
| 1995 | Conjunctive Type Systems and Abstract Interpretation of Higher-Order Functional ProgramsabstractWe establish an equivalence between two techniques for analysing higher-order functional programs: abstract interpretation and non-standard type inference. The equivalence is based on an axiomatic presentation of the lattices used in abstract interpretation. This axiomatization forms the basis of a program logic for deducing properties of expressions in a simply typed lambda calculus enriched with fixed points and constants. The main result of the paper is that the strictness logic is sound and complete with respect to the abstract interpretation thus proving that strictness analysis by type inference and by abstract interpretation are equally powerful techniques. We then show how a similar result can be obtained for binding-time analysis. Thomas P. Jensen |
J. Log. Comput. | 1 |
| 1992 | Homology of Higher Dimensional Automata
Eric Goubault, Thomas P. Jensen |
CONCUR | 2 |
| 1992 | Disjunctive Strictness AnalysisabstractThe problem of constructing a disjunctive strictness analysis for a higher-order, functional language is addressed. A system of disjunctive types for strictness analysis of typed lambda -calculus is introduced, and the types are used to define a program logic for strictness analysis. A disjunctive abstract interpretation is then obtained as a sound and complete model of the program logic. The results extend earlier work on using the tensor product of lattices to analyze disjunctive properties of programs by abstract interpretation.> Thomas P. Jensen |
LICS | 1 |
| 1991 | A Relational Approach to Strictness Analysis for Higher-Order Polymorphic FunctionsabstractThis paper defines the categorical notions of relators and transformations and shows that these concepts enable us to give a semantics for polymorphic, higher order functional programs.We demonstrate the pertinence of this semantics to the analysis of polymorphic programs by proving that strictness analysis is a polymorphic invariant. Samson Abramsky, Thomas P. Jensen |
POPL | 2 |
| 1990 | A Backwards Analysis for Compile-time Garbage Collection
Thomas P. Jensen, Torben Æ. Mogensen |
ESOP | 1 |