Multirequirements (new paper)






  As part of a Festschrift volume for Martin Glinz of the university of Zurich I wrote a paper [1] describing a general approach to requirements that I have been practicing and developing for a while, and presented in a couple of talks. The basic idea is to rely on object-oriented techniques, including contracts for … Read more




Negative variables and the essence of object-oriented programming (new paper)






In modeling object-oriented programs, for purposes of verification (proofs) or merely for a better understanding, we are faced with the unique “general relativity” property of OO programming: all the operations you write (excluding non-OO mechanisms such as static functions) are expressed relative to a “current object” which changes repeatedly during execution. More precisely at the … Read more




Precedent






Alexander Kogtenkov pointed out to me that precursor work to my papers on the Alias Calculus [1] [2] had been published by John Whaley and Martin Rinard [3]. There are some significant differences; in particular my rules are simpler, and their work is not explicitly presented as a calculus. But many of the basic ideas … Read more




Domain Theory: precedents






Both Gary Leavens and Jim Horning commented (partly here, partly on Facebook) about my Domain Theory article [1] to mention that Larch had mechanisms for domain modeling and specification reuse. As Horning writes: The Larch Shared Language was really all about creating reusable domain theories, including theorems about the domains.  See, for example [2] and … Read more




Domain Theory: the forgotten step in program verification






  Program verification is making considerable progress but is hampered by a lack of abstraction in specifications. A crucial step is, almost always, absent from the process; this omission is the principal obstacle to making verification a standard component of everyday software development. 1. Steps in software verification In the first few minutes of any … Read more




Aliasing and framing: Saint Petersburg seminar next week






In  last Thursday’s session of the seminar, Kokichi Futatsugi’s talk took longer than planned (and it would have been a pity to stop him), so I postponed my own talk on Automatic inference of frame conditions through the alias calculus to next week (Thursday local date). As usual it will be broadcast live. Seminar page: here, … Read more




Seminar sessions in Saint Petersburg: CafeOBJ and the frame issue






The Saint Petersburg software engineering seminar has two sessions today (29 March 2012, 18 local time, see here for the date and time in your area), broadcast live: By Kokichi Futatsugi from KAIST (Japan): Combining Inference and Search in Verification with CafeOBJ. By me: Automatic inference of frame conditions through the alias calculus. See details … Read more




A carefully designed Result






  In the Eiffel user discussion group [1], Ian Joyner recently asked: A lot of people are now using Result as a variable name for the return value in many languages. I believe this first came from Eiffel, but can’t find proof. Or was it adopted from an earlier language? Proof I cannot offer, but … Read more