CSAIL Event Calendar


Implementation and Use of Data Structures in Java Programs

Speaker: Patrick Lam, University of Waterloo
Date: Monday, November 16 2009
Time: 3:00PM to 4:00PM
Refreshments: 2:45PM
Location: 32-D463 Star Conference Room
Host: Martin Rinard, MIT-CSAIL
Contact: Mary McDavitt, 617-253-9620, mmcdavit@csail.mit.edu

Title: Implementation and Use of Data Structures in Java Programs

Programs manipulate data. For many classes of programs, this data is
organized into data structures. Java's standard libraries include
robust, general-purpose data structure implementations; however,
standard implementations may not meet developers' needs, forcing them to
implement ad-hoc data structures. We investigate the
implementation and use of data structures in practice by developing a
tool to statically analyze Java libraries and applications. Our
DSFinder tool reports 1) the number of likely and possible data
structure implementations in a program and 2) characteristics of
the program's uses of data structures. We applied our tool to 62
open-source Java programs and manually classified possible data
structures. We found that 1) developers overwhelmingly used Java data
structures over ad-hoc data structures; 2) applications and libraries
confine data structure implementation code to small portions of a
software project; and 3) the number of ad-hoc data structures correlates
with the number of classes in both applications and libraries, with
approximately 0.020 data structures per class.

This is joint work with Syed S. Albiz, submitted to ICSE 2010.

Bio: Patrick Lam is an Assistant Professor at the University of
Waterloo. His research interests include static analysis and software
engineering. Before coming to the University of Waterloo, Patrick spent
six years climbing mountains in New Hampshire, sailing on the Charles
River, and writing a thesis at CSAIL.

See other events happening in November 2009


About Us Research News Resources Directory