scispace - formally typeset
Search or ask a question
Author

Luís Caires

Other affiliations: Citigroup, University of Lisbon
Bio: Luís Caires is an academic researcher from Universidade Nova de Lisboa. The author has contributed to research in topics: Concurrency & Session (computer science). The author has an hindex of 28, co-authored 78 publications receiving 2965 citations. Previous affiliations of Luís Caires include Citigroup & University of Lisbon.


Papers
More filters
Book ChapterDOI
31 Aug 2010
TL;DR: This paper introduces a type system for the π-calculus that exactly corresponds to the standard sequent calculus proof system for dual intuitionistic linear logic, and provides the first purely logical account of all features of session types.
Abstract: Several type disciplines for π-calculi have been proposed in which linearity plays a key role, even if their precise relationship with pure linear logic is still not well understood. In this paper, we introduce a type system for the π-calculus that exactly corresponds to the standard sequent calculus proof system for dual intuitionistic linear logic. Our type system is based on a new interpretation of linear propositions as session types, and provides the first purely logical account of all (both shared and linear) features of session types. We show that our type discipline is useful from a programming perspective, and ensures session fidelity, absence of deadlocks, and a tight operational correspondence between π-calculus reductions and cut elimination steps.

357 citations

Journal ArticleDOI
Luís Caires, Luca Cardelli1
01 Nov 2003
TL;DR: A logic that can express properties of freshness, secrecy, structure, and behavior of concurrent systems is presented, which includes spatial operations corresponding to composition, local name restriction, and a primitive fresh name quantifier.
Abstract: We present a logic that can express properties of freshness, secrecy, structure, and behavior of concurrent systems. In addition to standard logical and temporal operators, our logic includes spatial operations corresponding to composition, local name restriction, and a primitive fresh name quantifier. Properties can also be defined by recursion; a central aim of this paper is then the combination of a logical notion of freshness with inductive and coinductive definitions of properties.

274 citations

Journal ArticleDOI
TL;DR: This article surveys the main accomplishments of the last 20 years within behavioural types within session types and behavioural contracts.
Abstract: Behavioural type systems, usually associated to concurrent or distributed computations, encompass concepts such as interfaces, communication protocols, and contracts, in addition to the traditional input/output operations. The behavioural type of a software component specifies its expected patterns of interaction using expressive type languages, so types can be used to determine automatically whether the component interacts correctly with other components. Two related important notions of behavioural types are those of session types and behavioural contracts. This article surveys the main accomplishments of the last 20 years within these two approaches.

215 citations

Book ChapterDOI
Luís Caires, Luca Cardelli1
20 Aug 2002
TL;DR: Modal logic for describing the spatial organization and the behavior of distributed systems is presented, including spatial operations corresponding to process composition and name hiding, and a fresh quantifier.
Abstract: We present a modal logic for describing the spatial organization and the behavior of distributed systems. In addition to standard logical and temporal operators, our logic includes spatial operations corresponding to process composition and name hiding, and a fresh quantifier.

163 citations

Book ChapterDOI
08 Sep 2006
TL;DR: This study introduces SCC, a process calculus that features explicit notions of service definition, service invocation and session handling, and presents syntax and operational semantics of SCC and a number of simple but nontrivial programming examples that demonstrate flexibility of the chosen set of primitives.
Abstract: We seek for a small set of primitives that might serve as a basis for formalising and programming service oriented applications over global computers. As an outcome of this study we introduce here SCC, a process calculus that features explicit notions of service definition, service invocation and session handling. Our proposal has been influenced by Orc, a programming model for structured orchestration of services, but the SCC's session handling mechanism allows for the definition of structured interaction protocols, more complex than the basic request-response provided by Orc. We present syntax and operational semantics of SCC and a number of simple but nontrivial programming examples that demonstrate flexibility of the chosen set of primitives. A few encodings are also provided to relate our proposal with existing ones.

156 citations


Cited by
More filters
Proceedings ArticleDOI
22 Jul 2002
TL;DR: An extension of Hoare logic that permits reasoning about low-level imperative programs that use shared mutable data structure is developed, including extensions that permit unrestricted address arithmetic, dynamically allocated arrays, and recursive procedures.
Abstract: In joint work with Peter O'Hearn and others, based on early ideas of Burstall, we have developed an extension of Hoare logic that permits reasoning about low-level imperative programs that use shared mutable data structure. The simple imperative programming language is extended with commands (not expressions) for accessing and modifying shared structures, and for explicit allocation and deallocation of storage. Assertions are extended by introducing a "separating conjunction" that asserts that its subformulas hold for disjoint parts of the heap, and a closely related "separating implication". Coupled with the inductive definition of predicates on abstract data structures, this extension permits the concise and flexible description of structures with controlled sharing. In this paper, we survey the current development of this program logic, including extensions that permit unrestricted address arithmetic, dynamically allocated arrays, and recursive procedures. We also discuss promising future directions.

2,348 citations

Book ChapterDOI
06 Sep 2017
TL;DR: This chapter reviews the history of software architecture, the reasons that led to the diffusion of objects and services first, and microservices later, and presents the current state-of-the-art in the field.
Abstract: Microservices is an architectural style inspired by service-oriented computing that has recently started gaining popularity. Before presenting the current state of the art in the field, this chapter reviews the history of software architecture, the reasons that led to the diffusion of objects and services first, and microservices later. Finally, open problems and future challenges are introduced. This survey primarily addresses newcomers to the discipline, while offering an academic viewpoint on the topic. In addition, we investigate some practical issues and point out a few potential solutions.

790 citations

Journal ArticleDOI

590 citations