Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Luís Caires is active.

Publication


Featured researches published by Luís Caires.


international symposium on theoretical aspects of computer software | 2003

A spatial logic for concurrency (part I)

Luís Caires; Luca Cardelli

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.


international conference on web services | 2006

SCC: a service centered calculus

Michele Boreale; Roberto Bruni; Luís Caires; R. De Nicola; Ivan Lanese; Michele Loreti; Francisco Martins; Ugo Montanari; António Ravara; Davide Sangiorgi; Vasco Thudichum Vasconcelos; Gianluigi Zavattaro

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 SCCs 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.


international conference on concurrency theory | 2010

Session types as intuitionistic linear propositions

Luís Caires; Frank Pfenning

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.


Theoretical Computer Science | 2004

A spatial logic for concurrency--II

Luís Caires; Luca Cardelli

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 name quantifier. In Part I of this work we study the fundamental semantic properties of our logic; the focus of the present Part II is on proof theory. The main contributions are a sequent-based proof system for our logic, and a proof of cut-elimination for its first-order fragment.


international conference on concurrency theory | 2002

A Spatial Logic for Concurrency (Part II)

Luís Caires; Luca Cardelli

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.


european conference on object oriented programming | 2000

A Basic Model of Typed Components

João Costa Seco; Luís Caires

This paper studies specific language level abstractions for component-based programming. We propose a simple model which captures some basic ingredients--like explicit context dependence, dynamic binding and subtype polymorphism, late (dynamic) composition, and avoidance of inheritance in favor of object composition -- that several authors have defended to be central to black-box object-oriented component programming styles. The model is expressed by a core imperative typed calculus, in which components are first-class entities, and whose basic constructs enable the composition, scripting, instantiation and definition of atomic components. Some motivating programming examples are presented, and the operational semantics is shown to enjoy a type-safety property. We also discuss an extension to the Java language aimed at supporting the proposed model, and some implementation issues.


Theoretical Computer Science | 2010

Conversation types

Luís Caires; Hugo Torres Vieira

We present a type theory for analyzing concurrent multiparty interactions as found in service-oriented computing. Our theory introduces a novel and flexible type structure, able to uniformly describe both the internal and the interface behavior of systems, referred respectively as choreographies and contracts in web-services terminology. The notion of conversation builds on the fundamental concept of session, but generalizes it along directions up to now unexplored; in particular, conversation types discipline interactions in conversations while accounting for dynamical join and leave of an unanticipated number of participants. We prove that well-typed systems never violate the prescribed conversation constraints. We also present techniques to ensure progress of systems involving several interleaved conversations, a previously open problem.


european symposium on programming | 2008

The conversation calculus: a model of service-oriented computation

Hugo Torres Vieira; Luís Caires; João Costa Seco

We present a process-calculus model for expressing and analyzing service-based systems. Our approach addresses central features of the service-oriented computational model such as distribution, process delegation, communication and context sensitiveness, and loose coupling. Distinguishing aspects of our model are the notion of conversation context, the adoption of a context sensitive, message-passing-based communication, and of a simple yet expressive mechanism for handling exceptional behavior. We instantiate our model by extending a fragment of the π-calculus, illustrate its expressiveness by means of many examples, and study its basic behavioral theory; in particular, we establish that bisimilarity is a congruence.


ACM Computing Surveys | 2016

Foundations of Session Types and Behavioural Contracts

Hans Hüttel; Ivan Lanese; Vasco Thudichum Vasconcelos; Luís Caires; Marco Carbone; Pierre-Malo Deniélou; Dimitris Mostrous; Luca Padovani; António Ravara; Emilio Tuosto; Hugo Torres Vieira; Gianluigi Zavattaro

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.


european symposium on programming | 2013

Higher-Order processes, functions, and sessions: a monadic integration

Bernardo Toninho; Luís Caires; Frank Pfenning

In prior research we have developed a Curry-Howard interpretation of linear sequent calculus as session-typed processes. In this paper we uniformly integrate this computational interpretation in a functional language via a linear contextual monad that isolates session-based concurrency. Monadic values are open process expressions and are first class objects in the language, thus providing a logical foundation for higher-order session typed processes. We illustrate how the combined use of the monad and recursive types allows us to cleanly write a rich variety of concurrent programs, including higher-order programs that communicate processes. We show the standard metatheoretic result of type preservation, as well as a global progress theorem, which to the best of our knowledge, is new in the higher-order session typed setting.

Collaboration


Dive into the Luís Caires's collaboration.

Top Co-Authors

Avatar

Hugo Torres Vieira

Universidade Nova de Lisboa

View shared research outputs
Top Co-Authors

Avatar

Bernardo Toninho

Universidade Nova de Lisboa

View shared research outputs
Top Co-Authors

Avatar

João Costa Seco

Universidade Nova de Lisboa

View shared research outputs
Top Co-Authors

Avatar

Frank Pfenning

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Luís Monteiro

Rio de Janeiro State University

View shared research outputs
Top Co-Authors

Avatar

Filipe Militão

Universidade Nova de Lisboa

View shared research outputs
Top Co-Authors

Avatar

Jonathan Aldrich

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge