2025

ROSpec: A Domain-Specific Language for ROS-based Robot Software

Paulo Canelas, Bradley Schmerl, Alcides Fonseca, Christopher S. Timperley

Proceedings of the ACM on Programming Languages (PACMPL), OOPSLA. 2025.  Just Accepted!   🎉

Component-based robot software frameworks like ROS allows quick system composition through reusable components. However, these components often lack proper configuration documentation. When documentation exists, its natural language specifications are unenforced, leading to misconfigurations that cause dangerous robot behaviors. We introduce rospec, a ROS domain-specific language for specifying and verifying component configurations and integration. Informed by prior work on misconfigurations, rospec verifies component configurations, ensures correct component integration through communication properties, and validates configurations against deployment constraints. We demonstrate rospec's effectiveness by modeling a 19-component warehouse robot and implementing partial specifications for components from 182 misconfiguration questions extracted from robotics Q&A platforms.

ROSpec: A Domain-Specific Language for ROS-based Robot Software
ROSpec: A Domain-Specific Language for ROS-based Robot Software

Paulo Canelas, Bradley Schmerl, Alcides Fonseca, Christopher S. Timperley

Proceedings of the ACM on Programming Languages (PACMPL), OOPSLA. 2025.  Just Accepted!   🎉

Component-based robot software frameworks like ROS allows quick system composition through reusable components. However, these components often lack proper configuration documentation. When documentation exists, its natural language specifications are unenforced, leading to misconfigurations that cause dangerous robot behaviors. We introduce rospec, a ROS domain-specific language for specifying and verifying component configurations and integration. Informed by prior work on misconfigurations, rospec verifies component configurations, ensures correct component integration through communication properties, and validates configurations against deployment constraints. We demonstrate rospec's effectiveness by modeling a 19-component warehouse robot and implementing partial specifications for components from 182 misconfiguration questions extracted from robotics Q&A platforms.

The Usability Argument for ROS-based Robot Architectural Description Languages

Paulo Canelas, Bradley Schmerl, Alcides Fonseca, Christopher S. Timperley

PLATEAU - The Annual Workshop on the Intersection of HCI and PL. 2025.  

The Usability Argument for ROS-based Robot Architectural Description Languages
The Usability Argument for ROS-based Robot Architectural Description Languages

Paulo Canelas, Bradley Schmerl, Alcides Fonseca, Christopher S. Timperley

PLATEAU - The Annual Workshop on the Intersection of HCI and PL. 2025.  

Are Large Language Models Memorizing Bug Benchmarks?

Daniel Ramos, Claudia Mamede*, Kush Jain*, Paulo Canelas*, Catarina Gamboa*, Claire Le Goues (* equal contribution)

Large Language Models for Code (LLM4Code) Workshop. 2025.  🏆 Best Paper Award.

Are Large Language Models Memorizing Bug Benchmarks?
Are Large Language Models Memorizing Bug Benchmarks?

Daniel Ramos, Claudia Mamede*, Kush Jain*, Paulo Canelas*, Catarina Gamboa*, Claire Le Goues (* equal contribution)

Large Language Models for Code (LLM4Code) Workshop. 2025.  🏆 Best Paper Award.

2024

Understanding Misconfigurations in ROS: An Empirical Study and Current Approaches

Paulo Canelas, Bradley Schmerl, Alcides Fonseca, Christopher S. Timperley

International Symposium on Software Testing and Analysis (ISSTA). 2024.  

The Robot Operating System (ROS) is a popular framework for building robot software from reusable components, but configuring and connecting these components correctly is challenging. Developers often face issues due to unstated assumptions, leading to misconfigurations that can result in unpredictable and dangerous behavior. To improve the reliability of ROS projects, it is critical to identify the broader set of misconfigurations. To that end, we perform a study on ROS Answers, a Q&A platform, to categorize these misconfigurations and evaluate how well existing detection techniques cover them. We identified 12 high-level categories and 50 sub-categories, with 27 not covered by current techniques.

Understanding Misconfigurations in ROS: An Empirical Study and Current Approaches
Understanding Misconfigurations in ROS: An Empirical Study and Current Approaches

Paulo Canelas, Bradley Schmerl, Alcides Fonseca, Christopher S. Timperley

International Symposium on Software Testing and Analysis (ISSTA). 2024.  

The Robot Operating System (ROS) is a popular framework for building robot software from reusable components, but configuring and connecting these components correctly is challenging. Developers often face issues due to unstated assumptions, leading to misconfigurations that can result in unpredictable and dangerous behavior. To improve the reliability of ROS projects, it is critical to identify the broader set of misconfigurations. To that end, we perform a study on ROS Answers, a Q&A platform, to categorize these misconfigurations and evaluate how well existing detection techniques cover them. We identified 12 high-level categories and 50 sub-categories, with 27 not covered by current techniques.

Is it a Bug? Understanding Physical Unit Mismatches in Robot Software

