SHORT PROFESSIONAL BIOGRAPHY

Professor Lieberherr's work started in theoretical computer science where he codeveloped the theory of P-optimal algorithms for NP-complete problems (http://www.ccs.neu.edu/home/lieber/p-optimal/README.html). A well-known result is the Golden Mean result for the Satisfiability problem. He then moved into more practical domains by becoming the principal designer and implementer of the hardware description language Zeus that influenced the design of VHDL, a widely used hardware description language (http://www.ccs.neu.edu/home/lieber/zeus/zeus.html).

Professor Lieberherr is best known for his work on guiding the Demeter research team (http://www.ccs.neu.edu/home/lieber/team-members.html) that started in 1985 when he joined Northeastern University. In 1985, Demeter/Flavors was an object-oriented programming tool that used class diagrams also acting as grammars for defining application specific languages. This separation of structure and grammar from the methods has stayed through later incarnations of Demeter: Demeter/C++ and Demeter/Java. Indeed, one of the unique contributions of Demeter is the separation of a program into several loosely coupled, cross-cutting building blocks that are compiled into an executable program. Today, Demeter/Java (http://www.ccs.neu.edu/research/demeter/DemeterJava/) has building blocks for structure/grammar, behavior, synchronization, data transfer as well as a generic weaver that compiles them.

It is not obvious how to separate and loosely couple structure from the implementation of behavior. It appears that the behavior implementation needs to know about the detailed structure. However, much of the structure is just noise when specifying a specific behavior and this observation lead to the idea of Adaptive Programming (AP). In AP, one of the building blocks of the software is a graph G and at least one other building block refers to this graph using a (usually very small) subgraph S of the transitive closure of G. Such a subgraph is called a traversal strategy graph and in another context, an interface class graph. AP has several advantages over object-oriented programming in that programs become both simpler and more powerful. This sounds like a paradox and it is indeed an application of Polya's Inventor's Paradox that is well-known in Mathematics. The subgraph S is a generalization of the graph G and the behavior expressed at the level of S is more general, yet simpler than at the level of G. AP helps to control tangling between structure and behavior and prevents unnecessary duplication of structural information.

Aspect-oriented Programming (AOP) is a generalization of AP, codeveloped with Xerox PARC, that uses the idea of cross-cutting building blocks but without using traversal strategy graphs. The main goal of AOP is to control tangling (http://www.ccs.neu.edu/home/lieber/AOP.html). One of the first papers on AOP was written by members of the Demeter team: Walter Huersch and Cristina Videira Lopes, Separation of Concerns, Northeastern University technical report NU-CCS-95-03, Boston, February 1995.

The work this year revolved around Adaptive Plug-and-Play Components (APPC) http://www.ccs.neu.edu/research/demeter/biblio/components.html. APPC combine ideas of clever composition from Mira Mezini's Rondo system with AP ideas.

Detailed information about Demeter, AP and AOP is at http://www.ccs.neu.edu/research/demeter/, including access to the seven Ph.D. theses that have been produced by the research group.

Name: Karl J. Lieberherr
Title: Professor 
Phone (617) 373 2077

Dr. sc. math ETH
ETH Zurich

PRIMARY RESEARCH AREAS
Software and Hardware Design Languages and Tools,
Object-Oriented Software,
Algorithms.


CURRENT RESEARCH PROJECTS
Adaptive Programming and Demeter
Aspect-Oriented Programming


Professor Lieberherr is coeditor-in-chief
of Theory and Practice of Object Systems (John Wiley, New York) 

CAREER PUBLICATION HIGHLIGHTS 

AUTHOR = "Karl J. Lieberherr",
TITLE = "Adaptive Object-Oriented Software:
The Demeter Method with Propagation Patterns",
PUBLISHER = "PWS Publishing Company, Boston",
YEAR = "1996",
NOTE = "616 pages, ISBN 0-534-94602-X, entire book at 
www.ccs.neu.edu/research/demeter"

AUTHOR = "Karl J. Lieberherr and Ian Holland",
TITLE = "Assuring Good Style for Object-Oriented Programs",
JOURNAL = IEEE Software,
YEAR = "1989",
MONTH = "September",
PAGES = "38-48"


TITLE = "Complexity of Partial Satisfaction",
AUTHOR = "Karl J. Lieberherr and Ernst Specker",
JOURNAL = Journal of the ACM,
YEAR = 1981,
PAGES = "411-421",
VOLUME = 28,
NUMBER = 2


1997-98 PUBLICATIONS

``Preventive Program Maintenance in Demeter/Java (Research
Demonstration)'',
with Doug Orleans,
{\em International Conference on Software Engineering},
1997,
"Boston, MA",
pages 604-605.

``Evolution of Software Via Adaptive Programming'',
{\em Software Engineering Notes},
1997,
September 1997,
Vol. 22, no. 5,
pages 56-57.

``Traversals of Object Structures: Specification and Efficient
Implementation'',
with Boaz Patt-Shamir,
Technical Report NU-CCS-97-15,
1997.

``Evolution of Object Behavior Using Context Relations'',
with Linda Seiter and Jens Palsberg,
{\em IEEE Transactions on Software Engineering},
Vol. 24, no. 1, pages 79-92, 1998. 

``From CSCW Applications to Multicast Routing:
An Integrated QoS Architecture''
with I.\ Matta and M.\ Eltoweissy.
{\it 1998 Proc. IEEE International Conference on Communications--ICC},
Atlanta Georgia.

``Adaptive Plug-and-Play Components for
Evolutionary Software Development'' with
Mira Mezini.
OOPSLA '98.
{\it 1998 Proc. Object-Oriented Programming Systems, Languages and Applications
Conference (OOPSLA), Special Issue of SIGPLAN Notices},
Vol. 33, no. 10, pages 97-116, ACM Press. 


1997-98 PRESENTATIONS

Keynote Speaker at STJA, Erfurt, Germany, September 1997. Title:
Adaptive and Aspect-Oriented Programming.

IEEE Boston
Smaller, More Evolveable Software
February 1998

DARPA PI Meeting, Los Angeles, CA
Evolution of Software Through Adaptive Programming
March 1998

Schloss Dagstuhl, Germany
Generic Programming Using Adaptive
and Aspect-Oriented Programming
April 1998

DARPA EDCS Demo Days
Demonstration of Demeter/Java
Baltimore, Maryland
July 1998

IBM Yorktown Heights
Adaptive Plug-and-Play Components
September 1998

SHORT PROFESSIONAL BIOGRAPHY

Professor Lieberherr's work started in theoretical computer science where he codeveloped the theory of P-optimal algorithms for NP-complete problems (http://www.ccs.neu.edu/home/lieber/p-optimal/README.html). A well-known result is the Golden Mean result for the Satisfiability problem. He then moved into more practical domains by becoming the principal designer and implementer of the hardware description language Zeus that influenced the design of VHDL, a widely used hardware description language (http://www.ccs.neu.edu/home/lieber/zeus/zeus.html).

Professor Lieberherr is best known for his work on guiding the Demeter research team (http://www.ccs.neu.edu/home/lieber/team-members.html) that started in 1985 when he joined Northeastern University. In 1985, Demeter/Flavors was an object-oriented programming tool that used class diagrams also acting as grammars for defining application specific languages. This separation of structure and grammar from the methods has stayed through later incarnations of Demeter: Demeter/C++ and Demeter/Java. Indeed, one of the unique contributions of Demeter is the separation of a program into several loosely coupled, cross-cutting building blocks that are compiled into an executable program. Today, Demeter/Java (http://www.ccs.neu.edu/research/demeter/DemeterJava/) has building blocks for structure/grammar, behavior, synchronization, data transfer as well as a generic weaver that compiles them.

It is not obvious how to separate and loosely couple structure from the implementation of behavior. It appears that the behavior implementation needs to know about the detailed structure. However, much of the structure is just noise when specifying a specific behavior and this observation lead to the idea of Adaptive Programming (AP). In AP, one of the building blocks of the software is a graph G and at least one other building block refers to this graph using a (usually very small) subgraph S of the transitive closure of G. Such a subgraph is called a traversal strategy graph and in another context, an interface class graph. AP has several advantages over object-oriented programming in that programs become both simpler and more powerful. This sounds like a paradox and it is indeed an application of Polya's Inventor's Paradox that is well-known in Mathematics. The subgraph S is a generalization of the graph G and the behavior expressed at the level of S is more general, yet simpler than at the level of G. AP helps to control tangling between structure and behavior and prevents unnecessary duplication of structural information.

Aspect-oriented Programming (AOP) is a generalization of AP, codeveloped with Xerox PARC, that uses the idea of cross-cutting building blocks but without using traversal strategy graphs. The main goal of AOP is to control tangling (http://www.ccs.neu.edu/home/lieber/AOP.html). One of the first papers on AOP was written by members of the Demeter team: Walter Huersch and Cristina Videira Lopes, Separation of Concerns, Northeastern University technical report NU-CCS-95-03, Boston, February 1995.

The work this year revolved around Adaptive Plug-and-Play Components (APPC) http://www.ccs.neu.edu/research/demeter/biblio/components.html. APPC combine ideas of clever composition from Mira Mezini's Rondo system with AP ideas.

Detailed information about Demeter, AP and AOP is at http://www.ccs.neu.edu/research/demeter/, including access to the seven Ph.D. theses that have been produced by the research group.