News Archives

[Colloquium] Interaction-Oriented Programming

February 27, 2007

Watch Colloquium: 

AVI file (377 MB)
Quicktime (141 MB)


  • Date: Tuesday, February 27, 2007 
  • Time: 11 am — 12:15 pm 
  • Place: ECE 118

Yu (David) Liu 
John Hopkins University

Abstract: You may have the skills to build a garage, but will the same skills suffice for building a skyscraper? Research on software construction is not new, but scale changes everything. Next-generation software systems can easily grow into billions of lines of code, with complex and decentralized structures. Hundreds of inter-dependent platforms, sensors, and devices are commonly involved. Continuous evolution after initial deployment is often expected. This talk will illustrate why software foundations today — programming models in particular — are lagging behind the need from these Ultra-Large-Scale (ULS) systems, and how we can catch up by shifting the design focus on modeling the interactions of different building blocks underlying modern software.

In this talk, I will describe how the interaction-oriented philosophy can reshape the landscape of two fundamental programming models: components and objects. The new component model, called Assemblages, provides novel mechanisms to bridge time-honored modularity research with modern ULS systems. It unifies static linking, dynamic linking, and distributed communication in one compact model, and can potentially impact distributed programming and deployment for next-generation systems such as sensor networks. A structurally similar but semantically different design can also be applied to object-oriented programming. The resulting new language, named Classages, captures the complex object interactions in a well-structured fashion, and facilitates round-trip software engineering. Both Assemblages and Classages are equipped with provably sound typechecking mechanisms to capture a wide range of bugs. Both compilers have been implemented.

Bio: David is a Ph.D. candidate from the Johns Hopkins University. His passion lies in designing novel techniques for developing better software. His research interests span most areas related to this central theme, e.g. programming languages, software engineering, security, and software support for emerging domains such as sensor networks.