The program analyzer generator PAG described in this paper attempts to offer the best of both worlds, specification languages based on the clean theory of abstract interpretation and efficient implementation methods from the theory of data flow analysis. PAG has a high level functional input language to specify data flow analyses. It offers the generation of complex data structures and is therefore not limited to bit vector problems. PAG generated interprocedural analyzers can be easily integrated into existing compilers.
PAG has successfully been used in the ESPRIT project COMPARE to generate several analyzers (including alias analysis and constant propagation) for industrial quality ANSI-C and Fortran90 compilers, and is now marketed by the spin-off company AbsInt.A simplified version of PAG can be interactively tested over the Web.
This is a preview of subscription content, access via your institution.
Buy single article
Instant access to the full article PDF.
Price includes VAT (USA)
Tax calculation will be finalised during checkout.
About this article
Cite this article
Martin, F. PAG – an efficient program analyzer generator. STTT 2, 46–67 (1998). https://doi.org/10.1007/s100090050017
- Key words: Data flow analysis – Specification and generation of analyzers – Abstract interpretation – Interprocedural analysis – Compiler construction