Karl Lieberherr - Academia.edu (original) (raw)

Papers by Karl Lieberherr

Research paper thumbnail of Aspect-oriented programming with adaptive methods

Communications of the ACM, 2001

Research paper thumbnail of Abstracting process-to-function relations in concurrent object-oriented applications

Lecture Notes in Computer Science

This paper presents a programming model for concurrent object-oriented applications by which conc... more This paper presents a programming model for concurrent object-oriented applications by which concurrency issues are abstracted and separated from the code. The main goal of the model is to minimize dependency between application speci c functionality and concurrency control. Doing so, software reuse can be e ective and concurrent programs are more exible, meaning that changes in the implementation of the operations don't necessarily imply changes in the synchronization scheme (and vice-versa). We make an analysis of concurrent computation, review existing systems and their inherent limitations, and discuss the fundamental problems in abstracting concurrency. Then we propose a solution based on lessons learned with adaptive software, introducing the concept of synchronization patterns. The result is a programming model by which data, operations and concurrency control are minimally interdependent.

Research paper thumbnail of A type system for functional traversal-based aspects

Proceedings of the 2009 workshop on Foundations of aspect-oriented languages, 2009

Research paper thumbnail of Beyond AOP

ACM SIGPLAN Notices, 2003

Software understanding for documentation, maintenance or evolution is one of the longest-standing... more Software understanding for documentation, maintenance or evolution is one of the longest-standing problems in Computer Science. The use of "high-level" programming paradigms and object-oriented languages helps, but fundamentally remains far from solving the problem. Most programming languages and systems have fallen prey to the assumption that they are supposed to capture idealized models of computation inspired by deceptively simple metaphors such as objects and mathematical functions. Aspect oriented programming languages have made a significant breakthrough by noticing that, in many situations, humans think and describe in crosscutting terms. In this paper we suggest that the next breakthrough would require looking even closer to the way humans have been thinking and describing complex systems for thousand of years using natural languages. While natural languages themselves are not appropriate for programming, they contain a number of elements that make descriptions con...

Research paper thumbnail of Component enhancement: An adaptive reusability mechanism for groups of collaborating classes

We enhance the Demeter Method for object-oriented software development with the component model f... more We enhance the Demeter Method for object-oriented software development with the component model for describing the evolution of groups of collaborating classes. The model is based on class dictionary graphs LBSL91, Ber91] and reusable behavior descriptions which are expressed by propagation in class dictionary graphs LXSL91]. Our experience demonstrates that the component model lifts programming to a higher level of abstraction, it signi cantly reduces the size of programs and it makes them resilient t o c hange and therefore we propose a reusability m e c hanism for components. Components are useful for the development of reusable software libraries, for application development, as well as for recording the history of object-oriented programs. An implementation of propagation patterns, which a r e an important part of components, and related papers are available by ftp LBH + 91].

Research paper thumbnail of Workshop on adaptable and adaptive software

ACM SIGPLAN OOPS Messenger, 1995

Research paper thumbnail of Aspect-oriented programming with adaptive methods

Communications of the ACM, 2001

Research paper thumbnail of Abstracting process-to-function relations in concurrent object-oriented applications

Lecture Notes in Computer Science

This paper presents a programming model for concurrent object-oriented applications by which conc... more This paper presents a programming model for concurrent object-oriented applications by which concurrency issues are abstracted and separated from the code. The main goal of the model is to minimize dependency between application speci c functionality and concurrency control. Doing so, software reuse can be e ective and concurrent programs are more exible, meaning that changes in the implementation of the operations don't necessarily imply changes in the synchronization scheme (and vice-versa). We make an analysis of concurrent computation, review existing systems and their inherent limitations, and discuss the fundamental problems in abstracting concurrency. Then we propose a solution based on lessons learned with adaptive software, introducing the concept of synchronization patterns. The result is a programming model by which data, operations and concurrency control are minimally interdependent.

Research paper thumbnail of A type system for functional traversal-based aspects

Proceedings of the 2009 workshop on Foundations of aspect-oriented languages, 2009

Research paper thumbnail of Beyond AOP

ACM SIGPLAN Notices, 2003

Software understanding for documentation, maintenance or evolution is one of the longest-standing... more Software understanding for documentation, maintenance or evolution is one of the longest-standing problems in Computer Science. The use of "high-level" programming paradigms and object-oriented languages helps, but fundamentally remains far from solving the problem. Most programming languages and systems have fallen prey to the assumption that they are supposed to capture idealized models of computation inspired by deceptively simple metaphors such as objects and mathematical functions. Aspect oriented programming languages have made a significant breakthrough by noticing that, in many situations, humans think and describe in crosscutting terms. In this paper we suggest that the next breakthrough would require looking even closer to the way humans have been thinking and describing complex systems for thousand of years using natural languages. While natural languages themselves are not appropriate for programming, they contain a number of elements that make descriptions con...

Research paper thumbnail of Component enhancement: An adaptive reusability mechanism for groups of collaborating classes

We enhance the Demeter Method for object-oriented software development with the component model f... more We enhance the Demeter Method for object-oriented software development with the component model for describing the evolution of groups of collaborating classes. The model is based on class dictionary graphs LBSL91, Ber91] and reusable behavior descriptions which are expressed by propagation in class dictionary graphs LXSL91]. Our experience demonstrates that the component model lifts programming to a higher level of abstraction, it signi cantly reduces the size of programs and it makes them resilient t o c hange and therefore we propose a reusability m e c hanism for components. Components are useful for the development of reusable software libraries, for application development, as well as for recording the history of object-oriented programs. An implementation of propagation patterns, which a r e an important part of components, and related papers are available by ftp LBH + 91].

Research paper thumbnail of Workshop on adaptable and adaptive software

ACM SIGPLAN OOPS Messenger, 1995