Smart Contracts – A Killer Application for Deductive Source Code Verification.- A Methodology for Invariants, Framing, and Subtyping in JML.- Trends in Relational Program Verification.- Collaborative work management with a highly-available Kanban board.- A Case for Certifying Compilers in Industrial Automation.- Compositional Semantics for Concurrent Object Groups in ABS.- Same Same But Different: Interoperability of Software Product Line Variants.- A Hoare Logic Contract Theory An Exercise in Denotational Semantics.- Towards Reliable Concurrent Software.- Dynamic Software Updates and Context Adaptation for Distributed Active Objects.- Using CSP to Develop Quality Concurrent Software.- Modular Verification Scopes via Export Sets and Translucent Exports.- The Binomial Heap Verification Challenge in Viper.- Abstract and Concrete Data Types vs Object Capabilities.- A Personal History of Delta Modelling.- Are Synchronous Programs Logic Programs?.- Illi Isabellistes Se Custodes Egregios Praestabant.- Reasoning about Weak Semantics via Strong Semantics.- Recipes for Coffee — Compositional Construction of JAVA Control Flow Graphs in GROOVE.
Peter Müller is Full Professor and Head of the Chair of Programming Methodology at ETH Zurich since August 2008. His research focuses on languages, techniques, and tools for the development of correct software. His previous appointments include a position at Microsoft Research in Redmond, an Assistant Professorship at ETH Zurich, and a position at Deutsche Bank in Frankfurt.
Ina Schaefer is Full Professor and Head of the Institute of Software Engineering and Automotive Informatics at TU Braunschweig since April 2012. Her research focus is software variability and software evolution in all phases of software development, in particular in quality assurance and re-engineering. Previously, she was postdoc at Chalmers University of Technology in Gothenburg, Sweden. She completed her PhD in 2008 at TU Kaiserslautern, supervised by Arnd Poetzsch-Heffter.
This book presents a collection of research papers that address the challenge of how to develop software in a principled way that, in particular, enables reasoning. The individual papers approach this challenge from various perspectives including programming languages, program verification, and the systematic variation of software. Topics covered include programming abstractions for concurrent and distributed software, specification and verification techniques for imperative programs, and development techniques for software product lines.
With this book the editors and authors wish to acknowledge – on the occasion of his 60th birthday – the work of Arnd Poetzsch-Heffter, who has made major contributions to software technology throughout his career. It features articles on Arnd’s broad research interests including, among others, the implementation of programming languages, formal semantics, specification and verification of object-oriented and concurrent programs, programming language design, distributed systems, software modeling, and software product lines. All contributing authors are leading experts in programming languages and software engineering who have collaborated with Arnd in the course of his career.
Overall, the book offers a collection of high-quality articles, presenting original research results, major case studies, and inspiring visions. Some of the work included here was presented at a symposium in honor of Arnd Poetzsch-Heffter, held in Kaiserslautern, Germany, in November 2018.