Paulo Canelas, Trenton Tabor, John-Paul Ore, Alcides Fonseca, Claire Le Goues, Christopher S. Timperley

International Conference in Robotics and Automation (ICRA). 2024.  

Is it a Bug? Understanding Physical Unit Mismatches in Robot Software
Is it a Bug? Understanding Physical Unit Mismatches in Robot Software

Paulo Canelas, Trenton Tabor, John-Paul Ore, Alcides Fonseca, Claire Le Goues, Christopher S. Timperley

International Conference in Robotics and Automation (ICRA). 2024.  

2023

Usability-Oriented Design of Liquid Types for Java

Catarina Gamboa, Paulo Canelas, Alcides Fonseca, Christopher S. Timperley

International Conference in Software Engineering (ICSE). 2023.  

Usability-Oriented Design of Liquid Types for Java
Usability-Oriented Design of Liquid Types for Java

Catarina Gamboa, Paulo Canelas, Alcides Fonseca, Christopher S. Timperley

International Conference in Software Engineering (ICSE). 2023.  

2022

Data types as a more ergonomic frontend for Grammar-Guided Genetic Programming

Guilherme Espada, Leon Ingelse, Paulo Canelas, Pedro Barbosa, Alcides Fonseca

International Conference on Generative Programming: Concepts and Experiences. 2022.  

Data types as a more ergonomic frontend for Grammar-Guided Genetic Programming
Data types as a more ergonomic frontend for Grammar-Guided Genetic Programming

Guilherme Espada, Leon Ingelse, Paulo Canelas, Pedro Barbosa, Alcides Fonseca

International Conference on Generative Programming: Concepts and Experiences. 2022.  

An Experience Report on Challenges in Learning the Robot Operating System

Paulo Canelas, Miguel Tavares, Ricardo Cordeiro, Alcides Fonseca, Christopher S. Timperley

International Workshop on Robotics Software Engineering (RoSE) at the International Conference in Software Engineering (ICSE). 2022.  

An Experience Report on Challenges in Learning the Robot Operating System
An Experience Report on Challenges in Learning the Robot Operating System

Paulo Canelas, Miguel Tavares, Ricardo Cordeiro, Alcides Fonseca, Christopher S. Timperley

International Workshop on Robotics Software Engineering (RoSE) at the International Conference in Software Engineering (ICSE). 2022.  

Grammatical Evolution Mapping for Semantically-Constrained Genetic Programming

Alcides Fonseca, Paulo Santos, Guilherme Espada, Sara Silva

Genetic Programming Theory and Practice XVIII. 2022.  

Grammatical Evolution Mapping for Semantically-Constrained Genetic Programming
Grammatical Evolution Mapping for Semantically-Constrained Genetic Programming

Alcides Fonseca, Paulo Santos, Guilherme Espada, Sara Silva

Genetic Programming Theory and Practice XVIII. 2022.  

2021

Augmenting Search-based Techniques with Static Synthesis-based Input Generation

Paulo Santos, José Campos, Christopher S. Timperley, Alcides Fonseca

International Workshop on Search-Based Software Testing (SBST) at the International Conference in Software Engineering (ICSE). 2021.  

Augmenting Search-based Techniques with Static Synthesis-based Input Generation
Augmenting Search-based Techniques with Static Synthesis-based Input Generation

Paulo Santos, José Campos, Christopher S. Timperley, Alcides Fonseca

International Workshop on Search-Based Software Testing (SBST) at the International Conference in Software Engineering (ICSE). 2021.  

2020

The Usability Argument for Refinement Typed Genetic Programming

Alcides Fonseca, Paulo Santos, Sara Silva

International Conference on Parallel Problem Solving From Nature. 2020.  

The Usability Argument for Refinement Typed Genetic Programming
The Usability Argument for Refinement Typed Genetic Programming

Alcides Fonseca, Paulo Santos, Sara Silva

International Conference on Parallel Problem Solving From Nature. 2020.  

Towards the Conceptualization of Refinement Typed Genetic Programming

Paulo Santos

Masters Thesis. Faculty of Sciences of University of Lisbon. 2020.  

Advised by Alcides Fonseca

Towards the Conceptualization of Refinement Typed Genetic Programming
Towards the Conceptualization of Refinement Typed Genetic Programming

Paulo Santos

Masters Thesis. Faculty of Sciences of University of Lisbon. 2020.  

Advised by Alcides Fonseca

Refined Typed Genetic Programming as a user interface for Genetic Programming

Paulo Santos, Alcides Fonseca, Sara Silva

Short Paper. Genetic and Evolutionary Computation Conference Companion (GECCO). 2020.  

Refined Typed Genetic Programming as a user interface for Genetic Programming
Refined Typed Genetic Programming as a user interface for Genetic Programming

Paulo Santos, Alcides Fonseca, Sara Silva

Short Paper. Genetic and Evolutionary Computation Conference Companion (GECCO). 2020.