Master Course
Automatic Program Analysis


WebHome
- Education Page
- Description
- Literature
- Schedule
- Assignments
- Software

Center
Master Program

Monotone Frameworks Part Two

Apa0506

In short

In this assignment you take your solution and my comments from the first part and add to these the procedures and context as in Section 2.5. The resulting implementation should be able to handle the Embellished Monotone Frameworks of that section and offer easy to use functions for building such frameworks.

Relatively little information will be given, which means that you have quite a degree of freedom filling in the details, and making the right abstractions. One of the criteria for grading, is how you have handled these choices.

The assignment may be done alone or, preferably, in pairs. Every student should be able to explain orally and clearly every part of the assignment he hands in. The lecturer has the freedom to ask this explanation at any time, meaning that you might not be warned in advance.

Materials which you can use

Use your program submitted earlier as a starting point, and include my remarks on your implementation.

Deliverables

For this assignment I expect

  • the embellished monotone framework implementation (with procedures and context), fulfilling all the usual prerequisites such as being well-structured, well-documented and so on,
  • a (short) manual describing how to use the program,
  • a high level description of the architecture of your program including how you encoded monotone frameworks, adding context, transfer functions and the various other concepts from the chapter,
  • implement the Live Variable analysis based on your answers from Part 5 of the dataflow assignment. Give an example program with procedures which sufficiently illustrate your implementation. Show on paper that the results are what you expect (give the equations that should be generated, fill in the computed answers and show that the equations hold; show additionally that the computed answers are what you would expect for the given program).
  • extend the Detection Of Signs analysis to procedures (take a look at Example 2.36 for inspiration). Give an example program with procedures which sufficiently illustrates your implementation. Show on paper that the results are what you expect.

When and how to hand things in

See Course Assignments

Experiences from previous years

See the Experience section of MonotoneFrameworksPartOne.

Make sure that your system is general enough to handle contexts that are as arbitrary as possible. In many implementations the students stuck to using call strings for instance, although they could have made things more general. This was the major shortcoming last year. When you think about it, the big difference lies in the fact that a procedure entry and exit imply that information associated with a certain context value is transferred to information for a different context value. This is the major change and you should think carefully how to cope with it.

Also make sure that you have ways of lifting an ordinary monotone framework to an embellished one. I consider the interface to the people who want to build new analyses very important. The more you can simplify for such people the better (PS. I am not thinking in terms of buttons and such. In Haskell a good interface is a large number of easy to use functions for building a new analysis).

-- JurriaanHage - 15 Apr 2005