Henrique Rebelo's Home Page








Henrique Rebęlo
Centro de Informática
Universidade Federal de Pernambuco

Ph.D. in Computer Science, CIn-UFPE, Brazil (2014)
    In cooperation with University of Central Florida, USA

MSR Intern, Microsoft Research, USA (2010)

+55 81 2126 8430, ext. 4344 [voice]
+55 81 2126 8438 [FAX]

Office: A007


My research is directed at improving the productivity of programmers, allowing them to write better programs that, as much as possible, look like their design/constraints. I believe that programs that clearly express the interfaces they implement are more fun to develop and maintain. Also, questions such as what a part of the program does? (without looking at its implementation) and what other parts of the program depend on that behavior become easier to answer.

In pursuit of this goal, my group develops tools and design mechanisms to aid with the productivity of large software systems and performs empirical studies to better understand how programmers's productivity is achieved and how it can be improved.

I have worked extensively in the area of modularity in design by contract (DbC) languages and, currently, improving the area of aspect-oriented programming (AOP). In this context, I'm leading the development of aspect-oriented programming reloaded and its implementation by the AspectJML programming language. Hence, some of my current research in the Software Productivity Group is AOP/AspectJML related.

I also had the good fortune to work as a research intern (supervised by Shuvendu Lahiri) at the Microsoft Research, Redmond in the Research in Software Engineering (RiSE) group that developed SymDiff, a language-agnostic tool for equivalence checking to reason about imperative program changes. In a nutshell, Symdiff can be summarized as Windiff for behaviors. It builds up on recent advances on program equivalence checking using automated SMT solvers. However, it extends beyond program equivalence and deals with questions such as: (1) can one infer the conditions under which two programs are equivalent? (2) how do the changes affect the public API? Some of my current research is program equivalence checking related.

ESEC/FSE'18 - Publications Chair, The 26th ACM Joint European Software Engineering Conference
and Symposium on the Foundations of Software Engineering

SEKE'18 - PC Member, 30th International Conference on Software Engineering and
Knowledge Engineering

SBLP'17 - PC Member, 21st Brazilian Symposium on Programming Languages
SBCARS'17 - PC Member, 11th Brazilian Symposium on Software Components, Architectures, and Reuse
Modularity'16 - Student Events (SRC) Co-Chair, 15th ACM International Conference on Modularity
FOAL'16 - PC Chair and Organizer, 15th Workshop on Foundations of Aspect-Oriented Languages
Modularity'15 - Publicity Chair and PC Member, 14th ACM International Conference on Modularity
Modularity'15 - Position Papers PC Member, 14th ACM International Conference on Modularity
FOAL'15 - Organizer and PC Member, 14th Workshop on Foundations of Aspect-Oriented Languages
SEKE'15 - PC Member, 27th International Conference on Software Engineering and
Knowledge Engineering

WMod'14 - Co-Chair and Organizer, 11th Workshop on Software Modularity
LA-WASP'13 - PC Member and Organizer, 7th Latin American Workshop on Aspect-Oriented Software Development

Centro de Informática UFPE
Cidade Universitária - CEP 50740-540
Recife/PE - Brazil