Due: Midnight, Mar 6
Purpose: The goal of this problem set is to practice designing and implementing basic program analysis techniques for simple models of languages.
Design and implement an abstract interpreter for the B language that uses intervals to represent abstract values. Most of this has been done for you with the i reduction relation from the notes, although you will have to solve (what is currently) exercise 21: Design the best, sound definition of i for Div.
Turn in a definition of the i relation for Div (plain text is fine) and an implementation of the abstract evaluator. You may use any programming you choose, but the program should be well documented enough that it is easy for someone else to read, run, and test your program.