Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Kris Gybels is active.

Publication


Featured researches published by Kris Gybels.


aspect-oriented software development | 2003

Arranging language features for more robust pattern-based crosscuts

Kris Gybels; Johan Brichau

A crosscut language is used to describe at which points an aspect crosscuts a program. An important issue is how these points can be captured using the crosscut language without introducing tight coupling between the aspect and the program. Such tight coupling harms the evolvability of the program and the reusability of the aspect. Current pattern-based capturing already offers a certain decoupling between aspects and the program but it may still suffer from what we call the arranged pattern problem. In this paper, we discuss this problem and present a logic-based crosscut language from which we distill what language features are beneficial to avoid this problem.


Lecture Notes in Computer Science | 2006

Context-aware aspects

Éric Tanter; Kris Gybels; Marcus Denker; Alexandre Bergel

Context-aware applications behave differently depending on the context in which they are running. Since context-specific behavior tends to crosscut base programs, it can advantageously be implemented as aspects. This leads to the notion of context-aware aspects, i.e., aspects whose behavior depends on context. This paper analyzes the issue of appropriate support from the aspect language to both restrict the scope of aspects according to the context and allow aspect definitions to access information associated to the context. We propose an open framework for context-aware aspects that allows for the definition of first-class contexts and supports the definition of context awareness constructs for aspects, including the ability to refer to past contexts, and to provide domain- and application-specific constructs.


acm symposium on applied computing | 2004

Seamless integration of rule-based knowledge and object-oriented functionality with linguistic symbiosis

Maja D'Hondt; Kris Gybels; Viviane Jonckers

Software applications often contain implicit knowledge in addition to functionality which is inherently object-oriented. Many approaches and systems exist that focus on separating rule-based knowledge from object-oriented functionality and representing it explicitly in a logic reasoning system. Support for seamless integration of this knowledge with the object-oriented functionality improves software development and evolution. Our hypothesis is that a linguistic symbiosis is required between the logic reasoning and object-oriented programming paradigms in order to achieve seamless integration.This paper presents a symbiotic extension of SOUL, a system which implements a logic programming language and a production system in Smalltalk. The presence of these two logic reasoning systems in SOUL ensures a comprehensive coverage of rule-based reasoning styles, more specifically forward and backward chaining. Our approach is evaluated by means of two case studies. We summarise a comprehensive survey, which shows that existing systems do not fully support seamless integration.


Computer Languages, Systems & Structures | 2006

Inter-language reflection: A conceptual model and its implementation

Kris Gybels; Roel Wuyts; Stéphane Ducasse; Maja D'Hondt

Meta programming is the act of reasoning about a computational system. For example, a program in Prolog can reason about a program written in Smalltalk. Reflection is a more powerful form of meta programming where the same language is used to reason about, and act upon, itself in a causally connected way. Thus on the one hand we have meta programming that allows different languages or paradigms to be used, but without causal connection, while on the other hand we have reflection that offers causal connection but only for a single language. This paper combines both and presents inter-language reflection that allows one language to reason about and change in a causally connected way another language and vice versa. The fundamental aspects of inter-language reflection and the language symbiosis used therein, are discussed. Moreover the implementation of two symbiotic reflective languages is discussed: Agora/Java and SOUL/Smalltalk.


Computer Languages, Systems & Structures | 2008

Application-specific models and pointcuts using a logic metalanguage

Johan Brichau; Andy Kellens; Kris Gybels; Kim Mens; Robert Hirschfeld; Theo D'Hondt

In contemporary aspect-oriented languages, pointcuts are usually specified directly in terms of the structure of the source code. The definition of such low-level pointcuts requires aspect developers to have a profound understanding of the entire applications implementation and often leads to complex, fragile and hard-to-maintain pointcut definitions. To resolve these issues, we present an aspect-oriented programming system that features a logic-based pointcut language that is open such that it can be extended with application-specific pointcut predicates. These predicates define an application-specific model that serves as a contract that base program developers provide and aspect developers can depend upon. As a result, pointcuts can be specified in terms of this more high-level model of the application which confines all intricate implementation details that are otherwise exposed in the pointcut definitions themselves.


Computer Languages, Systems & Structures | 2009

Forward chaining in HALO: An implementation strategy for history-based logic pointcuts

Charlotte Herzeel; Kris Gybels; Pascal Costanza; Coen De Roover; Theo D'Hondt

