I became familiar with Ugo Montanari’s work while doing my PhD in computer graphics in the 1970s. I referred to three of his papers in my thesis, including his first publication. Forty years later, his work continues. Nearly 30 of his research students have become researchers; half of these have their own students, down to the third generation. This volume celebrates the wide and deep contributions that spring from Montanari’s inspiring leadership.
The 60 refereed contributions cover the topics that Montanari tackled after the 1960s; each of these areas has a separate section in the book: “Graph Transformations and Grammars,” “Constraint and Logic Programming,” “Software Engineering,” “Concurrency Theory,” “Models of Computation,” and “Software Verification.” A final section in the book is simply called “Friends”; it may be the best part for nonspecialists. Each section starts with an excellent summary of the history of the topic, and introduces the papers in the section.
The book is impossible to summarize. Each paper is a gem in its own right, as each seems to tackle a different problem. However, many papers have a similar structure. For example, in many papers, the authors give a context-free grammar of a formal language modeling some aspect of concurrency, provide rules for deducing types and equivalences, and then define the structural operational semantics for the language. This basis is used to prove the power (or weakness) of the model compared with other models. Other papers start by defining a special kind of category, and then relate it to some model of concurrent systems. Some papers are descriptions of new languages, tools, and techniques that are practical and relevant. For example, most of the papers in the section on software verification are about service-oriented computing. Another example is the use of the unified modeling language (UML) in the software engineering section.
Certain papers stand out in my memory: the description of the Ciao programming language; the demonstration of links between categories; Petri nets and quantum computation; the example of simple business modeling with the UML; the paper that proves the importance of bags in obtaining truly asynchronous systems; a paper showing how a textbook on automata and language theory can be based on algebraic equations; and the paper that reduces the differential equations for the behavior of heart muscle cells to finite state machines to ease the simulation of heart fibrillation. This is just a sample of the papers that I do not want to forget.
This book is for researchers. I will be sharing two papers with colleagues in my department who are interested, though they have not heard of Montanari. Some papers have preprints online, so that researchers can discover them by searching the Web. Studying the papers takes graduate-level knowledge of the background. Then, diligent effort is needed because none are trivial. Roughly 50 percent are close enough to the leading edge of research in their topic to be beyond my expertise. Many are not easy to read: they have small English errors, or they demand familiarity with abstract topics such as graphs, categories, semirings, Petri nets, and calculus of communicating systems (CCS). A reader who is not familiar with these kinds of ideas will find the papers challenging. The reference lists are long and well done. There is no index.
This is a unique resource. Any university with people working in its areas would be wise to have a copy on its shelves.