TOP
Search the Dagstuhl Website
Looking for information on the websites of the individual seminars? - Then please:
Not found what you are looking for? - Some of our services have separate websites, each with its own search option. Please check the following list:
Schloss Dagstuhl - LZI - Logo
Schloss Dagstuhl Services
Seminars
Within this website:
External resources:
  • DOOR (for registering your stay at Dagstuhl)
  • DOSA (for proposing future Dagstuhl Seminars or Dagstuhl Perspectives Workshops)
Publishing
Within this website:
External resources:
dblp
Within this website:
External resources:
  • the dblp Computer Science Bibliography


Research Meeting 98451

Advanced Course on the "Principles of Program Analysis"

( Nov 09 – Nov 13, 1998 )

Permalink
Please use the following short url to reference this page: https://www.dagstuhl.de/98451

Organizers
  • C. Hankin (London)
  • F. Nielson (Aarhus)
  • H. Riis Nielson (Aarhus)



Summary

Program analysis is a collection of techniques for predicting safe and computable properties of programs without actually running them; properties that can be guaranteed to hold for any subsequent execution of the programs. The techniques are firmly based on the semantics of the programs and they are fully automatic. Program analysis has traditionally been used in optimising compilers: to predict cases that can never appear (no code is needed), to keep track of data that already have been computed (no need for recomputation), and to exploit different machine architectures (faster and more specialised code).

Recently, program analysis techniques have successfully been used to validate the safety of software. With the explosive development of the World Wide Web there is a strong demand for guaranteeing safety properties: we simply need to reduce the likelihood of malicious or unintended behaviour. Similar considerations apply to software procured from subcontractors. Safety properties are also of paramount importance in the construction of embedded systems software. Not surprisingly, this development has lead to a number of research projects in the US and in Europe - these projects address problems spanning the industrial, commercial and military sector.

The purpose of this seminar was to give an introduction to four of the main techniques for program analysis:

  • Data Flow Analysis (widely used in the US and Europe),
  • Control Flow Analysis (mainly developed in the US),
  • Abstract Interpretation (mainly developed in France and used by the French Government), and
  • Types and Effects (mainly developed in Europe).

Each of the techniques have been developed by different communities and have a quite extensive literature. The seminar showed that nonetheless there is a large amount of commonality among the approaches - this should help in cultivating the ability to choose the right approach for the task at hand and also in enhancing the power of one approach by exploiting insights developed in other approaches. In the seminar were presented the theoretical foundations for the approaches as well as the main algorithmic techniques needed to construct automatic tools; it was also possible to experiment with existing tools for program analysis.

The seminar is based on a book on "Principles of Program Analysis" by Flemming Nielson, Hanne Riis Nielson and Chris Hankin who also gave the lectures.