VLDB 2026 Research / reviewers in the wild / expert
António Ravara
dblp:13/6347
· DBLP profile ↗
26ranked-venue papers
3as first author
9since 2021 · last 2026
0000-0001-8074-0380ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 12 · 7 since 2021Theory of computation · 10 · 2 first-author · 1 since 2021Artificial intelligence and machine learning · 1Systems, architecture and hardware · 1 · 1 first-authorComputer networks · 1 · 1 since 2021Databases, data management, data science and information retrieval · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Automatic Code and Test Generation of Smart Contracts from Coordination ModelsabstractWe propose a formal approach for specifying and implementing decentralised coordination in distributed systems, with a focus on smart contracts. Our model captures dynamic roles, data-driven transitions, and external coordination interfaces, enabling high-level reasoning about decentralised workflows. We implement a toolchain that supports formal model validation, code generation for Solidity (our framework is extendable to other smart contract languages), and automated test synthesis. Although our implementation targets blockchain platforms, the methodology is platform-agnostic and may generalise to other service-oriented and distributed architectures. We demonstrate the expressiveness and practicality of the approach by modelling and realising some coordination patterns in smart contracts. Elvis Konjoh Selabi, Maurizio Murgia 0001, António Ravara, Emilio Tuosto |
ECOOP | 3 |
| 2026 | Soundness of Typed Transitions in the Linear π-Calculus
Adrian Francalanza, Marco Giunti, António Ravara |
FORTE | 3 |
| 2024 | TRAC: A Tool for Data-Aware Coordination - (with an Application to Smart Contracts)
João Afonso, Elvis Konjoh Selabi, Maurizio Murgia 0001, António Ravara, Emilio Tuosto |
COORDINATION | 4 |
| 2024 | Behavioural Up/down Casting For Statically Typed Languages
Lorenzo Bacchiani, Mario Bravetti, Marco Giunti, João Mota, António Ravara |
ECOOP | 5 |
| 2023 | On Using VeriFast, VerCors, Plural, and KeY to Check Object Usage (Experience Paper)abstractTypestates are a notion of behavioral types that describe protocols for stateful objects, specifying the available methods for each state. Ensuring methods are called in the correct order (protocol compliance), and that, if and when the program terminates, all objects are in the final state (protocol completion) is crucial to write better and safer programs. Objects of this kind are commonly shared among different clients or stored in collections, which may also be shared. However, statically checking protocol compliance and completion when objects are shared is challenging. To evaluate the support given by state of the art verification tools in checking the correct use of shared objects with protocol, we present a survey on four tools for Java: VeriFast, VerCors, Plural, and KeY. We describe the implementation of a file reader, linked-list, and iterator, check for each tool its ability to statically guarantee protocol compliance and completion, even when objects are shared in collections, and evaluate the programmer’s effort in making the code acceptable to these tools. With this study, we motivate the need for lightweight methods to verify the presented kinds of programs. João Mota, Marco Giunti, António Ravara |
ECOOP | 3 |
| 2023 | AtomiS: Data-Centric Synchronization Made PracticalabstractData-Centric Synchronization (DCS) shifts the reasoning about concurrency restrictions from control structures to data declaration. It is a high-level declarative approach that abstracts away from the actual concurrency control mechanism(s) in use. Despite its advantages, the practical use of DCS is hindered by the fact that it may require many annotations and/or multiple implementations of the same method to cope with differently qualified parameters. To overcome these limitations, in this paper we present AtomiS, a new DCS approach that requires only qualifying types of parameters and return values in interface definitions, and of fields in class definitions. The latter may also be abstracted away in type parameters, rendering class implementations virtually annotation-free. From this high level specification, a static analysis infers the atomicity constraints that are local to each method, considering valid only the method variants that are consistent with the specification, and performs code generation for all valid variants of each method. The generated code is then the target for automatic injection of concurrency control primitives that are responsible for ensuring the absence of data-races, atomicity-violations and deadlocks. We provide a Java implementation and showcase the applicability of AtomiS in real-life code. For the benchmarks analysed, AtomiS requires fewer annotations than the original number of regions requiring locks, as well as fewer annotations than Atomic Sets (a reference DCS proposal). Hervé Paulino, Ana Gualdina Almeida Matos, J. G. Cederquist, Marco Giunti, António Ravara |
Proc. ACM Program. Lang. | 6 |
| 2022 | A Java typestate checker supporting inheritanceabstractDetecting programming errors in software is increasingly important, and building tools that help developers with this task is a crucial area of investigation on which the industry depends. Leveraging on the observation that in Object-Oriented Programming (OOP) it is natural to define stateful objects where the safe use of methods depends on their internal state, we present Java Typestate Checker (JATYC), a tool that verifies Java source code with respect to typestates. A typestate defines the object’s states, the methods that can be called in each state, and the states resulting from the calls. The tool statically verifies that when a Java program runs: sequences of method calls obey to object’s protocols; objects’ protocols are completed; null-pointer exceptions are not raised; subclasses’ instances respect the protocol of their superclasses. To the best of our knowledge, this is the first OOP tool that simultaneously tackles all these aspects. Lorenzo Bacchiani, Mario Bravetti, Marco Giunti, João Mota, António Ravara |
Sci. Comput. Program. | 5 |
| 2021 | Cameleer: A Deductive Verification Tool for OCamlabstractAbstract We present , an automated deductive verification tool for OCaml. We leverage on the recently proposed GOSPEL (Generic OCaml SPEcification Language) to attach rigorous, yet readable, behavioral specification to OCaml code. The formally-specified program is fed to our toolchain, which translates it into an equivalent one in WhyML, the programming and specification language of the Why3 verification framework. We report on successful case studies conducted in . Mário Pereira, António Ravara |
CAV (2) | 2 |
| 2021 | Java Typestate Checker
João Mota, Marco Giunti, António Ravara |
COORDINATION | 3 |
| 2020 | Behavioural Types for Memory and Method Safety in a Core Object-Oriented Language
Mario Bravetti, Adrian Francalanza, Iaroslav Golovanov, Hans Hüttel, Mathias Jakobsen, Mikkel Kettunen, António Ravara |
APLAS | 7 |
| 2016 | Preface to special issue: behavioural typesabstractThis is the first part of a two-part special issue on Behavioural Types, which has its origin in a workshop we organized in April 2011, in Lisbon. The aim of the workshop was to bring together the active and expanding community of researchers using type-theoretic approaches to describe and analyse behavioural aspects of software. A particular concern of this field is the identification and description of structured communication in concurrent and distributed systems, but behavioural typing also addresses issues of liveness, fairness, deadlock-freedom, security, observable equivalence and typestate. Simon J. Gay, António Ravara |
Math. Struct. Comput. Sci. | 2 |
| 2016 | Preface to special issue: behavioural types
Simon J. Gay, António Ravara |
Math. Struct. Comput. Sci. | 2 |
| 2016 | Foreword
Natallia Kokash, António Ravara |
Sci. Comput. Program. | 2 |
| 2015 | Revisiting Concurrent Separation Logic and Operational SemanticsabstractWe present a new soundness proof of Concurrent Separation Logic (CSL) based on a structural operational semantics (SOS). We build on two previous proofs and develop new auxiliary notions to achieve the goal. One uses a denotational semantics (based on traces). The other is based on SOS, but was obtained only for a fragment of the logic - the Disjoint CSL - which disallows modifying shared variables between concurrent threads. In this work, we lift such restriction, proving the soundness of full CSL with respect to a SOS. Thus contributing to the development of tools able of ensuring the correctness of realistic concurrent programs. Moreover, given that we used SOS, such tools can be well-integrated in programming environments and even incorporated in compilers. Pedro Soares, António Ravara, Simão Melo de Sousa |
PDP | 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. | 4 |
| 2014 | Foreword
Mohammad Reza Mousavi 0001, António Ravara |
Sci. Comput. Program. | 2 |
| 2012 | An Algebra of Behavioural Types
António Ravara, Pedro Resende, Vasco Thudichum Vasconcelos |
Inf. Comput. | 1 |
| 2011 | Encoding Cryptographic Primitives in a Calculus with Polyadic Synchronisation
Joana Martinho, António Ravara |
J. Autom. Reason. | 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 | 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 | 4 |
| 2006 | Typing the Behavior of Software Components using Session Types
Antonio Vallecillo, Vasco Thudichum Vasconcelos, António Ravara |
Fundam. Informaticae | 3 |
| 2006 | Type checking a multithreaded functional language with session types
Vasco Thudichum Vasconcelos, Simon J. Gay, António Ravara |
Theor. Comput. Sci. | 3 |
| 2004 | Session Types for Functional Multithreading
Vasco Thudichum Vasconcelos, António Ravara, Simon J. Gay |
CONCUR | 2 |
| 2000 | Typing Non-uniform Concurrent Objects
António Ravara, Vasco Thudichum Vasconcelos |
CONCUR | 1 |
| 1999 | Communication Errors in the pi-Calculus are Undecidable
Vasco Thudichum Vasconcelos, António Ravara |
Inf. Process. Lett. | 2 |
| 1997 | Behavioural Types for a Calculus of Concurrent Objects
António Ravara, Vasco Thudichum Vasconcelos |
Euro-Par | 1 |