VLDB 2026 Research / reviewers in the wild / expert
Vasco Thudichum Vasconcelos
dblp:97/1086 · also Vasco T. Vasconcelos
· DBLP profile ↗
59ranked-venue papers
11as first author
12since 2021 · last 2026
0000-0002-9539-8861ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 31 · 5 first-author · 7 since 2021Theory of computation · 22 · 7 first-author · 6 since 2021Systems, architecture and hardware · 3Databases, data management, data science and information retrieval · 2 · 2 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Contextual Metaprogramming for Session TypesabstractWe propose the integration of staged metaprogramming into a session-typed message passing functional language. We build on a model of contextual modal type theory with multi-level contexts, where contextual values, closing arbitrary terms over a series of variables, may be boxed and transmitted in messages. Once received, one such value may then be unboxed and locally applied before being run. To motivate this integration, we present examples of real-world use cases, for which our system would be suitable, such as servers preparing and shipping code on demand via session typed messages. We present a type system that distinguishes linear (used exactly once) from unrestricted (used an unbounded number of times) resources, and further define a type checker, suitable for a concrete implementation. We show type preservation, a progress result for sequential computations and absence of runtime errors for the concurrent runtime environment, as well as the correctness of the type checker. Pedro Ângelo 0002, Atsushi Igarashi, Yuito Murase, Vasco Thudichum Vasconcelos |
ESOP (1) | 4 |
| 2026 | Kind inference for the FreeST programming language
Bernardo Almeida, Andreia Mordido, Vasco Thudichum Vasconcelos |
J. Log. Algebraic Methods Program. | 3 |
| 2026 | Subtyping context-free session types
Gil Silva 0002, Andreia Mordido, Vasco Thudichum Vasconcelos |
Theor. Comput. Sci. | 3 |
| 2025 | Borrowing from Session TypesabstractSession types provide a formal framework to enforce rich communication protocols, ensuring correctness properties such as type safety and deadlock freedom. However, the traditional API of functional session type systems with first-class channels often leads to problems with modularity and composability. This paper proposes a new, alternative session type API based on borrowing, embodied in the core calculus BGV. The borrowing-based API enables building modular and composable code for session type clients without imposing clutter or undue limitations. Its basis is a novel type system, founded on ordered linear typing, for functional session types with an explicit operation for splitting ownership of channels. We establish the semantics of BGV via a type-preserving translation to PGV, a deadlock-free functional session type calculus. We establish type safety and deadlock freedom for BGV by this translation. We also present an external version of BGV that supports use of borrow notation. We developed an algorithmic version of the type system that includes a mechanized verified translation from the external language to BGV. This part establishes decidable type checking. Hannes Saffrich, Janek Spaderna, Peter Thiemann 0001, Vasco Thudichum Vasconcelos |
Proc. ACM Program. Lang. | 4 |
| 2024 | Polymorphic higher-order context-free session typesabstractWe present an extension of polymorphic context-free session types that allows passing channels on channels, commonly known as higher-order session types. The mixture of functional types and session types has proven to be a challenge for type equivalence formulation: whereas functional type equivalence is often inductive and presented as a system of derivation rules, session type equivalence is often coinductive and usually presented as a bisimulation. We propose a unifying approach that handles the equivalence of functional and higher-order context-free session types together in the form of a system of rules generating a coinductively defined relation. Decidability of type equivalence is obtained via reduction to bisimulation for simple grammars, for which practical algorithms are known. To bridge the gap between types and simple grammars, we introduce a language of types with canonical names instead of bindings (which we call c-types), and propose a notion of canonical renaming to translate types to c-types. Diana Costa 0001, Andreia Mordido, Diogo Poças, Vasco Thudichum Vasconcelos |
Theor. Comput. Sci. | 4 |
| 2023 | Subtyping Context-Free Session TypesabstractContext-free session types describe structured patterns of communication on heterogeneously-typed channels, allowing the specification of protocols unconstrained by tail recursion. The enhanced expressive power provided by non-regular recursion comes, however, at the cost of the decidability of subtyping, even if equivalence is still decidable. We present an approach to subtyping context-free session types based on a novel kind of observational preorder we call $\mathcal{XYZW}$-simulation, which generalizes $\mathcal{XY}$-simulation (also known as covariant-contravariant simulation) and therefore also bisimulation and plain simulation. We further propose a subtyping algorithm that we prove to be sound, and present an empirical evaluation in the context of a compiler for a programming language. Due to the general nature of the simulation relation upon which it is built, this algorithm may also find applications in other domains. Gil Silva 0002, Andreia Mordido, Vasco Thudichum Vasconcelos |
CONCUR | 3 |
| 2023 | System Fμ ømega with Context-free Session TypesabstractAbstract We study increasingly expressive type systems, from $$F^\mu $$ Fμ —an extension of the polymorphic lambda calculus with equirecursive types—to $$F^{\mu ;}_\omega $$ Fωμ; —the higher-order polymorphic lambda calculus with equirecursive types and context-free session types. Type equivalence is given by a standard bisimulation defined over a novel labelled transition system for types. Our system subsumes the contractive fragment of $$F^\mu _\omega $$ Fωμ as studied in the literature. Decidability results for type equivalence of the various type languages are obtained from the translation of types into objects of an appropriate computational model: finite-state automata, simple grammars and deterministic pushdown automata. We show that type equivalence is decidable for a significant fragment of the type language. We further propose a message-passing, concurrent functional language equipped with the expressive type language and show that it enjoys preservation and absence of runtime errors for typable processes. Diogo Poças, Diana Costa 0001, Andreia Mordido, Vasco Thudichum Vasconcelos |
ESOP | 4 |
| 2023 | Parameterized Algebraic ProtocolsabstractWe propose algebraic protocols that enable the definition of protocol templates and session types analogous to the definition of domain-specific types with algebraic datatypes. Parameterized algebraic protocols subsume all regular as well as most context-free and nested session types and, at the same time, replace the expensive superlinear algorithms for type checking by a nominal check that runs in linear time. Algebraic protocols in combination with polymorphism increase expressiveness and modularity by facilitating new ways of parameterizing and composing session types. Andreia Mordido, Janek Spaderna, Peter Thiemann 0001, Vasco Thudichum Vasconcelos |
Proc. ACM Program. Lang. | 4 |
| 2022 | The Different Shades of Infinite Session TypesabstractAbstract Many type systems include infinite types. In session type systems, infinite types are important because they specify communication protocols that are unbounded in time. Usually infinite session types are introduced as simple finite-state expressions "Equation missing" or by non-parametric equational definitions "Equation missing". Alternatively, some systems of label- or value-dependent session types go beyond simple recursive types. However, leaving dependent types aside, there is a much richer world of infinite session types, ranging through various forms of parametric equational definitions, to arbitrary infinite types in a coinductively defined space. We study infinite session types across a spectrum of shades of grey on the way to the bright light of general infinite types. We identify four points on the spectrum, characterised by different styles of equational definitions, and show that they form a strict hierarchy by establishing bidirectional correspondences with classes of automata: finite-state, 1-counter, pushdown and 2-counter. This allows us to establish decidability and undecidability results for type formation, type equivalence and duality in each class of types. We also consider previous work on context-free session types (and extend it to higher-order) and nested session types, and locate them on our spectrum of infinite types. Simon J. Gay, Diogo Poças, Vasco Thudichum Vasconcelos |
FoSSaCS | 3 |
| 2022 | Polymorphic lambda calculus with context-free session typesabstractSession types provide a typing discipline for structured communication on bidirectional channels. Context-free session types overcome the restriction to tail recursive protocols characteristic of conventional session types. This extension enables the serialization and deserialization of tree structures in a fully type-safe manner. We present the theory underlying the language FreeST 2, which features context-free session types in an extension of System F with linear types and a kinding system to distinguish message types, session types, and channel types. The system presents metatheoretical challenges which we address: contractivity in the presence of polymorphism, a non-trivial equational theory on types, and decidability of type equivalence. We also establish standard results on typing preservation, progress, and a characterization of erroneous processes. Bernardo Almeida, Andreia Mordido, Peter Thiemann 0001, Vasco Thudichum Vasconcelos |
Inf. Comput. | 4 |
| 2022 | Mixed sessionsabstractSession types describe patterns of interaction on communicating channels. Traditional session types include a form of choice whereby servers offer a collection of options, of which each client selects exactly one. Mixed choices blur the distinction between servers and clients (that is, external and internal choice) by allowing options to be both offered and selected in the same choice. We introduce mixed choices in the context of session types and argue that they increase the flexibility of program development at the same time that they reduce the number of synchronisation primitives down to exactly one. We present a type system incorporating subtyping and prove preservation and absence of runtime errors for well-typed processes. We further show that classical (conventional) sessions can be faithfully and tightly embedded in mixed choices, and conversely that there is a minimal encoding from mixed choices to classical sessions. Finally, we discuss algorithmic type checking and a runtime system built on top of a conventional (choice-less) message-passing architecture. Filipe Casal, Andreia Mordido, Vasco Thudichum Vasconcelos |
Theor. Comput. Sci. | 3 |
| 2022 | A Type Discipline for Message Passing Parallel ProgramsabstractWe presentParTypes, a type discipline for parallel programs. The model we have in mind comprises a fixed number of processes running in parallel and communicating via collective operations or point-to-point synchronous message exchanges. A type describes a protocol to be followed by each processes in a given program. We present the type theory, a core imperative programming language and its operational semantics, and prove that type checking is decidable (up to decidability of semantic entailment) and that well-typed programs do not deadlock and always terminate. The article is accompanied by a large number of examples drawn from the literature on parallel programming. Vasco Thudichum Vasconcelos, Francisco Martins, Hugo A. López 0001, Nobuko Yoshida |
ACM Trans. Program. Lang. Syst. | 1 |
| 2020 | Mixed SessionsabstractAbstract Session types describe patterns of interaction on communicating channels. Traditional session types include a form of choice whereby servers offer a collection of options, of which each client picks exactly one. This sort of choice constitutes a particular case of separated choice: offering on one side, selecting on the other. We introduce mixed choices in the context of session types and argue that they increase the flexibility of program development at the same time that they reduce the number of synchronisation primitives to exactly one. We present a type system incorporating subtyping and prove preservation and absence of runtime errors for well-typed processes. We further show that classical (conventional) sessions can be faithfully and tightly embedded in mixed choices. Finally, we discuss algorithmic type checking and a runtime system built on top of a conventional (choice-less) message-passing architecture. Vasco Thudichum Vasconcelos, Filipe Casal, Bernardo Almeida, Andreia Mordido |
ESOP | 1 |
| 2020 | Statically Checking REST API Consumers
Nuno Burnay, Antónia Lopes, Vasco Thudichum Vasconcelos |
SEFM | 3 |
| 2020 | Deciding the Bisimilarity of Context-Free Session TypesabstractAbstract We present an algorithm to decide the equivalence of context-free session types, practical to the point of being incorporated in a compiler. We prove its soundness and completeness. We further evaluate its behaviour in practice. In the process, we introduce an algorithm to decide the bisimilarity of simple grammars. Bernardo Almeida, Andreia Mordido, Vasco Thudichum Vasconcelos |
TACAS (2) | 3 |
| 2020 | Label-dependent session typesabstractSession types have emerged as a typing discipline for communication protocols. Existing calculi with session types come equipped with many different primitives that combine communication with the introduction or elimination of the transmitted value. We present a foundational session type calculus with a lightweight operational semantics. It fully decouples communication from the introduction and elimination of data and thus features a single communication reduction, which acts as a rendezvous between senders and receivers. We achieve this decoupling by introducing label-dependent session types, a minimalist value-dependent session type system with subtyping. The system is sufficiently powerful to simulate existing functional session type systems. Compared to such systems, label-dependent session types place fewer restrictions on the code. We further introduce primitive recursion over natural numbers at the type level, thus allowing to describe protocols whose behaviour depends on numbers exchanged in messages. An algorithmic type checking system is introduced and proved equivalent to its declarative counterpart. The new calculus showcases a novel lightweight integration of dependent types and linear typing, with has uses beyond session type systems. Peter Thiemann 0001, Vasco Thudichum Vasconcelos |
Proc. ACM Program. Lang. | 2 |
| 2019 | Asynchronous Timed Session Types - From Duality to Time-Sensitive ProcessesabstractWe present a behavioural typing system for a higher-order timed calculus using session types to model timed protocols. Behavioural typing ensures that processes in the calculus perform actions in the time-windows prescribed by their protocols. We introduce duality and subtyping for timed asynchronous session types. Our notion of duality allows typing a larger class of processes with respect to previous proposals. Subtyping is critical for the precision of our typing system, especially in the presence of session delegation. The composition of dual (timed asynchronous) types enjoys progress when using an urgent receive semantics, in which receive actions are executed as soon as the expected message is available. Our calculus increases the modelling power of extant calculi on timed sessions, adding a blocking receive primitive with timeout and a primitive that consumes an arbitrary amount of time in a given range. Laura Bocchi, Maurizio Murgia 0001, Vasco Thudichum Vasconcelos, Nobuko Yoshida |
ESOP | 3 |
| 2019 | Gradual session typesabstractAbstract Session types are a rich type discipline, based on linear types, that lifts the sort of safety claims that come with type systems to communications. However, web-based applications and microservices are often written in a mix of languages, with type disciplines in a spectrum between static and dynamic typing. Gradual session types address this mixed setting by providing a framework which grants seamless transition between statically typed handling of sessions and any required degree of dynamic typing. We propose Gradual GV as a gradually typed extension of the functional session type system GV. Following a standard framework of gradual typing, Gradual GV consists of an external language, which relaxes the type system of GV using dynamic types; an internal language with casts, for which operational semantics is given; and a cast-insertion translation from the former to the latter. We demonstrate type and communication safety as well as blame safety, thus extending previous results to functional languages with session-based communication. The interplay of linearity and dynamic types requires a novel approach to specifying the dynamics of the language. Atsushi Igarashi, Peter Thiemann 0001, Yuya Tsuda, Vasco Thudichum Vasconcelos, Philip Wadler |
J. Funct. Program. | 4 |
| 2018 | Dependent Types for Class-based Mutable ObjectsabstractWe present an imperative object-oriented language featuring a dependent type system designed to support class-based programming and inheritance. Programmers implement classes in the usual imperative style, and may take advantage of a richer dependent type system to express class invariants and restrictions on how objects are allowed to change and be used as arguments to methods. By way of example, we implement insertion and deletion for binary search trees in an imperative style, and come up with types that ensure the binary search tree invariant. This is the first dependently-typed language with mutable objects that we know of to bring classes and index refinements into play, enabling types (classes) to be refined by indices drawn from some constraint domain. We give a declarative type system that supports objects whose types may change, despite being sound. We also give an algorithmic type system that provides a precise account of quantifier instantiation in a bidirectional style, and from which it is straightforward to read off an implementation. Moreover, all the examples in the paper have been run, compiled and executed in a fully functional prototype that includes a plugin for the Eclipse IDE. Joana Campos 0002, Vasco Thudichum Vasconcelos |
ECOOP | 2 |
| 2018 | Affine SessionsabstractSession types describe the structure of communications implemented by channels. In particular, they prescribe the sequence of communications, whether they are input or output actions, and the type of value exchanged. Crucial to any language with session types is the notion of linearity, which is essential to ensure that channels exhibit the behaviour prescribed by their type without interference in the presence of concurrency. In this work we relax the condition of linearity to that of affinity, by which channels exhibit at most the behaviour prescribed by their types. This more liberal setting allows us to incorporate an elegant error handling mechanism which simplifies and improves related works on exceptions. Moreover, our treatment does not affect the progress properties of the language: sessions never get stuck. Dimitris Mostrous, Vasco Thudichum Vasconcelos |
Log. Methods Comput. Sci. | 2 |
| 2017 | Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangersabstractFutures are an elegant approach to expressing parallelism in functional programs. However, combining futures with imperative programming (as in C++ or in Java) can lead to pernicious bugs in the form of data races and deadlocks, as a consequence of uncontrolled data flow through mutable shared memory. In this paper we introduce the Known Joins (KJ) property for parallel programs with futures, and relate it to the Deadlock Freedom (DF) and the Data-Race Freedom (DRF) properties. Our paper offers two key theoretical results: 1) DRF implies KJ, and 2) KJ implies DF. These results show that data-race freedom is sufficient to guarantee deadlock freedom in programs with futures that only manipulate unsynchronized shared variables. To the best of our knowledge, these are the first theoretical results to establish sufficient conditions for deadlock freedom in imperative parallel programs with futures, and to characterize the subset of data races that can trigger deadlocks (those that violate the KJ property). From result 2), we developed a tool that avoids deadlocks in linear time and space when KJ holds, i.e., when there are no data races among references to futures. When KJ fails, the tool reports the data race and optionally falls back to a standard deadlock avoidance algorithm by cycle detection. Our tool verified a dataset of ∼2,300 student’s homework solutions and found one deadlocked program. The performance results obtained from our tool are very encouraging: a maximum slowdown of 1.06× on a 16-core machine, always outperforming deadlock avoidance via cycle-detection. Proofs of the two main results were formalized using the Coq proof assistant. Tiago Cogumbreiro, Rishi Surendran, Francisco Martins, Vivek Sarkar, Vasco Thudichum Vasconcelos, Max Grossman |
Proc. ACM Program. Lang. | 5 |
| 2017 | Gradual session typesabstractSession types are a rich type discipline, based on linear types, that lift the sort of safety claims that come with type systems to communications. However, web-based applications and micro services are often written in a mix of languages, with type disciplines in a spectrum between static and dynamic typing. Gradual session types address this mixed setting by providing a framework which grants seamless transition between statically typed handling of sessions and any required degree of dynamic typing. We propose GradualGV as an extension of the functional session type system GV with dynamic types and casts. We demonstrate type and communication safety as well as blame safety, thus extending previous results to functional languages with session-based communication. The interplay of linearity and dynamic types requires a novel approach to specifying the dynamics of the language. Atsushi Igarashi, Peter Thiemann 0001, Vasco Thudichum Vasconcelos, Philip Wadler |
Proc. ACM Program. Lang. | 3 |
| 2016 | Context-free session typesabstractSession types describe structured communication on heterogeneously typed channels at a high level. Their tail-recursive structure imposes a protocol that can be described by a regular language. The types of transmitted values are drawn from the underlying functional language, abstracting from the details of serializing values of structured data types. Peter Thiemann 0001, Vasco Thudichum Vasconcelos |
ICFP | 2 |
| 2016 | Linearity, session types and the Pi calculusabstractWe present a type system based on session types that works on a conventional pi calculus. Types are equipped with a constructor that describes the two ends of a single communication channel, this being the only type available for describing the behaviour of channels. Session types, in turn, describe the behaviour of each individual channel end, as usual. A novel notion of typing context split allows for typing processes not typable with extant type systems. We show that our system guarantees that typed processes do not engage in races for linear resources. We assess the expressiveness of the type system by providing three distinct encodings – from the pi calculus with polarized variables, from the pi calculus with accept and request primitives, and from the linear pi calculus – into our system. For each language we present operational and typing correspondences, showing that our system effectively subsumes foregoing works on linear and session types. In the case of the linear pi calculus we also provide a completeness result. Marco Giunti, Vasco Thudichum Vasconcelos |
Math. Struct. Comput. Sci. | 2 |
| 2015 | Imperative objects with dependent typesabstractIndex refinements (or dependent types over a restricted domain) enable the expression of many desirable invariants that can be verified at compile time. We propose to incorporate a system of index refinements in a small, class-based, imperative, object-oriented language. While rooted in techniques formulated for dependently-typed functional languages, our type system is able to capture more than just value properties and pure computations. Index refinements, combined with a notion of pre- and post-type to track state, give programmers the ability to reason about effectful computations. Our type system distinguishes between two classes of objects, imposing an affine discipline to objects whose types are governed by indices, as opposed to conventional objects which can be freely shared. We have designed and implemented an expressive and decidable type system, which we illustrate through a number of examples. Joana Campos 0002, Vasco Thudichum Vasconcelos |
FTfJP@ECOOP | 2 |
| 2015 | Protocol-based verification of message-passing parallel programsabstractWe present ParTypes, a type-based methodology for the verification of Message Passing Interface (MPI) programs written in the C programming language. The aim is to statically verify programs against protocol specifications, enforcing properties such as fidelity and absence of deadlocks. We develop a protocol language based on a dependent type system for message-passing parallel programs, which includes various communication operators, such as point-to-point messages, broadcast, reduce, array scatter and gather. For the verification of a program against a given protocol, the protocol is first translated into a representation read by VCC, a software verifier for C. We successfully verified several MPI programs in a running time that is independent of the number of processes or other input parameters. This contrasts with alternative techniques, notably model checking and runtime verification, that suffer from the state-explosion problem or that otherwise depend on parameters to the program itself. We experimentally evaluated our approach against state-of-the-art tools for MPI to conclude that our approach offers a scalable solution. Hugo A. López 0001, Eduardo R. B. Marques, Francisco Martins, Nicholas Ng, César Augusto Ribeiro dos Santos, Vasco Thudichum Vasconcelos, Nobuko Yoshida |
OOPSLA | 6 |
| 2014 | Affine Sessions
Dimitris Mostrous, Vasco Thudichum Vasconcelos |
COORDINATION | 2 |
| 2014 | Typing Liveness in Multiparty Communicating Systems
Luca Padovani, Vasco Thudichum Vasconcelos, Hugo Torres Vieira |
COORDINATION | 2 |
| 2014 | The stream-based service-centred calculus: a foundation for service-oriented programmingabstractAbstract We give a formal account of stream-based, service-centered calculus (SSCC), a calculus for modelling service-based systems, suitable to describe both service composition (orchestration) and the protocols that services follow when invoked (conversation). The calculus includes primitives for defining and invoking services, for isolating conversations (called sessions) among clients and servers, and for orchestrating services. The calculus is equipped with a reduction and a labelled transition semantics related by an equivalence result. SSCC provides a good trade-off between expressive power for modelling and simplicity for analysis. We assess the expressive power by modelling van der Aalst workflow patterns and an automotive case study from the European project Sensoria. For analysis, we present a simple type system ensuring compatibility of client and service protocols. We also study the behavioural theory of the calculus, highlighting some axioms that capture the behaviour of the different primitives. As a final application of the theory, we define and prove correct some program transformations. These allow to start modelling a system from a typical UML Sequence Diagram, and then transform the specification to match the service-oriented programming style, thus simplifying its implementation using web services technology. Luís Cruz-Filipe, Ivan Lanese, Francisco Martins, António Ravara, Vasco Thudichum Vasconcelos |
Formal Aspects Comput. | 5 |
| 2013 | Coordinating Phased Activities while Maintaining Progress
Tiago Cogumbreiro, Francisco Martins, Vasco Thudichum Vasconcelos |
COORDINATION | 3 |
| 2013 | Typing Progress in Communication-Centred Systems
Hugo Torres Vieira, Vasco Thudichum Vasconcelos |
COORDINATION | 2 |
| 2012 | Verification of MPI Programs Using Session Types
Kohei Honda 0001, Eduardo R. B. Marques, Francisco Martins, Nicholas Ng, Vasco Thudichum Vasconcelos, Nobuko Yoshida |
EuroMPI | 5 |
| 2012 | An Algebra of Behavioural Types
António Ravara, Pedro Resende, Vasco Thudichum Vasconcelos |
Inf. Comput. | 3 |
| 2012 | Fundamentals of session types
Vasco Thudichum Vasconcelos |
Inf. Comput. | 1 |
| 2012 | Selected Papers from the Eleventh International Conference on Coordination Models and Languages
John Field, Vasco Thudichum Vasconcelos |
Sci. Comput. Program. | 2 |
| 2011 | Session Typing for a Featherweight Erlang
Dimitris Mostrous, Vasco Thudichum Vasconcelos |
COORDINATION | 2 |
| 2010 | A Linear Account of Session Types in the Pi Calculus
Marco Giunti, Vasco Thudichum Vasconcelos |
CONCUR | 2 |
| 2010 | Modular session types for distributed object-oriented programmingabstractSession types allow communication protocols to be specified type-theoretically so that protocol implementations can be verified by static type-checking. We extend previous work on session types for distributed object-oriented languages in three ways. (1) We attach a session type to a class definition, to specify the possible sequences of method calls. (2) We allow a session type (protocol) implementation to be modularized , i.e. partitioned into separately-callable methods. (3) We treat session-typed communication channels as objects, integrating their session types with the session types of classes. The result is an elegant unification of communication channels and their session types, distributed object-oriented programming, and a form of typestates supporting non-uniform objects, i.e. objects that dynamically change the set of available methods. We define syntax, operational semantics, a sound type system, and a correct and complete type checking algorithm for a small distributed class-based object-oriented language. Static typing guarantees that both sequences of messages on channels, and sequences of method calls on objects, conform to type-theoretic specifications, thus ensuring type-safety. The language includes expected features of session types, such as delegation, and expected features of object-oriented programming, such as encapsulation of local state. We also describe a prototype implementation as an extension of Java. Simon J. Gay, Vasco Thudichum Vasconcelos, António Ravara, Nils Gesbert, Alexandre Z. Caldeira |
POPL | 2 |
| 2010 | 18th International Conference on Concurrency Theory
Luís Caires, Vasco Thudichum Vasconcelos |
Inf. Comput. | 2 |
| 2010 | Linear type theory for asynchronous session typesabstractAbstract Session types support a type-theoretic formulation of structured patterns of communication, so that the communication behaviour of agents in a distributed system can be verified by static typechecking. Applications include network protocols, business processes and operating system services. In this paper we define a multithreaded functional language with session types, which unifies, simplifies and extends previous work. There are four main contributions. First is an operational semantics with buffered channels, instead of the synchronous communication of previous work. Second, we prove that the session type of a channel gives an upper bound on the necessary size of the buffer. Third, session types are manipulated by means of the standard structures of a linear type theory, rather than by means of new forms of typing judgement. Fourth, a notion of subtyping, including the standard subtyping relation for session types (imported into the functional setting), and a novel form of subtyping between standard and linear function types, which allows the typechecker to handle linear types conveniently. Our new approach significantly simplifies session types in the functional setting, clarifies their essential features and provides a secure foundation for language developments such as polymorphism and object-orientation. Simon J. Gay, Vasco Thudichum Vasconcelos |
J. Funct. Program. | 2 |
| 2009 | Session types for linear multithreaded functional programmingabstractThe construction of reliable concurrent and distributed systems is an extremely difficult endeavour. For complex systems, it requires modular development strategies based on precise interface specifications that allow the various modules to interact properly. In this extended abstract we are concerned with message passing systems where partners engage in long and complex interactions, as opposed to, say, remote procedure calls composed of a pair of simple interactions. Vasco Thudichum Vasconcelos |
PPDP | 1 |
| 2009 | Bridging the Gap between Algebraic Specification and Object-Oriented Generic Programming
Isabel Nunes, Antónia Lopes, Vasco Thudichum Vasconcelos |
RV | 3 |
| 2007 | Disciplining Orchestration and Conversation in Service-Oriented ComputingabstractWe give a formal account of a calculus for modeling service-based systems, suitable to describe both service composition (orchestration) and the protocol that services run when invoked (conversation). The calculus includes primitives for defining and invoking services, for isolating conversations between clients and servers, and for orchestrating services. The calculus is equipped with a reduction and a labeled transition semantics related by an equivalence result. To hint how the structuring mechanisms of the language can be exploited for static analysis we present a simple type system guaranteeing the compatibility between client and server protocols, an application of bisimilarity to prove equivalence among services, and we discuss deadlock-avoidance. Ivan Lanese, Francisco Martins, Vasco Thudichum Vasconcelos, António Ravara |
SEFM | 3 |
| 2006 | Checking the Conformance of Java Classes Against Algebraic Specifications
Isabel Nunes, Antónia Lopes, Vasco Thudichum Vasconcelos, João Abreu, Luís S. Reis |
ICFEM | 3 |
| 2006 | Typing the Behavior of Software Components using Session Types
Antonio Vallecillo, Vasco Thudichum Vasconcelos, António Ravara |
Fundam. Informaticae | 2 |
| 2006 | Type checking a multithreaded functional language with session types
Vasco Thudichum Vasconcelos, Simon J. Gay, António Ravara |
Theor. Comput. Sci. | 1 |
| 2005 | Lambda and pi calculi, CAM and SECD machinesabstractWe analyse machines that implement the call-by-value reduction strategy of the λ-calculus: two environment machines – CAM and SECD – and two encodings into the $\pi$ -calculus – due to Milner and Vasconcelos. To establish the relation between the various machines, we setup a notion of reduction machine and two notions of correspondences: operational – in which a reduction step in the source machine is mimicked by a sequence of steps in the target machine – and convergent – where only reduction to normal form is simulated. We show that there are operational correspondences from the λ-calculus into CAM, and from CAM and from SECD into the $\pi$ -calculus. Plotkin completes the picture by showing that there is a convergent correspondence from the λ-calculus into SECD. Vasco Thudichum Vasconcelos |
J. Funct. Program. | 1 |
| 2004 | Session Types for Functional Multithreading
Vasco Thudichum Vasconcelos, António Ravara, Simon J. Gay |
CONCUR | 1 |
| 2001 | Fine-Grained Multithreading with Process CalculiabstractThis paper presents a multithreaded abstract machine for the TyCO process calculus. We argue that process calculi provide a powerful framework to reason about fine-grained parallel computations. They allow for the construction of formally verifiable systems on which to base high-level programming idioms, combined with efficient compilation schemes into multithreaded architectures. Luís M. B. Lopes, Vasco Thudichum Vasconcelos, Fernando M. A. Silva |
IEEE Trans. Computers | 2 |
| 2000 | A Concurrent Programming Environment with Support for Distributed Computations and Code MobilityabstractWe propose a programming model for distributed concurrent systems with mobile objects in the context of a process calculus. Code mobility is induced by lexical scoping on names. Objects and messages migrate towards the site where their prefixes are lexically bound. Class definitions, on the other hand, are downloaded from the site where they are defined, and are instantiated locally upon arrival. We provide several programming examples to demonstrate the expressiveness of the model. Finally, based on this model we describe an architecture for a run-time system supporting concurrent, distributed computations and code mobility. Luís M. B. Lopes, Álvaro Figueira, Fernando M. A. Silva, Vasco Thudichum Vasconcelos |
CLUSTER | 4 |
| 2000 | Typing Non-uniform Concurrent Objects
António Ravara, Vasco Thudichum Vasconcelos |
CONCUR | 2 |
| 2000 | Secure Information Flow as Typed Process Behaviour
Kohei Honda 0001, Vasco Thudichum Vasconcelos, Nobuko Yoshida |
ESOP | 2 |
| 1999 | A Virtual Machine for a Process Calculus
Luís M. B. Lopes, Fernando M. A. Silva, Vasco Thudichum Vasconcelos |
PPDP | 3 |
| 1999 | Communication Errors in the pi-Calculus are Undecidable
Vasco Thudichum Vasconcelos, António Ravara |
Inf. Process. Lett. | 1 |
| 1998 | Language Primitives and Type Discipline for Structured Communication-Based Programming
Kohei Honda 0001, Vasco Thudichum Vasconcelos, Makoto Kubo |
ESOP | 2 |
| 1997 | Behavioural Types for a Calculus of Concurrent Objects
António Ravara, Vasco Thudichum Vasconcelos |
Euro-Par | 2 |
| 1995 | Unification of Kinded Infinite Trees
Vasco Thudichum Vasconcelos |
Inf. Process. Lett. | 1 |
| 1994 | Typed Concurrent Objects
Vasco Thudichum Vasconcelos |
ECOOP | 1 |
| 1993 | Principal Typing Schemes in a Polyadic pi-Calculus
Vasco Thudichum Vasconcelos, Kohei Honda 0001 |
CONCUR | 1 |