My research interests include the developing innovative solutions for automation of environmental and biological ecotoxicology procedures, development of object-oriented language mechanisms, Design by Contract (
DbC
), concurrent object-oriented programming, multiple
dispatch, and multimodal
interaction.I have been developing innovative solutions for automation of environment and biological ecotoxicology procedures, in particular a device, named DCounter, for automatic organism counting and characterization (applied to Daphnia magna sp. D. longispina, D. similis, zebrafish eggs, and others) [patent granted in: USA, Canada, and Europe]
For more than 20 years I've developed many programming tools (some of them public) both as a support for my (and my University) teaching efforts and for research purposes.
Research curriculum: ORCID, CiênciaVitae, my official page in IEETA
Active research projects:
- Automation of environment and biological ecotoxicology procedures.
- DCounter
- ACQUAvard: insitu nutrient real-time analysis using standard method [final patent pending, ongoing MSc thesis]
- External Dispatch in Java: Yet Another Object-Oriented Single and Multiple Dispatch Mechanism [ACM SPLASH - NOOL'00 2015 presentation, ongoing implementation, example code]
- [NEW] External Dispatch in Eiffel: Implementation of External Dispatch in Eiffel - compiler and examples.
- (
Java
) Design by Contract Concurrency Library - (
Java
)GBoard
: a Design by Contract Graphical Console Board - (
ANTLR4
): Compiler development with ANTLR4 - (
C
)c-dbc
: a library providing Design by Contract and a disciplined exception mechanism for the C language - (
Java
) DbC Data Structure Library - (
LaTeX
)grammar2diagram
: a tool to automatically generate a LaTeX/TikZ diagram from a EBNF grammar
Past research projects:
- Multimodal Personal Health Assistant [PhD thesis by Carlos Pereira, finished] supervised by António Teixeira and myself]
Frozen research projects:
- Contract-Java: A DbC language extension to Java [MSc thesis finished, ongoing implementation]
- Concurrent Contract-Java: MP-Eiffel's concurrency language ideas adapted to Contract-Java [MSc thesis finished, ongoing implementation]
- Real-Time Contract-Java: A new approach for real-time programming [ongoing conception, ongoing MSc thesis, implementation pending]
- Abstract interActor: An Infrastructure for Multimodal Interaction
[ongoing conception, MSc thesis proposal]
- Automatic Object Visualization [ongoing conception, MSc thesis proposal]
MP-Eiffel
: A concurrent extension toEiffel
(supporting both shared object and message passing thread communications paradigms) [my PhD thesis (in Portuguese!)]
Public Lectures, Workshops and Presentations:
MP-Eiffel
: a new approach for OO concurrent programming (CORDIE'06 presentation)- LaTeX Básico: Introdução e (um) pouco mais (2012 DETI presentation in
Portuguese)
Teaching courses (current and past):
- Compilers
- Formal
Languages and Automata
- Object-Oriented Concurrent Programming (theory and practice for a safe approach to concurrency in OOP)
- Multimodal
Interaction (new Human-Computer interaction
paradigms,techniques and practices)
- Operating
Systems (operating systems introduction)
- Computer
Science Laboratories
- Programming
I (elementary imperative programming introduction)
- Programming
II (modular programming, DbC introduction, recursion,
elementary data structures)
- Programming
III (object-oriented programming)
- Design by Contract Programming (advanced theory and practice of DbC and its support in multiple programming languages)
- ...