Professor Karl Lieberherr's work started in theoretical computer science where he codeveloped the theory of P-optimal algorithms for NP-complete problems. A well-known result is the Golden Mean result for the Satisfiability problem. Because of this work he has Erdoes number 2. 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.

Professor Lieberherr is best known for his work on guiding the Demeter research team that started in 1985 when he joined the College of Computer Science at Northeastern University. As the birthplace of the Demeter Project and the internationally recognized Law of Demeter, the College of Computer Science has contributed significantly to object-oriented programming. Led by Professor Karl J. Lieberherr, Demeter Project researchers have developed some of the field's leading techniques, including object-oriented software components, traversal-visitor style programming, adaptive programming and important techniques for aspect-oriented programming.

In 1985, Demeter/Flavors was an object-oriented programming tool that used class diagrams also acting as grammars for defining application specific languages. The class diagrams were similar to the UML class diagrams we have today. 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 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 in 1991 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. 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 in 1998 revolved around Adaptive Plug-and-Play Components (APPC). APPC combine ideas of clever composition with AP ideas.

Detailed information about Demeter, AP and AOP is available at the Demeter Home Page, including access to the seven Ph.D. theses that have been produced by the research group. More information about Professor Lieberherr is available from his Home Page including a link to his book about AP that is available on the web.

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

Dr. sc. math ETH
ETH Zurich

Software and Hardware Design Languages and Tools,
Object-Oriented Software,

Adaptive Programming and Demeter
Aspect-Oriented Programming


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"

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,


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

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

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

``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.
{\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. 

Search Engine. Use if to find information with keywords (CCS site).

Professor Karl J. Lieberherr

College of Computer Science, Northeastern University
Cullinane Hall, Boston, MA 02115
Fax: (617) 373 5121