
  Invited talk: Mandatory Typing Considered Harmful. Gilad Bracha (Sun Microsystems)
  Hybrid Types, Invariants, and Refinements for Imperative Objects. Cormac Flanagan, Stephen N. Freund and Aaron Tomb
  Property Types: Semantic Programming for Java. Aaron Stump and Ian Wehrman
  Ego: Controlling the Power of Simplicity. Andi Bejleri, Jonathan Aldrich, and Kevin Bierhoff
  Invited talk: Nested Classes, Nested Objects and Ownership. Dave Clarke (Centrum voor Wiskunde en Informatica)
  A Foundation for Trait-Based Metaprogramming. John Reppy and Aaron Turon
  Parameterized Modules for Classes and Extensible Functions. Keunwoo Lee and Craig Chambers
  Modularly Typesafe Interface Dispatch in JPred. Christopher Frost and Todd Millstein
  Invited talk: The Structure and Value of Modularity in Design. Kevin Sullivan (University of Virginia)

Traditionally, statically typed programming languages incorporate a built-in static type system. This system is typically mandatory: every legal program must successfully typecheck according to the rules of the type system. Mandatory type systems are widely perceived to enhance software reliability and security, by mechanically enforcing program properties. The disadvantages of mandatory typing are not as widely recognized: they may, paradoxically, inhibit software reliability, security and innovation. Pluggable type systems allow multiple type systems to be used simultaneously without influencing the dynamic semantics of the language or each other. We argue that pluggable types are more in keeping with programming language theory, and more importantly, that they can provide most of the advantages of mandatory type systems without most of the drawbacks.
Ownership Types provide a statically checkable notion of object encapsulation wherein each object controls access to the encapsulated objects it owns. Quite a few variants of Ownership Types exist, each encoding some combination of object nesting and visibility into the type system. Ownership Types systems, however, tend to be syntactically burdensome.
Our Tribe language formalisation of constructs such as (nested) virtual classes and family polymorphism curiously relies on typing mechanisms similar to those used in Ownership Typing. Indeed, when correctly interpreted, nested classes and visibility modifiers combine to express key notions of Ownership Types. The resulting system, called Tribal Ownership, requires no annotations on types, and is arguably a more natural approach to Ownership Typing.
This talk will introduce Tribal Ownership and its design, as well as describe its limitations and how to overcome them. Based on joint work with Sophia Drossopoulou, James Noble, and Tobias Wrigstad.
Modularity is an essential source of value in software and software-intensive system design. I will argue that although today's models of modularity in software design do provide significant leverage, they are too specialized to address key issues in the overall production process, or to provide a general account of existing and emerging notions of modularity. For example they do not provide an immediate and clear account of the role or the lack thereof of information hiding modularity/in aspect-oriented programming. In this talk, I will present an approach to understanding modularity in design in general, and will present examples that suggest that this account can provide valuable insights into the structure and value of modularity in software-intensive system design, in particular. This work draws on representations and reasoning from several fields, each of which is active in addressing issues of modularity in design. The fields are software engineering and languages, financial economics and engineering system design.
This talk is based on work that is in part joint with William Griswold (University of California, San Diego), Carliss Baldwin (the Harvard Business School), and with our Ph.D. students.