VLDB 2026 Research / reviewers in the wild / expert
João Costa Seco
dblp:08/5259
· DBLP profile ↗
26ranked-venue papers
9as first author
16since 2021 · last 2026
0000-0002-2840-3966ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 23 · 8 first-author · 14 since 2021Theory of computation · 2 · 2 since 2021Databases, data management, data science and information retrieval · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | A Security Framework and Hybrid Access Control Model for a DEMO-Based Low-Code Platform
Eduardo Silveiro, Vítor Freitas, David Aveiro, João Costa Seco |
ENASE (1) | 4 |
| 2025 | Going beyond templates: composition and evolution in nested OSTRICHabstractAbstract Low-code frameworks strive to simplify and speed up application development. An essential mechanism to achieve these goals is to have native support for the safe reuse and usage of parameterized coarse-grain components, providing developers with strong guardrails and a rich software-building experience. —a rich template language for the OutSystems platform—was designed to simplify the use and creation of such components. Thus, the application developer can quickly reuse and assemble sophisticated and thoroughly tested application blocks. However, without a built-in composition and evolution mechanism, templates are still hard to create and maintain. This sometimes requires the repetition of code across different templates and creates a conflict between the customizations of the instantiated application models, and the update and reapplication of a template definition. This paper presents a principled mechanism for using abstraction in the creation of templates and simultaneously supporting the evolution of templates in applications after use. First, we introduce a template composition mechanism, its typing discipline, and its instantiation algorithm for model-driven low-code development environments. We start by extending to support nested templates and allow the instantiation (hatching) of templates in the definition of other templates. Nesting promotes a significant increase in code reuse potential, leading to a safer evolution of applications. We then introduce the support for customizable template instances, which allows one to evolve templates’ code and then update a template instance without losing customizations performed in the generated code. The present definition seamlessly extends the existing OutSystems metamodel with template constructs expressed by model annotations that maintain backward compatibility with the existing language toolchain. We present the metamodel, a set of annotations to support the extensions, and the corresponding validation and instantiation algorithms. In particular, we introduce a type-based validation procedure for abstractions that ensures that using templates always produces valid models. This work also extends prior developments on Nested OSTRICH with the support for safe customizations of instantiated code. We validate Nested OSTRICH using the benchmark by identifying the degree of reusability that can be reached in the existing sample of real templates and template uses. Our prototype is an extension of the OutSystems IDE that allows the annotation of models and their use to produce new models. We also analyze which existing OutSystems sample screen templates can be improved by using and sharing nested templates . João Costa Seco, Hugo Lourenço, Joana Parreira, Carla Ferreira 0001 |
Softw. Syst. Model. | 1 |
| 2024 | A Language-Based Version Control System for PythonabstractDespite being the most popular programming language, Python has not yet received enough attention from the community. To the best of our knowledge, there is no general static analysis framework proposed to facilitate the implementation of dedicated Python static analyzers. To fill this gap, we design and implement such a framework (named Scalpel) and make it publicly available as an open-source project. The Scalpel framework has already integrated a number of fundamental static analysis functions (e.g., call graph constructions, control-flow graph constructions, alias analysis, etc.) that are ready to be reused by developers to implement client applications focusing on statically resolving dedicated Python problems such as detecting bugs or fixing vulnerabilities. João Costa Seco |
ECOOP | 2 |
| 2024 | The Meerkat Vision: Language Support for Live, Scalable, Reactive Web AppsabstractThe reactive programming paradigm has become ubiquitous for modern web and mobile app development. But despite its many benefits, today reactive programming is limited to data updates within the client, leaving to the programmer the tedious and error-prone tasks of managing updates to code and synchronizing data updates between reactive clients and a server database. In this paper, we lay out the vision for Meerkat, a tierless, reactive, and live programming language designed to scale to the needs of modern applications. We introduce the language through a chat application which runs on our prototype implementation. We then describe approaches for modularizing and scaling Meerkat programs, customizing tradeoffs between properties such as consistency and availability, supporting local-first software and rich data models, and scaling live updates to full DevOps in software organizations. The Meerkat research program will enable a new era of developing apps that are more responsive, reliable, and evolvable than ever before. João Costa Seco, Jonathan Aldrich |
Onward! | 1 |
| 2024 | Monitoring of spatio-temporal properties with nonlinear SAT solversabstractAbstract The automotive industry is increasingly dependent on computing systems with different critical requirements. The verification and validation methods for these systems are now leveraging complex AI methods, for which the decision algorithms introduce non-determinism, especially in autonomous driving. This paper presents a runtime verification technique agnostic to the target system, which focuses on monitoring spatio-temporal properties that abstract the evolution of objects’ behavior in their spatial and temporal flow. First, a formalization of three known traffic rules (from the Vienna convention on road traffic) is presented, where a spatio-temporal logic fragment is used. Then, these logical expressions are translated to a monitoring model written in first-order logic, where they are processed by a non-linear satisfiability solver. Finally, the translation allows the solver to check the validity of the encoded properties according to an instance of a specific traffic scenario (a trace). The results obtained from our tool, which automatically generates a monitor from a formula, show that our approach is feasible for online monitoring in a real-world environment. André de Matos Pedro, Tomás Silva, Tiago F. Sequeira, João Lourenço, João Costa Seco, Carla Ferreira 0001 |
Int. J. Softw. Tools Technol. Transf. | 5 |
| 2023 | Hoogle⋆: Constants and λ-abstractions in Petri-net-based Synthesis using Symbolic Execution
Henrique Botelho Guerra, João F. Ferreira 0001, João Costa Seco |
ECOOP | 3 |
| 2023 | Data-Dependent Confidentiality in DCR GraphsabstractWe present DCRSec, a confidentially aware declarative process language with data that employs data-dependent security levels and an information flow monitor that prevents the violation of information flow policies. Data-dependent security levels have been used to shape precise information flow policies and properly identify security compartments. We use an illustrative example to show that it also models process instances in a flexible but precise way. Eduardo Geraldo, João Costa Seco, Thomas T. Hildebrandt |
PPDP | 2 |
| 2023 | OSTRICH: a rich template language for low-code development (extended version)
Hugo Lourenço, Carla Ferreira 0001, João Costa Seco, Joana Parreira |
Softw. Syst. Model. | 3 |
| 2022 | Monitoring of Spatio-Temporal Properties with Nonlinear SAT Solvers
André de Matos Pedro, Tomás Silva, Tiago F. Sequeira, João Lourenço, João Costa Seco, Carla Ferreira 0001 |
FMICS | 5 |
| 2022 | Nested OSTRICH: hatching compositions of low-code templatesabstractLow-code frameworks strive to simplify and speed-up application development. Native support for the reuse and composition of parameterised coarse-grain components (templates) is essential to achieve these goals. OSTRICH --- a rich template language for the OutSystems platform --- was designed to simplify the use and creation of such templates. However, without a built-in composition mechanism, OSTRICH templates are hard to create and maintain. João Costa Seco, Hugo Lourenço, Joana Parreira, Carla Ferreira 0001 |
MoDELS | 1 |
| 2022 | Derivations with Holes for Concept-Based Program SynthesisabstractProgram synthesis has the potential to democratize programming by enabling non-programmers to write software. But conventional approaches to synthesis may fail if given insufficient information - a common occurrence when asking non-experts to describe the application they want to write. This paper introduces a new concept-based program synthesis mechanism that can cope with incomplete knowledge, targeting low-code model-driven languages. Concepts are modelled in an ontology that represents user intent including basic actions (e.g. show, filter, and create) along with their associated data as well as basic user interface structures like screens or pages. Our synthesis framework consists of a system of derivation rules that supports deferred premises, which need not be immediately satisfied during synthesis. A derivation in which some deferred premises are missing will thus contain holes; semantically, it represents a proof that is conditional on the developer filling the holes with additional facts from the ontology. We translate derivations with holes to standard first-order logic derivations, where the holes are transformed into assumptions. We illustrate the feasibility and effectiveness of our framework with a proof-of-concept implementation and a set of illustrative examples. João Costa Seco, Jonathan Aldrich, Bernardo Toninho, Carla Ferreira 0001 |
Onward! | 1 |
| 2021 | ReGraDa: Reactive Graph Data
Leandro Galrinho, João Costa Seco, Søren Debois, Thomas T. Hildebrandt, Håkon Normann, Tijs Slaats |
COORDINATION | 2 |
| 2021 | An Ontology based Task Oriented Dialogue
João Quirino Silva, Dora Melo, Irene Pimenta Rodrigues, João Costa Seco, Carla Ferreira 0001, Joana Parreira |
KEOD | 4 |
| 2021 | OSTRICH - A Type-Safe Template Language for Low-Code DevelopmentabstractLow-code platforms aim at allowing non-experts to develop complex systems and knowledgeable developers to improve their productivity in orders of magnitude. The greater gain comes from (re)using components developed by experts capturing common patterns across all layers of the application, from the user interface to the data layer and integration with external systems. Often, cloning sample code fragments is the only alternative in such scenarios, requiring extensive adaptation to reach the intended use. Such customization activities require deep knowledge outside of the comfort zone of low-code. To effectively speed up the reuse, composition, and adaptation of pre-defined components, low-code platforms need to provide safe and easy-to-use language mechanisms. This paper introduces OSTRICH, a strongly-typed rich templating language for a low-code platform (OutSystems) that builds on metamodel annotations and allows the correct instantiation of templates. We conservatively extend the existing metamodel and ensure that the resulting code is always well-formed. The results we present include a novel type safety verification of template definitions, and template arguments, providing model consistency across application layers. We implemented this template language in a prototype of the OutSystems platform and ported nine of the top ten most used sample code fragments, thus improving the reuse of professionally designed components. Hugo Lourenço, Carla Ferreira 0001, João Costa Seco |
MoDELS | 3 |
| 2021 | Deep Semantic Versioning for Evolution and VariabilityabstractThe development cycles in the software industry are shrinking due to the increasing demands for shorter time to market and the incremental development style of agile methodologies. Pragmatic software engineering approaches rely on careful product management, a strong versioning discipline, and a feature development strategy to avoid that newly merged code disrupts existing systems. Versioning is critical when managing software product lines and ensuring that all their variants are kept in operation amidst all the performed changes. Such methodologies enforce functional correctness through strong efforts in regression testing, with the associated exponential growth in complexity. João Costa Seco |
PPDP | 2 |
| 2021 | Hybrid Information Flow Control for Low-Level Code
Eduardo Geraldo, José Fragoso Santos, João Costa Seco |
SEFM | 3 |
| 2019 | Software Evolution with a Typeful Version Control System
João Costa Seco |
SEFM | 2 |
| 2018 | RESEDA: Declaring Live Event-Driven Computations as REactive SEmi-Structured DAtaabstractEnterprise computing applications generally consists of several inter-related business processes linked together via shared data objects and events. We address the open challenge of providing formal modelling and implementation techniques for such enterprise computing applications, introducing the declarative, data-centric and event-driven process language RESEDA for REactive SEmi-structured DAta. The language is inspired by the computational model of spreadsheets and recent advances in declarative business process modelling notations. The key idea is to associate either input events or reactive computation events to the individual elements of semi-structured data and declare reactive behaviour as explicit reaction rules and constraints between these events. Moreover, RESEDA comes with a formal operational semantics given as rewrite rules supporting both formal analysis and persistent execution of the application as sequences of rewrites of the data. The data, along with the set of constraints, thereby at the same time constitutes the specification of the data, its behaviour and the run-time execution component. This key contribution of the paper is to introduce the RESEDA language, its formal execution semantics and give a sufficient condition for liveness of programs. We also establish Turing-equivalence of the language independently of the choice of underlying data expressions and exemplify the use of RESEDA by a running example of an online store. A prototype implementation of RESEDA and the examples of the paper are available on-line at http://dcr.tools/reseda. João Costa Seco, Søren Debois, Thomas T. Hildebrandt, Tijs Slaats |
EDOC | 1 |
| 2017 | Capability-based localization of distributed and heterogeneous queriesabstractAbstract One key aspect of data-centric applications is the manipulation of data stored in persistent repositories, which is moving fast from querying a centralized relational database to the ad-hoc combination of constellations of data sources. The extension of general purpose languages with query operations is increasingly popular, as a tool to improve reasoning and optimizing capabilities of interpreters and compilers. However, not much is being done to integrate and orchestrate different and separate sources of data. We present a data manipulation language that abstracts the nature and location of data-sources. We define its semantics and a type directed query localization mechanism to be used in development tools for heterogeneous environments to efficiently compile them into native queries. We introduce a localization procedure based on rewriting of query expressions that is confluent, terminating and provides the maximum mapping between site capabilities and the structure of the query. We provide formal type safety results that support the sound distribution of query fragments over remote sites. Our approach is also suitable for an interactive query construction environment by rich user interfaces that provide immediate feedback on data manipulation operations. This approach is currently the base for the data layer of a development platform for mobile and web applications. João Costa Seco, Hugo Lourenço |
J. Funct. Program. | 1 |
| 2013 | The type discipline of behavioral separationabstractWe introduce the concept of behavioral separation as a general principle for disciplining interference in higher-order imperative concurrent programs, and present a type-based approach that systematically develops the concept in the context of an ML-like language extended with concurrency and synchronization primitives. Behavioral separation builds on notions originally introduced for behavioral type systems and separation logics, but shifts the focus from the separation of static program state properties towards the separation of dynamic usage behaviors of runtime values. Behavioral separation types specify how values may be safely used by client code, and can enforce fine-grained interference control disciplines while preserving compositionality, information hiding, and flexibility. We illustrate how our type system, even if based on a small set of general primitives, is already able to tackle fairly challenging program idioms, involving aliasing at various types, concurrency with first-class threads, manipulation of linked data structures, behavioral borrowing, and invariant-based separation. Luís Caires, João Costa Seco |
POPL | 2 |
| 2012 | Verification of Snapshot Isolation in Transactional Memory Java Programs
Ricardo J. Dias, Dino Distefano, João Costa Seco, João Lourenço |
ECOOP | 3 |
| 2011 | Type-Based Access Control in Data-Centric Systems
Luís Caires, Jorge A. Pérez 0001, João Costa Seco, Hugo Torres Vieira, Lúcio Ferrão |
ESOP | 3 |
| 2008 | The Conversation Calculus: A Model of Service-Oriented Computation
Hugo Torres Vieira, Luís Caires, João Costa Seco |
ESOP | 3 |
| 2006 | Types for Dynamic Reconfiguration
João Costa Seco, Luís Caires |
ESOP | 1 |
| 2005 | Subtyping First-Class Polymorphic Components
João Costa Seco, Luís Caires |
ESOP | 1 |
| 2000 | A Basic Model of Typed Components
João Costa Seco, Luís Caires |
ECOOP | 1 |