I am currently a Ph.D. student in Computer Science at NOVA School of Science and Technology, and I am integrated in the NOVA LINCS research lab. My research topic consists of developing tools to statically verify concurrent programs which make use of shared mutable state.
I love to create usable tools to assist and help developers in their various tasks. In particular, I enjoy creating libraries and frameworks for Web and NodeJS development in TypeScript.
💻 Programming Skills
- Proficient in JavaScript/TypeScript
- Moderate experience with Kotlin and Java
- Using Git/GitHub for version control regularly
- Some experience in using the Coq proof assistant
🎓 Education
- Ph.D., Computer Science, (2021 - )
- M.Sc., Computer Science, (2018 - 2021)
- B.Sc., Computer Science, (2015 - 2018)
📂 Material
🎤 Workshops and Conferences
- Paper "Behavioural Up/down Casting For Statically Typed Languages" presented at ECOOP 2024
- Poster "Coping with shared mutable state in a typestate-oriented concurrent language" presented at PLDI 2024 Student Research Competition
- Tutorial "JaTyC - Java Typestate Checker" presented at BehAPI Tutorials (Satellite Workshop of DisCoTec 2023)
- Paper "Java Typestate Checker" presented at COORDINATION 2021 (DisCoTec 2021)
- Paper "Typestates to Automata and back: a tool" presented at ICE 2020 (Satellite workshop of DisCoTec 2020)
📜 Publications
- Lorenzo Bacchiani, Mario Bravetti, Marco Giunti, João Mota, and António Ravara (2024). Behavioural Up/down Casting For Statically Typed Languages. In 38th European Conference on Object-Oriented Programming (ECOOP 2024). Leibniz International Proceedings in Informatics (LIPIcs), Volume 313, pp. 5:1-5:28, Schloss Dagstuhl – Leibniz-Zentrum für Informatik. https://doi.org/10.4230/LIPIcs.ECOOP.2024.5
- João Mota, Marco Giunti, and António Ravara (2023). On Using VeriFast, VerCors, Plural, and KeY to Check Object Usage (Experience Paper). In 37th European Conference on Object-Oriented Programming (ECOOP 2023). Leibniz International Proceedings in Informatics (LIPIcs), Volume 263, pp. 40:1-40:29, Schloss Dagstuhl – Leibniz-Zentrum für Informatik. https://doi.org/10.4230/LIPIcs.ECOOP.2023.40
- Lorenzo Bacchiani, Mario Bravetti, Marco Giunti, João Mota, António Ravara (2022). A Java typestate checker supporting inheritance. In: Science of Computer Programming, Volume 221, 102844, ISSN 0167-6423. https://doi.org/10.1016/j.scico.2022.102844
- Mota, J., Giunti, M., Ravara, A. (2021). Java Typestate Checker. In: Damiani, F., Dardha, O. (eds) Coordination Models and Languages. COORDINATION 2021. Lecture Notes in Computer Science, vol 12717. Springer, Cham. https://doi.org/10.1007/978-3-030-78142-2_8
- Trindade, A., Mota, J., & Ravara, A. (2020). Typestates to Automata and back: a tool. In Proceedings ICE 2020. https://doi.org/10.4204/EPTCS.324.4