This directory contains files for Technical Report CSRG-414, entitled "SHADOW: A framework for creating high-level program analysis tools", by Arie Gurfinkel and Eugene Nudelman. The contents of the directory are as follows: 0) README (2 KB -- the ASCII file you are currently reading) 1) tr-414.ps (29 MB -- the PostScript version of the report) 2) tr-414.ps.gz (587 KB -- the PostScript compressed with "gzip") If you have the UNIX "gunzip" program, get the file "tr-414.ps.gz". Remember to transfer the file in binary mode. After the transfer, use "gunzip" to extract the original document, then print it on a PostScript printer. If you do not have either of the programs above, get the file "tr-414.ps" in ASCII mode and print it on a PostScript printer. Should you have any questions or comments about this technical report, please contact chechik@cs.toronto.edu. SHADOW A framework for creating high-level program analysis tools Arie Gurfinkel arie@aguga.net Eugene Nudelman eugnud@home.com This report summarizes the work that has been done in the undergraduate project in computer science by Arie Gurfinkel, and Eugene Nudelman at the University of Toronto. The project was conducted under the supervision of Prof. Marsha Chechik. There are currently a large number of tools available to analyze programs. These tools are very diverse and range from simple profilers to very complicated algorithm visualization and software verification packages. However, as it stands now, there is no general framework to aid in creation of such tools. These tools are usually hard to create and can be even harder to use. They are targeted towards large applications and tend to have a very steep learning curve. During this project we have addressed the needs of a program developer, who requires a set of simple tools to create a custom program analysis package. The result of this project is a framework called SHADOW. This report describes the framework and presents a number of case studies we have conducted to evaluate its potential.