In aspect-oriented programming, pointcuts are formulated as conditions over the context of dynamic events in the execution of a program. Hybrid pointcut languages also allow this context to come from interactions between the pointcut language and the base program. While some pointcut languages only allow conditions on the current execution event, more recent proposals have demonstrated the need for expressing conditions over a history of join points. Such pointcut languages require means to balance the expressiveness of the language with the additional memory and runtime overhead caused by keeping a history of join point context data. In this paper, we introduce a logic-based pointcut language that allows interaction with the base program as well as pointcuts over a history of join points. We introduce forward chaining as an implementation model for this language, and discuss possible optimization strategies for the additional overhead.


Lecture Notes in Computer Science | 2006

Automated pattern-based pointcut generation

Mathieu Braem; Kris Gybels; Andy Kellens; Wim Vanderperren

One of the main problems in Aspect-Oriented Software Development is the so-called fragile pointcut problem. Uncovering and specifying a good robust pointcut is not an easy task. In this paper we propose to use Inductive Logic Programming, and more specifically the FOIL algorithm, to automatically identify intensional (or “pattern-based”) pointcuts. We present the tool chain we implemented to induce a pointcut given a set of identified joinpoints. Using several realistic medium-scale experiments, we show that our approach is able to automatically induce robust pointcuts for a set of joinpoints.


runtime verification | 2007

Escaping with future variables in HALO

Charlotte Herzeel; Kris Gybels; Pascal Costanza

HALO is a novel aspect language introducing a logic-based pointcut language which combines history-based pointcuts and “escape” conditions for interacting with the base language. This combination is difficult to support when escape conditions access context exposed by “future” join points. This paper introduces a weaving mechanism based on copying objects for resolving such pointcuts. Though this seems a memory consuming solution, it can be easily combined with HALO’s analysis for reducing the join point history. Furthermore, pointcuts with escape conditions accessing future join point context, sometimes require less memory than pointcuts that don’t, but otherwise implement the same functionality. In this paper, we illustrate this by measuring memory usage for simulations of an e-commerce application, switching between an implementation where the pointcut definitions contain escape conditions referring to future join point context, and an equivalent implementation that doesn’t.


Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software | 2008

cHALO, stateful aspects in C

Bram Adams; Charlotte Herzeel; Kris Gybels

History-based pointcut languages are a very expressive and powerful means to obtain robust pointcuts. To implement them in an efficient way, people have proposed various optimisations and program history retention strategies, especially for Java-based aspect languages. In this paper, we focus on history-based pointcut languages for C, which has no provisions for weak references or automatic garbage collection. Because C programmers want explicit control over pointcut behaviour and memory footprint, we claim that a limited set of fine-grained temporal pointcut primitives with well-known memory behaviour strikes a good balance between flexibility and memory consumption. A working prototype (cHALO) has been designed and implemented, based on the HALO pointcut language for Lisp.


Proceedings of the 2007 international conference on Dynamic languages | 2007

Forward chaining in HALO: an implementation strategy for history-based logic pointcuts

Charlotte Herzeel; Kris Gybels; Pascal Costanza; Coen De Roover; Theo D'Hondt

In aspect-oriented programming, pointcuts are formulated as conditions over the context of dynamic events in the execution of a program. Hybrid pointcut languages also allow this context to come from interaction between the pointcut language and the base program. While some pointcut languages only allow conditions on the current execution event, more recent proposals have demonstrated the need for expressing conditions over a history of joinpoints. Such pointcut languages require means to balance the expressiveness of the language with the additional memory and runtime overhead caused by keeping a history of joinpoint context data. In this paper, we introduce a logic-based pointcut language that allows interaction with the base program as well as pointcuts over a history of joinpoints. We introduce forward chaining as an implementation model for this language, and discuss possible optimization strategies for the additional overhead.

Collaboration


Dive into the Kris Gybels's collaboration.

Top Co-Authors

Avatar

Andy Kellens

Vrije Universiteit Brussel

View shared research outputs
Top Co-Authors

Avatar

Johan Brichau

Université catholique de Louvain

View shared research outputs
Top Co-Authors

Avatar

Theo D'Hondt

Vrije Universiteit Brussel

View shared research outputs
Top Co-Authors

Avatar

Charlotte Herzeel

Vrije Universiteit Brussel

View shared research outputs
Top Co-Authors

Avatar

Pascal Costanza

Vrije Universiteit Brussel

View shared research outputs
Top Co-Authors

Avatar

Coen De Roover

Vrije Universiteit Brussel

View shared research outputs
Top Co-Authors

Avatar

Kim Mens

Université catholique de Louvain

View shared research outputs
Top Co-Authors

Avatar

Maja D'Hondt

Vrije Universiteit Brussel

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Roel Wuyts

Katholieke Universiteit Leuven

View shared research outputs
Researchain Logo
Decentralizing Knowledge