Library-Centric Software Design LCSD'05
Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'05) conference
in San Diego, California, October 16-20, 2005.
Proceedings of the workshop
The proceedings of the workshop is available here, as the techincal report 06-12 of Rensselaer Polytechnic Institute's Computer Science Department.Registering to the workshop
The workshop is open to everyone, no position paper is required for participating. So that the organizers can accurately estimate workshop attendance, please register by sending an email to lcsd05@cs.tamu.edu.
Keynote address
The full-day workshop will begin with an invited talk by Joshua Bloch, Google Inc:
How To Design a Good API and Why it Matters
Program, papers and slides
The program of the workshop, the presented papers, and some of the slides are now available.
Birds of a Feather session
The program of the workshop consist mainly of technical presentations and position papers. Besides being a forum for presenting research in the area of software libraries, the planned activities include the identification of open questions specific to library research and the discussion of a strategic plan for establishing library research as a field. A BoF session is planned for Monday, October 17, 2005, 5 PM for these discussions. Details will be announced at the workshop.
Call for papers
Submission of extended abstracts is now closed.
Libraries are central to all major scientific, engineering, and business areas, yet the design, implementation, and use of libraries are underdeveloped arts. This workshop is one of the first steps in the process of placing all aspects of libraries on a sound technical and scientific basis through research into fundamental issues and documentation of best practices.
A software library is an organized collection of code with associated tools supporting programming in general or in specific domains, usually united by a specified set of principles and conventions. Most libraries are aimed at the use by several people and in different environments. The areas of software library research include
- Design and implementation of libraries
- Program and system design based on libraries
- Libraries supporting specific application domains, such as biology and banking
- Evolution, refactoring, and maintenance of libraries
- Empirical studies of library use
- Performance of libraries, including benchmarking and library-based optimizations
- Design of language facilities and tools in support of library definition and use
- Validation, debugging, and testing of libraries
- Extensibility, parameterization, and customization
- Distribution of libraries
- Specification of libraries and their semantics
- Usability for library users and developers
- Assessing quality of libraries
- Documentation and teaching of libraries
- Creating and supporting communities of library users
- Using several libraries in combination
We invite the submission of extended abstracts on software library research, including, but not limited to, the above list of topics. The extended abstracts should address issues important to libraries as a field, i.e., describe ideas or techniques that can be reused for libraries across problem domains and/or languages; they should refrain from merely describing a particular library, no matter how novel the choice of domain. As an additional criterion, the extended abstracts are reviewed against suitability for a journal publication of the corresponding full paper.
For uniformity, authors should use the latest ACM SIGS conference style file (option 1). Submissions should be limited to 10 pages in this style.
Accepted extended abstracts will be posted on the workshop's website lcsd05.cs.tamu.edu prior to the workshop, and collected in a proceedings published as a technical report of the Rensselaer Polytechnic Institute. Authors of selected papers will be invited to submit a full paper for a special issue of a journal, to be announced later.
Important Dates
| Aug 7 | - | Submission of extended abstracts (extended from Jul 31) |
| Sep 9 | - | Notification of acceptance |
| Oct 4 | - | Final version posted on Workshop web pages |
| Oct 16 | - | Workshop |
Submission procedure
Please submit your extended abstracts via the
electronic submission system here.
The submission system will re-open soon to accept submissions reflecting the
new extended dead-line.
In addition, the organizers will serve as program committee members,
with Sibylle Schupp and Andrew Lumsdaine as program co-chairs.
The full-day workshop will begin with an invited talk
by Joshua Bloch, Google Inc:
Organizers
Primarily, the email address
lcsd05@cs.tamu.edu
should be used for questions addressed
to the organizers.
Program committee
Keynote address
How To Design a Good API and Why it Matters
Every day around the world, software developers spend much
of their time working with a variety of Application Programming
Interfaces (APIs). Some are integral to the core platform, some
provide access to widely distributed frameworks, and some are written
in-house for use by a few developers. Nearly all programmers
occasionally function as API designers, whether they know it or not. A
well-designed API can be a great asset to the organization that wrote
it and to all who use it. Good APIs increase the pleasure and
productivity of the developers who use them, the quality of the
software they produce, and ultimately, the corporate bottom line.
Conversely, poorly written APIs are a constant thorn in the
developer's side, and have been known to harm the bottom line to the
point of bankruptcy. Given the importance of good API design,
surprisingly little has been written on the subject. In this talk,
I'll attempt to help you recognize good and bad APIs and I'll offer
specific suggestions for writing good APIs and coping with bad ones.
Joshua Bloch is a Principal Engineer at Google and author of the
Jolt Award-winning book, "Effective Java" (Addison Wesley, 2001). He
is coauthor of JavaPuzzlers: Traps, Pitfalls, and Corner Cases
(Addison-Wesley, 2005). He was previously a Distinguished Engineer at
Sun Microsystems and a Senior Systems Designer at Transarc. Josh led
the design and implementation of numerous Java platform features,
including JDK 5.0 language enhancements and the award-winning Java
Collections Framework. He holds a Ph.D. in computer science from
Carnegie Mellon University.
Program
| 8:45-9:00 | Workshop organizers Welcoming Remarks: David Musser |
| 9:00-10:00 | Keynote: Joshua Bloch, Google, Inc., USA How To Design a Good API and Why it Matters (Slides) |
| 10:00-10:30 Break | |
| Technical block 1 Chair: Jeremy Siek | |
| 10:30-11:00 | Gabriel Dos Reis and Jaakko Järvi, Texas A&M, USA. What is Generic Programming? |
| 11:00-11:30 | Todd Veldhuizen, Indiana University, USA. Software Libraries and Their Reuse: Entropy, Kolmogorov Complexity, and Zipf's Law (Slides) |
| 11:30-12:00 | Ron Wein, Efi Fogel, Baruch Zukerman and Dan Halperin, Tel Aviv University, Israel. Advanced Programming Techniques Applied to CGAL's Arrangement Package (Slides) |
| 12:00-12:30 | Lutz Kettner, MPI, Germany. Reference Counting in Library Design---Optionally and with Union-Find Optimization |
| 12:30-14:00 Lunch | |
| Technical block 2 Chair: Frank Tip | |
| 14:00-14:30 | Bjarne Stroustrup, Texas A&M, USA. A Rationale for Semantically Enhanced Library Languages |
| 14:30-15:00 | Mohammad Hasan, Vineet Chaoji, Saeed Salem and Mohammed Zaki, Rensselaer Polytechnic Institute, USA. DMTL: A Generic Data Mining Template Library |
| 15:00-15:30 | Marcin Zalewski and Sibylle Schupp, Chalmers University, Sweden. Changing Iterators with Confidence. A Case Study of Change Impact Analysis Applied to Conceptual Specifications |
| 15:30-16:00 Break | |
| Position papers 1 Chair: Andrew Lumsdaine | |
| 16:00-16:15 | Antonio Cisternino, Walter Cazzola and Diego Colombo, Pisa University and IMT Lucca, Italy. Meta-Driven Library Design |
| 16:15-16:30 | Kaspar Osterbye, IT University of Copenhagen, Denmark. Framework Design Using Inner Classes---Can Languages Cope? |
| 16:30-16:45 | Nick Mitchell, Gary Sevitsky and Harini Srinivasan, IBM TJ Watson, USA. The Diary of a Datum: An Approach to Analyzing Runtime Complexity in Framework-Based Applications. (Slides) |
| 16:45-17:00 Break | |
| Position papers 2 Chair: David Musser | |
| 17:00-17:15 | John Hunt and John D. McGregor, Clemson University, USA. A Model for Software Libraries |
| 17:15-17:30 | Robert Ramey, RRSD.com, USA. Making a Boost Library |
| 17:30-17:45 | Eric Niebler, Boost Consulting, USA. xpressive: Dual-Mode DSEL Library Design |
Workshop goals and activities
The workshop establishes a scientific forum for presenting original research in the design, implementation, and evaluation of software libraries. Other major activities include the identification of open questions specific to library research and the discussion of a strategic plan for establishing library research as a field. The outcome of the workshop is a combination of research contributions and specific next steps for improving the infrastructure for library research.
Participants are expected to read the accepted submissions beforehand. The technical presentations, although based on the accepted papers, should not provide mere summaries of the papers. Instead, authors are encouraged to use their presentation slots (20 + 10 mins) to bring up topics for discussion.
The technical presentations are mixed with scientific and organizational discussions. The discussions aim at furthering the topics of the presentations, thus their agenda will be publicly discussed among the participants and then posted on the website of the workshop. All participants are expected to come prepared with their tentative answers or thoughts.
The full-day workshop starts with a keynote talk for the stimulation of discussion and concludes with a plenary discussion that decides the specific next steps for improving the infrastructure for library research.