05. – 10. November 2000, Dagstuhl Seminar 00451
Effective Implementation of Object-Oriented Programming Languages
U. Assmann (Karlsruhe), L. Hendren (McGill Univ.), B. Ryder (Rutgers Univ.), F. Tip (IBM Yorktown Heights)
Die Dagstuhl-Stiftung erhielt eine Spende von:
Auskunft zu diesem Dagstuhl Seminar erteilt
Object-oriented languages are becoming increasingly popular for the development of software systems of all kinds, ranging from small web-based applications to large server-side applications. Modern object-oriented languages such as Java contain features such as exception handling, dynamic binding, extensive control of visibility, and threads. Although these features add to a language's expressive power and provide many benefits from a software engineering point of view, they also make it more difficult to implement a language efficiently.
The purpose of this seminar is to bring together experts in the areas of object-oriented language design, analysis and translation with experts in run-time systems, and to investigate problems and techniques related to effective implementations of object-oriented languages. It is becoming increasingly apparent that all of these areas can contribute to the ultimate goal of obtaining efficient object-oriented implementations. For example, by choosing the right language features, the job of the compiler and run-time system can be made easier. Moreover, static compiler analyses can benefit from profiling information as a means for obtaining feedback on predictable program behavior, and for selecting profitable transformations.
The seminar was organized around the general themes of garbage collection, call graph construction and JVMs for Java. %There was a tutorial on %garbage collection, invited presentations by three Java compiler groups: %IBM's Jalapeno compiler, Sun's Hotspot compiler and Microsoft's Marmot %compiler, and an invited tutorial overview of call graph construction %algorithms. There were invited tutorials on garbage collection and call graph construction algorithms as well as invited presentations by three Java compiler groups: IBM's Jalapeno compiler, Sun's Hotspot compiler and Microsoft's Marmot compiler. There were 24 additional 30 minute presentations by seminar participants which discussed topics in optimization, analysis, profiling, language design, object persistence and industrial applications. Each presentation session finished with at least a 15 minute question session; often discussions continued into the coffee break or lunch. One night was reserved for a demo session in which participants showed their software tools to other attendees. Many attendees were graduate students; all of them presented their research. Although the bad weather forced cancellation of the traditional Wedsnesday hike, participants did have a wine tasting dinner in Trier and an IBM-sponsored banquet as part of the seminar.
An important seminar goal was to gather industrial compiler groups and academic researchers together for substantive research discussions; this goal was achieved as exchanges over topics such as on-stack replacement, utility of SSA-like program representations, effectiveness of different garbage collection methodologies took place both in the seminar sessions and especially during evening informal gatherings. Another goal was to engender more communication between colleagues in the functional programming community and those in the object-oriented community; we were less successful in this effort as several of our functional programming colleagues declined our invitation. Finally, conversations at the seminar made it clear that many researchers, industrial and academic, feel that compiler infrastructure is a critical need of the community to enable better research; colleagues in attendance were sympathetic to providing research infrastructure for joint research between academic and industrial research folks.
Research Areas Uncovered
Many research questions focussed on Java and possible extensions to the programming language. It is clear that genericity and assertions are the awaited features that the community wants in Java, for example. Much discussion centered around how to provide those features of object-oriented languages that provide flexibility and dynamicism, while maintaining optimized execution performance. Dynamic class loading in Java was cited as a particularly difficult feature to accommodate.
The next big research accomplishment predicted by seminar participants is the development and use of practical interprocedural analyses and the optimizations they facilitate. For example, there was much discussion of how to perform effective "inlining4; no consensus was reached, but it was agreed that more empirical investigation is needed. In addition, participants agreed that thread management is an area needing work.
We would like to thank the Scientific Director for supporting us in organizing this seminar. We also want to thank the efficient staff at the Dagstuhl Office in Saarbrccken and at the Schloss Dagstuhl office, for all their help with our seminar.
IBM Research supported the Dagstuhl centre and the seminar with a very generous contribution of DM 10,000, including a nice dinner on Thursday evening. Merci beaucoup!
We also want to thank all of our participants, those who presented talks and those who participated in the invigorating discussions. The seminar was a success primarily because of the enthusiasm of the particpants. We also want to thank everyone for sending electronic copies of their talks for inclusion on our seminar webpage.