Master Course
Automatic Program Analysis
WebHome
-
Education Page
-
Description
-
Literature
-
Schedule and Slides
-
Assignments
-
Software
Center
Master Program
Center
Home
Courses
People
Projects
Page
Edit Page
Rename Page
Attach File
Printable
Wiki Source
More ...
Web
Recent Changes
Notify Service
News
Page Index
Search
More ...
Wiki
About TWiki
Text Formatting
Registration
Change Password
Reset Password
Users
Groups
Log In
or
Register
Monotone Frameworks Part Two
Apa
%TOC% ---+++ In short In this assignment you take your solution and my comments from the [[MonotoneFrameworksPartOne][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 <ul> <li>the embellished monotone framework implementation (with procedures and context), fulfilling all the usual prerequisites such as being well-structured, well-documented and so on,</li> <li>a (short) manual describing how to use the program,</li> <li>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,</li> <li>implement the Live Variable analysis based on your answers from Part 5 of the [[DataFlow][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). </li> <li>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. </li> </ul> ---+++ 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). -- Main.JurriaanHage - 15 Apr 2005