João Mota

dblp:41/138 · DBLP profile ↗
← Back
5ranked-venue papers
3as first author
4since 2021 · last 2024
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 3 · 1 first-author · 3 since 2021Human-computer interaction and ubiquitous computing · 1 · 1 first-author
YearPublicationVenuePosition
2024 Behavioural Up/down Casting For Statically Typed Languages
Lorenzo Bacchiani, Mario Bravetti, Marco Giunti, João Mota, António Ravara
ECOOP4
2023 On Using VeriFast, VerCors, Plural, and KeY to Check Object Usage (Experience Paper)
abstract
Typestates 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
ECOOP1
2022 A Java typestate checker supporting inheritance
abstract
Detecting 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.4
2021 Java Typestate Checker
João Mota, Marco Giunti, António Ravara
COORDINATION1
2008 Agrafo: a visual interface for grouping and browsing digital photos
abstract
With the growing popularity of digital cameras, the organization, browsing, management and grouping of photos become a problem of every photograph (professional or amateur), because their collections easily achieve the order of thousands. Here, we present a system to automate these processes, which relies on photo information, such as, semantic features (extracted from content), meta-information and low level.
João Mota, Manuel J. Fonseca, Daniel Gonçalves 0002, Joaquim Jorge 0001
AVI1