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
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.