Learn More
  • Piotr Nienaltowski, Bertrand Meyer, Eth Zurich, Prof, Peter Müller, Jonathan Ostroff +42 others
  • 2007
2007 Foreword CONCURRENT programming, we have been told many times, is difficult. (The adjective difficult is usually embellished in this context with one of: inherently, intrinsically, extremely, or at least very.) Boyapati, Lee, and Rinard [28] warn against the pitfalls of widely used multithreading: Multithreaded programming is difficult and error-prone.(More)
Understanding the collaborations that arise between the instances of classes in object-oriented programs is important for the analysis , optimization, or modification of the program. Relationships have been proposed as a programming language construct to enable an explicit representation of these collaborations. This paper introduces a relational model that(More)
Reasoning about object-oriented programs is difficult since such programs usually involve aliasing, and it is not easy to identify the ways objects can relate to each other and thus to confine a program's heap. In this paper, we address this problem in the context of a relationship-based programming language. In relationship-based programming languages,(More)
2008 ACKNOWLEDGEMENTS First and foremost I thank Bertrand Meyer, for giving me the opportunity to do a PhD under his supervision at ETH Zurich. His support and guidance made the work presented here possible and had the decisive influence on this work's progress and finalization, as well as on my formation as a researcher in the past four years. I also thank(More)
The views and conclusions contained in this document are those of the author and should be interpreted as representing the official policies, either expressed or implied, of the sponsoring organizations. Abstract Application Programming Interfaces (APIs) often define protocols— restrictions on the order of client calls to API methods. API protocols are(More)