A Pattern Language for Extensible Program Representation [chapter]

Daniel Vainsencher, Andrew P. Black
2009 Lecture Notes in Computer Science  
For the last 15 years, implementors of multiple view programming environments have sought a single code model that would form a suitable basis for all of the program analyses and tools that might be applied to the code. They have been unsuccessful. The consequences are a tendency to build monolithic, single-purpose tools, each of which implements its own specialized analyses and optimized representation. This restricts the availability of the analyses, and also limits the reusability of the
more » ... esentation by other tools. Unintegrated tools also produce inconsistent views, which reduce the value of multiple views. This article describes a set of architectural patterns that allow a single, minimal representation of program code to be extended as required to support new tools and program analyses, while still maintaining a simple and uniform interface to program properties. The patterns address efficiency, correctness and the integration of multiple analyses and tools in a modular fashion.
doi:10.1007/978-3-642-10832-7_1 fatcat:zkxm64ifrnawrn4u4d75n7hkby