Network


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

Hotspot


Dive into the research topics where Johan Fabry is active.

Publication


Featured researches published by Johan Fabry.


Computer Languages, Systems & Structures | 2004

Language-independent detection of object-oriented design patterns

Johan Fabry; Tom Mens

This paper shows that one can reason at a meta level about the structure of object-oriented source code in a language-independent way. To achieve this, we propose a language-independent meta-level interface to extract complex information about the structure of the source code. This approach is validated by defining a set of logic queries to detect object-oriented best practice patterns and design patterns in two different languages: Smalltalk and Java. The queries were applied to two similar medium-sized applications available for each language, and the results were confirmed by manually investigating the source code and available documentation.


acm symposium on applied computing | 2006

KALA: Kernel Aspect language for advanced transactions

Johan Fabry; Theo D'Hondt

Transaction management is a known cross-cutting concern. Previous research has been conducted to express this concern as an aspect. However, this work uses general-purpose aspect languages which lack a formal foundation and are unable to express advanced models for transaction management. In contrast, we designed a domain-specific aspect language for advanced transaction management, called KALA, that is based on a formalism for advanced transactions. As a result, KALA covers the field of advanced transaction management while obtaining a much higher level of abstraction than is achieved with general-purpose aspect languages. In this paper we detail the creation process of KALA.


aspect-oriented software development | 2009

Expressive scoping of distributed aspects

Éric Tanter; Johan Fabry; Rémi Douence; Jacques Noyé; Mario Südholt

Dynamic deployment of aspects brings greater flexibility and reuse potential, but requires proper means for scoping aspects. Scoping issues are particularly crucial in a distributed context: adequate treatment of distributed scoping is necessary to enable the propagation of aspect instances across host boundaries and to avoid inconsistencies due to unintentional spreading of data and computations in a distributed system. We motivate the need for expressive scoping of dynamically-deployed distributed aspects by an analysis of the deficiencies of current approaches for distributed aspects. Extending recent work on deployment strategies for non-distributed aspects, we then introduce a set of high-level strategies for specifying locality of aspect propagation and activation, and illustrate the corresponding gain in expressiveness. We present the operational semantics of our proposal using Scheme interpreters, first introducing a model of distributed aspects that covers the range of current proposals, and then extending it with dynamic aspect deployment. This work shows that, given some extensions to their original execution model, deployment strategies are directly applicable to the expressive scoping of distributed aspects.


ACM Computing Surveys | 2015

A Taxonomy of Domain-Specific Aspect Languages

Johan Fabry; Tom Dinkelaker; Jacques Noyé; Éric Tanter

Domain-Specific Aspect Languages (DSALs) are Domain-Specific Languages (DSLs) designed to express crosscutting concerns. Compared to DSLs, their aspectual nature greatly amplifies the language design space. We structure this space in order to shed light on and compare the different domain-specific approaches to deal with crosscutting concerns. We report on a corpus of 36 DSALs covering the space, discuss a set of design considerations, and provide a taxonomy of DSAL implementation approaches. This work serves as a frame of reference to DSAL and DSL researchers, enabling further advances in the field, and to developers as a guide for DSAL implementations.


dynamic languages symposium | 2013

Cast insertion strategies for gradually-typed objects

Esteban Allende; Johan Fabry; Éric Tanter

Gradual typing enables a smooth and progressive integration of static and dynamic typing. The semantics of a gradually-typed program is given by translation to an intermediate language with casts: runtime type checks that control the boundaries between statically- and dynamically-typed portions of a program. This paper studies the performance of different cast insertion strategies in the context of Gradualtalk, a gradually-typed Smalltalk. We first implement the strategy specified by Siek and Taha, which inserts casts at call sites. We then study the dual approach, which consists in performing casts in callees. Based on the observation that both strategies perform well in different scenarios, we design a hybrid strategy that combines the best of each approach. We evaluate these three strategies using both micro- and macro-benchmarks. We also discuss the impact of these strategies on memory, modularity, and inheritance. The hybrid strategy constitutes a promising cast insertion strategy for adding gradual types to existing dynamically-typed languages.


conference on object-oriented programming systems, languages, and applications | 2014

Confined gradual typing

Esteban Allende; Johan Fabry; Ronald Garcia; Éric Tanter

