At any instant when you are programming, some details rise to the foreground and others recede into the background context. The manner in which the programming language supports context profoundly affects the ease of evolution and reuse. We propose a language paradigm that amplifies the power of object-oriented programming by explicitly supporting multi-dimensional context, and using it for dispatch and for program organization. It can directly express, in a unified and simple fashion, many situations that are awkward with object-oriented programming or that usually require ad hoc mechanisms. Although it adds complexity to the object-oriented model, an environment can employ subjectivity with progressive disclosure to hide dimensions and present developer-specific views, thereby smoothing the learning curve. In this talk we will introduce and illustrate the paradigm, give some details of context-based dispatch, and show a glimpse of our early prototype.
Download the slides for this presentation in PDF format. This is a large file (about 30MB) which may stress some systems. If you are having problems please send an email to firstname.lastname@example.org and we'll republish the slide deck in parts.
About the speaker:
David Ungar received the 2009 Dahl-Nygaard award for outstanding career contributions in the field of object-orientation, and was honored as an ACM Fellow in 2010. Three of his papers have been honored by the ACM for their lasting impact: for the design of the prototype-based Self language, object-oriented language implementation techniques, and the application of cartoon animation ideas to user interfaces. Much of this work was carried out with his students while he was teaching at Stanford. He now enjoys innovating at IBM Research.
Harold Ossher was one of the originators of subject-oriented programming, multi-dimensional separation of concerns and Hyper/J. He received most-influential paper awards for OOPSLA and ICSE on these topics, and was one of the founders of the aspect-oriented software development community. He is an ACM Distinguished Scientist. He received his Ph.D. in Computer Science from Stanford then joined IBM Research, where he now does research in the area of cognitive computing.