Learn More
Recently, linearity has been proposed as a mechanism for memory management, alias control, and typestate tracking. While linear type systems have been extensively studied in functional programming , their use in object-oriented systems has been limited to useful but ad-hoc annotation systems that track unique pointers. In this paper, we study(More)
Transactional events (TE) are an extension of Concurrent ML (CML), a programming model for synchronous message-passing. Prior work has focused on TE's formal semantics and its implementation. This paper considers programming idioms, particularly those that vary unexpectedly from the corresponding CML idioms. First, we solve a subtle problem with(More)
Software architecture research has proposed using protocols for specifying the interactions between components through ports. Enforcing these protocols in an implementation is difficult. This paper proposes an approach to statically reason about protocol conformance of an implementation. It leverages the architectural guarantees of the ArchJava programming(More)
  • 1