Logo

SIG Beer - Karl Lieberherr - More Flexible Software By Favoring Implicit Calls and Communication

Language: nil
Date: 19 December 2007 5:30 pm

Location: Institut für Informatik und angewandte Mathematik (IAM), Universität Bern, Schützenmattstrasse 14, 3012 Bern, Room 107

About Karl Lieberherr

In the mid 1980s, Karl Lieberherr founded the Demeter research team, which studied the then-novel idea of Adaptive Programming, also known as structure-shy programming and produced the Law of Demeter ("talk only to your friends": an explicit form of coupling control) and several systems for separating concerns in an object-oriented programming context: Demeter/Flavors, Demeter/C

Adaptive Programming (AP) has promoted the idea of calling methods indirectly through traversals. Aspect-Oriented Programming (AOP) took this to the next level by calling methods indirectly through general programs, not just traversals. Both AP and AOP are departures from the traditional functional and object-oriented approaches that suffer from two major problems: they explicitly mention by name the subterms or subobjects that need to be traversed (explicit traversal problem) and they explicitly mention parameters that are passed down to subterms or subobjects, whether or not they are relevant to the current term or object (explicit argument problem). The reason for the two problems is a low-level use of "follow the structure" or "follow the grammar".

We propose two new approaches to implicit calls and communication.

The first approach, called AP-F, is a functional approach that parameterizes the traversal with three kinds of function objects: transformers, builders and augmentors. Our current implementation of AP-F is called DemeterF and is provided as a Java library that heavily relies on reflection. DemeterF includes a type checker that proves useful in debugging the programs.

The second approach, called AP-P, is an interposition visitor approach that relies on traversals and before/after methods. An interposition visitor uses interposition variables that facilitate implicit communication. Our current implementation of AP-P is called DemeterP and relies on code generation using AspectJ.

We have successfully used DemeterF programs for refactoring interpreters, compilers from the EoPL book by Friedman and Wand, making the programs both simpler and more flexible.

Joint work with Bryan Chadwick, Ahmed Abdelmeged and Therapon Skotiniotis.

, DemeterJ, DJ and XAspects.

In 2006 he added Systems Biology to his areas of interest. He spent his 2006 sabbatical at Novartis Institute for Biomedical Research and discovered that SAT and CSP solvers play an important role in biological applications.

Talk abstract

Adaptive Programming (AP) has promoted the idea of calling methods indirectly through traversals. Aspect-Oriented Programming (AOP) took this to the next level by calling methods indirectly through general programs, not just traversals. Both AP and AOP are departures from the traditional functional and object-oriented approaches that suffer from two major problems: they explicitly mention by name the subterms or subobjects that need to be traversed (explicit traversal problem) and they explicitly mention parameters that are passed down to subterms or subobjects, whether or not they are relevant to the current term or object (explicit argument problem). The reason for the two problems is a low-level use of "follow the structure" or "follow the grammar".

We propose two new approaches to implicit calls and communication.

The first approach, called AP-F, is a functional approach that parameterizes the traversal with three kinds of function objects: transformers, builders and augmentors. Our current implementation of AP-F is called DemeterF and is provided as a Java library that heavily relies on reflection. DemeterF includes a type checker that proves useful in debugging the programs.

The second approach, called AP-P, is an interposition visitor approach that relies on traversals and before/after methods. An interposition visitor uses interposition variables that facilitate implicit communication. Our current implementation of AP-P is called DemeterP and relies on code generation using AspectJ.

We have successfully used DemeterF programs for refactoring interpreters, compilers from the EoPL book by Friedman and Wand, making the programs both simpler and more flexible.

Joint work with Bryan Chadwick, Ahmed Abdelmeged and Therapon Skotiniotis.