Research
Themes
My research so far has revolved around two different themes (click the links for more details about them!):
You can also take a look at the conferences and workshops I attended to get an idea of what my fields of interest are, and the list of publication venues I did reviewing work for.
Artefacts
- CARMA: CARMA is a language for Aspect-Oriented Programming based mostly on the AspectJ language but which makes use of logic meta programming for the specification of crosscuts. More details are given on my AOP research page.
- SOUL: SOUL is a Prolog-like logic language implemented in Smalltalk, used mostly for extracting design information from Smalltalk programs. SOUL is a joint development of a number of current and past members of the Programming Technology Lab. I personally use(d) it for my Aspect-Oriented Programming research, enhanced its support for linguistic symbiosis and of course contributed the necessary bug fixes, UI enhancements etc. in the process.
- STaPLe: SOUL's implementation as an interpreter which runs on top of the Smalltalk Virtual Machine puts an inherent limit on its performance. I've been exploring an alternative implementation where a logic interpreter is used that runs next to the Smalltalk VM rather than on top of it. Instead of developing my own logic interpreter I made use of the existing SWI-Prolog implementation and exploited its and VisualWorks Smalltalk's native C interface to connect the two: the result is STaPLe (SmallTalk And ProLog Engine). As seen from Smalltalk, STaPLe provides an interface similar to that of SOUL and is mostly compatible with it as well. Most significantly: STaPLe preserves SOUL's linguistic symbiosis with Smalltalk: Smalltalk objects can be passed around and manipulated in logic queries, even though the queries are evaluated in SWI-Prolog which does not natively support objects. Unfortunately, the translations of objects and other values between the two virtual machines seems to put a serious bottleneck on STaPLe's performance, in queries involving the sending of lots of messages to objects SOUL actually outperforms the STaPLe/SWI-Prolog combination. Some further investigation is still needed to see whether this can be alleviated.
- Sic%: Sic% (pronounced 'sic-o-o') is a Smalltalk implementation of the Pic% language, a variant of the Pico language with some features to support prototype-based object-oriented programming. I originally implemented Sic% as a programming project back when I was a student. Though I've had little use for it research-wise since then I do a little maintenance on it once in a while and have used it in the course Principles of Object-Oriented Programming because it is a nice example of a somewhat larger Smalltalk application than the usual 3-class example, yet isn't too difficult to explain to students as they are already familiar with the C implementation of Pico (in fact I can proudly say it was already used for that purpose when I was still a student in the course myself!). Definitely the most interesting feature of Sic% is that it supports linguistic symbiosis with the underlying Smalltalk system, allowing Smalltalk objects to be accessed from within Sic% and vice-versa.
Theses
Licentiate's and master's theses I was an adviser for:
- Introducing Temporal Logic into Declarative Meta Programming
Verónica Uquillas Gómez, Master's Thesis, 2008
Promotor: Theo D'Hondt
Advisers: Kris Gybels and Andy Kellens
- An Implementation of Logic Pointcut Languages in Metaspin
Roberto Sanchez Sanchez, Master's Thesis, 2008
Promotor: Theo D'Hondt
Advisers: Kris Gybels and Bram Adams
- Software Composition through Linguistic Symbiosis
Lieven De Keyzer, Licentiate's Thesis, 2006
Promotor: Theo D'Hondt
Advisers: Wolfgang De Meuter and Kris Gybels
download - Context-Oriented Meta-Programming
Stijn Timbermont, Licentiate's Thesis, 2006
Promotor: Theo D'Hondt
Advisers: Pascal Costanza, Jessie Dedecker and Kris Gybels
download - A Temporal Logic Language for Context-Dependence in Crosscuts
Charlotte Herzeel, Licentiate's Thesis, 2006
Promotor: Theo D'Hondt
Advisers: Kris Gybels and Pascal Costanza
download - Experiences In Migrating An Industrial Application To Aspects
Abdelbaset Almasri and Iyad Albayouk, Master's Thesis, 2006
Promotor: Theo D'Hondt
Advisers: Andy Kellens and Kris Gybels
download - A Symbiosis between Delegation-based and Inheritance-based Object-oriented Programming Languages
Wouter Lievens, Licentiate's Thesis, 2005
Promotor: Theo D'Hondt
Advisers: Stijn Mostinckx, Tom Van Cutsem and Kris Gybels
download - A Symbiotic Approach to Aspect-Oriented Logic Meta Programming In a Prototype-based Language
Tom Leuse, Licentiate's Thesis, 2005
Promotor: Theo D'Hondt
Advisers: Tom Van Cutsem and Stijn Mostinckx
I was not officially an adviser for this thesis, but because I did have some close involvement in the project, I've also listed it here for future reference.
download - Incorporating Inductive Logic Programming in Aspect-Oriented Refactoring to Produce Pattern-Based Crosscuts For Use In A Logic Pointcut Language
Mathieu Braem, Licentiate's Thesis, 2005
Promotor: Theo D'Hondt
Advisers: Kris Gybels and Andy Kellens
download - Incorporating Dynamic Analysis and Approximate Reasoning in Declarative Meta-Programming to Support Software Re-engineering
Coen De Roover, Licentiate's Thesis, 2004
Promotor: Theo D'Hondt
Advisers: Kris Gybels
download - A Logic Meta-Programming Approach to Support Concern Interaction Detection
Andrea Veronica Vladu, Master's Thesis, 2004
Promotor: Theo D'Hondt
Advisers: Kris Gybels and Johan Brichau
download - Language Symbiosis through a joint Abstract Grammar
Adriaan Peeters, Licentiate's Thesis, 2003
Promotor: Theo D'Hondt
Advisers: Kris Gybels and Maja D'Hondt
download - Dynamic Aspect Composition using Logic Metaprogramming
Jessie Dedecker, Master's Thesis, 2002
Promotor: Theo D'Hondt
Co-promotor: Maximo Prieto
Advisers: Johan Brichau and Kris Gybels
download





