New article: contracts in practice






For almost anyone programming in Eiffel, contracts are just a standard part of daily life; Patrice Chalin’s pioneering study of a few years ago [1] confirmed this impression. A larger empirical study is now available to understand how developers actually use contracts when available. The study, to published at FM 2014 [2] covers 21 programs, … Read more




Negative variables: new version






I have mentioned this paper before (see the earlier blog entry here) but it is now going to be published [1] and has been significantly revised, both to take referee comments into account and because we found better ways to present the concepts. We have  endeavored to explain better than in the draft why the … Read more




Niklaus Wirth birthday symposium, 20 February, Zurich






In honor of Niklaus Wirth’s 80-th birthday we are organizing a symposium at ETH on February 20, 2014. This is a full-day event with invited talks by: Vint Cerf Hans Eberlé Michael Franz me Carroll Morgan Martin Odersky Clemens Szyperski Niklaus Wirth himself From the symposium’s web page: Niklaus Wirth was a Professor of Computer … Read more




New paper: alias calculus and frame inference






For a while now I have  been engaged in  a core problem of software verification: the aliasing problem. As with many difficult problems in science, it is easy to state the basic question: can we determine automatically whether at a program point p the values of two reference expressions e and f can ever denote … Read more




The invariants of key algorithms (new paper)






  I have mentioned this paper before but as a draft. It has now been accepted by ACM’s Computing Surveys and is scheduled to appear in September 2014; the current text, revised from the previous version, is available [1]. Here is the abstract: Software verification has emerged as a key concern for ensuring the continued … Read more




Presentations at ICSE and VSTTE






  The following presentations from our ETH group in the ICSE week (International Conference on Software Engineering, San Francisco) address important issues of software specification and verification, describing new techniques that we have recently developed as part of our work building EVE, the Eiffel Verification Environment. One is at ICSE proper and the other at … Read more




LASER summer school: Software for the Cloud and Big Data






The 2013 LASER summer school, organized by our chair at ETH, will take place September 8-14, once more in the idyllic setting of the Hotel del Golfo in Procchio, on the island of Elba in Italy. This is already the 10th conference; the roster of speakers so far reads like a who’s who of software … Read more




The ABC of software engineering






Lack of a precise context can render discussions of software engineering and particularly of software quality meaningless. Take for example the (usually absurd) statement “We cannot expect that programmers will equip their programs with contracts”. Whom do you mean? A physicist who writes 50 lines of Matlab code to produce a graph illustrating his latest … 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




Loop invariants: the musical






  Actually it is not a musical but an extensive survey. I have long been fascinated by the notion of loop invariant, which describes the essence of a loop. Considering a loop without its invariant is like conducting an orchestra without a score. In this submitted survey paper written with Sergey Velder and Carlo Furia … Read more