Table of Contents
|@johanfabry on Twitter||dcc.uchile.cl@jfabry (if you swap sides)|
|Assistant Professor||Blanco Encalada 2120, of.311|
|PLEIAD Lab||Santiago, Chile|
|Computer Science Department (DCC)||phone: +56 2 978 49 75|
|University of Chile||fax: +56 2 689 55 31|
Short Research Description
I work in the field of programming languages and software engineering. More specifically in the area of advanced forms of modularization (usually aspects, but I also consider metaprogramming, generative programming, …). The overall focus of my work is guided by the following observation: In my experience, we as programming language researchers easily fall in the pit of making ever more powerful languages, with cool, powerful and complex features. This however comes at the cost that the programmer needs to be able to understand and apply these features correctly.
To restate this as the problem on which I focus: How can we, as programming language researchers, help the programmer to use these cool language features we create?
My first research work was applied in the domain of distributed systems, trying to achieve a better modularization of cross-cutting concerns. I focused not on middleware but either on client applications that use middleware, or settings where the services are not provided by the middleware. For the former, the example case is the use of advanced transaction management and aspects. For the latter, an example I investigated is support for network disconnection and disconnection in an ambient intelligence setting, using generative programming. The ultimate goals were domain-specific languages or language extensions that provided a relatively easy way for the programmer to specify the above.
Secondly, I worked on the design and implementation of Domain-Specific Aspect Languages (DSALs). As the first incarnation of AOP, they provided a straightforward way to deal with the complexity of cross-cutting concerns and hence such languages have always interested me. The goals here were to help the language/weaver developer in creating such languages. This included finding guidelines or methodologies for DSAL design and facilitating reuse of parts of DSAL specifications, amongst others. By using domain abstracions I believe that DSALs are an important solution strategy to tackle the problem of aspect composition and interaction, and can contribute positively to the discussion on the ever-controversial concept of obliviousness in AOSD.
Thirdly, I provided a visualisation for AOP programs: AspectMaps, which provides valuable information to the programmer about the cross-cutting nature of the AOP code.
Currently, I am starting to focus on the step from design to implementation: when implementing an application and using aspects, how can the design document give maximum guidance to the developer? This such that the programmer is not faced with significant ambiguities on how to implement the aspectual nature of the software, and that the design document uses as much the specific features of the aspect language as possible. As a result the programmer should not need to improvise, and external traceability can be maintained.
Moreover I am part of the effort of the DCC to set up a robotics lab, and am focusing on helping the robot developer to specify the overall behavior of the robot. This is done through a programming language that integrates with ROS to use existing sensor and actuator software, and provides the right abstractions for them, such that behavior can more easily be specified.
Teaching, Student resources
I teach the following courses
- Not since 2011: Arquitectura de Computadores (CC4301) ex. Introducción al Hardware (CC41C)
Here are some resources of use for students, useful even at undergraduate level!
I am currently involved in the following projects:
- FONDECYT Project #1110051 - Modular and Adaptable Software without Losing Control. Co-investigator. (2011-2014)
- FONDECYT Project #1130253 - Extending AOM with Advanced AOP and D&I Support. Investigator. (2013 - 2015)
- PLOMO: Customizable Tools and Infrastructure for Software Development and Maintenance, INRIA Associated Team with RMOD team of INRIA Lille. (2011-2013)
Free ACM downloads
Thanks to the ACM Author-Izer service (an ugly name for sure) you can download the following articles for free from the ACM Digital Library. If the text between each article sais something like unauthorized link specified, go here http://pleiad.cl/people/jfabry and try again from there.
AOSD Companion '12 Proceedings of the 11th annual international conference on Aspect-oriented Software Development Companion, 2012
IWST '11 Proceedings of the International Workshop on Smalltalk Technologies, 2011