![]() |
David R. Musser
Professor, Computer Science
Education:
Career Highlights:
Before coming to Rensselaer in 1988, Musser served on the computer science faculties of the Universities of Texas and Wisconsin and on the research staffs of Information Sciences Institute and General Electric Corporate Research and Development Center. During a sabbatical in 1997-'98 he worked with generic programming research groups at the Technical University of Vienna, Austria, and Tübingen University in Germany, and he was co-organizer of a Dagstuhl Seminar on Generic Programming held April 27 through May 1, 1998 in Wadern, Germany.
Research Areas:
A central focus of his current research is the design of libraries of generic software components, attempting to overcome problems with traditional software libraries (component inflexibility or poor performance of more general components) that have hindered their widespread use. It is also important to have precise and complete specifications of the functionality, robustness, and performance of software components. In order to develop such specifications and validate the components, he and his students are exploring combinations of techniques including mathematical analysis and proof, symbolic execution, and testing. His earlier research included discovery of the fundamental proof method known as "inductionless induction'' or "proof by consistency,'' and its application to rigorous specification and verification of data abstractions. This work was part of the basis of the Affirm, Affirm-85, and Tecton program verification systems. His research on generic programming with Alexander Stepanov provided the foundation for the Standard Template Library (STL), now part of the C++ Standard Library.
Selected Publications:
STL Tutorial and Reference Guide, Second Edition: C++ Programming with the Standard Template Library, Addison-Wesley, Reading, MA, 2001 (First Edition: 1996).
Contact Information:
David R. Musser
Lally Building, Room 313
(518) 276-8660
musser@cs.rpi.edu
www.cs.rpi.edu/~musser