Gradual typing combines static and dynamic typing flexibly and safely in a single programming language. To do so, gradually typed languages implicitly insert casts where needed, to ensure at runtime that typing assumptions are not violated by untyped code. However, the implicit nature of cast insertion, especially on higher-order values, can jeopardize reliability and efficiency: higher-order casts can fail at any time, and are costly to execute. We propose Confined Gradual Typing, which extends gradual typing with two new type qualifiers that let programmers control the flow of values between the typed and the untyped worlds, and thereby trade some flexibility for more reliability and performance. We formally develop two variants of Confined Gradual Typing that capture different flexibility/guarantee tradeoffs. We report on the implementation of Confined Gradual Typing in Gradualtalk, a gradually-typed Smalltalk, which confirms the performance advantage of avoiding unwanted higher-order casts and the low overhead of the approach.


european conference on object-oriented programming | 1998

Replication as an Aspect

Johan Fabry

An important problem in distributed systems is sharing of data between different computers. A possible solution is replication: a number of servers contain copies of the data, and clients can access this data through the network.


ibero-american conference on artificial intelligence | 2014

Live Robot Programming

Johan Fabry; Miguel Campusano

Typically, development of robot behavior entails writing the code, deploying it on a simulator or robot and running it for testing. If this feedback reveals errors, the programmer mentally needs to map the error in behavior back to the source code that caused it before being able to fix it. This process suffers from a large cognitive distance between the code and the resulting behavior, which slows down development and can make experimentation with different behaviors prohibitively expensive. In contrast, Live Programming tightens the feedback loop, minimizing cognitive distance. As a result, programmers benefit from an immediate connection with the program that they are making thanks to an immediate, ‘live’ feedback on program behavior. This allows for extremely rapid creation, or variation, of robot behavior and for dramatically increased debugging speed. To enable such Live Robot Programming, in this article we propose a language that provides for live programming of nested state machines and integrates in the Robot Operating System (ROS). We detail the language, named LRP, illustrate how it can be used to rapidly implement a behavior on a running robot and discuss the key points of the language that enables its liveness.


aspect oriented software development | 2009

Editorial for Special Section on Dependencies and Interactions with Aspects

Ruzanna Chitchyan; Johan Fabry; Shmuel Katz; Arend Rensink

As the use of aspects spreads, it is becoming common to weave multiple aspects into a system, treating different concerns. In this special section, we present three papers that deal with the issue of how aspects may interact, and in particular how they may interfere with each other. Aspect interactions can arise at all stages of software development, including requirements, design, and implementation. The issues somewhat differ at each stage, and in fact for interference itself several definitions are in use.


Science of Computer Programming | 2014

AspectMaps: Extending Moose to visualize AOP software

Johan Fabry; Andy Kellens; Simon Denier; Stéphane Ducasse

When using aspect-oriented programming the application implicitly invokes the functionality contained in the aspects. Consequently program comprehension of such a software is more intricate. To alleviate this difficulty we developed the AspectMaps visualization and tool. AspectMaps extends the Moose program comprehension and reverse engineering platform with support for aspects, and is implemented using facilities provided by Moose. In this paper we present the AspectMaps tool, and show how it can be used by performing an exploration of a fairly large aspect-oriented application. We then show how we extended the FAMIX meta-model family that underpins Moose to also provide support for aspects. This extension is called ASPIX, and thanks to this enhancement Moose can now also treat aspect-oriented software. Finally, we report on our experiences using some of the tools in Moose; Mondrian to implement the visualization, and Glamour to build the user interface. We discuss how we were able to implement a sizable visualization tool using them and how we were able to deal with some of their limitations. Note: This paper uses colors extensively. Please use a color version to better understand the ideas presented here.

Collaboration


Dive into the Johan Fabry's collaboration.

Top Co-Authors

Avatar

Éric Tanter

École des mines de Nantes

View shared research outputs
Top Co-Authors

Avatar

Jacques Noyé

French Institute for Research in Computer Science and Automation

View shared research outputs
Top Co-Authors

Avatar

Carlos Noguera

Vrije Universiteit Brussel

View shared research outputs
Top Co-Authors

Avatar

Mario Südholt

École des mines de Nantes

View shared research outputs
Top Co-Authors

Avatar

Arturo Zambrano

National University of La Plata

View shared research outputs
Top Co-Authors

Avatar

Silvia E. Gordillo

National University of La Plata

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Theo D'Hondt

Vrije Universiteit Brussel

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge