Generation of Program Analysis Tools

Generation of Program Analysis Tools

Generation of Program Analysis Tools Frank Tip Generation of Program Analysis Tools ILLC Dissertation Series institute for logic, language and computation For further information ab out ILLCpublications please contact Institute for Logic Language and Computation Universiteit van Amsterdam Plantage Muidergracht TV Amsterdam phone fax email illcfwiuvanl Generation of Program Analysis Tools Academisch Proefschrift ter verkrijging van de graad van doctor aan de Universiteit van Amsterdam, op gezag van de Rector Magnificus prof. dr P.W.M. de Meijer ten overstaan van een door het college van dekanen ingestelde commissie in het openbaar te verdedigen in de Aula der Universiteit (Oude Lutherse Kerk, ingang Singel 411, hoek Spui), op vrijdag 17 maart 1995 te 15.00 uur door Frank Tip geboren te Alkmaar. Promotor prof dr P Klint Copromotor dr JH Field Faculteit Wiskunde en Informatica CIPGEGEVENS KONINKLIJKE BIBLIOTHEEK DEN HAAG Tip Frank Generation of program analysis to ols Frank Tip Amsterdam Institute for Logic Language and Computation Ill ILLC dissertation series Pro efschrift Universiteit van Amsterdam ISBN NUGI Trefw programmeertalen computerprogrammas analyse c Frank Tip Cover design by ET Zandstra Printed by CopyPrint Enschede The Netherlands The research presented in this thesis was supp orted in part by the Europ ean Union pro ject Compiler Generation for Parallel Machines under ESPRIT COMPARE Contents Overview Motivation Sourcelevel debugging Program slicing Algebraic sp ecications Organization of this thesis Origins of the chapters Origin Tracking Intro duction Applications of origin tracking Points of departure Origin relations Formal denition Basic concepts for unconditional TRSs A formalized notion of a rewriting history The origin function for unconditional TRSs Basic concepts for CTRSs Rewriting histories for CTRSs The origin function for CTRSs Prop erties Implementation asp ects The basic algorithm Optimizations Asso ciative lists Sharing of subterms Restricting origin tracking to selected sorts Time and space overhead of origin tracking vii viii Contents Related work Concluding remarks Achievements Limitations Applications A Survey of Program Slicing Techniques Overview Static slicing Dynamic slicing Applications of slicing Related work Organization of this chapter Data dep endence and control dep endence Metho ds for static slicing Basic algorithms Pro cedures Unstructured control ow Comp osite data typ es and pointers Concurrency Comparison Metho ds for dynamic slicing Basic algorithms Pro cedures Comp osite data typ es and pointers Concurrency Comparison Applications of program slicing Debugging and program analysis Program dierencing and program integration Software maintenance Testing Tuning compilers Other applications Recent developments Conclusions Static slicing algorithms Dynamic slicing algorithms Applications Recent developments Contents ix Dynamic Dep endence Tracking Intro duction Overview Motivating examples Denition of a slice Relation to origin tracking Basic denitions Signatures paths context domains Contexts Term rewriting and related relations Substitutions and term rewriting systems Context rewriting Residuation and creation A dynamic dep endence relation Example Pro jections subreductions Formal prop erties of slices Uniqueness of slices Preservation of top ology The relation b etween Slice and Pro ject Soundness and minimality Nonlinear rewriting systems Formal denitions for nonlinear systems Example slicing in a nonlinear system Nonlinear systems and optimality Implementation Related work Future work Parametric Program Slicing Intro duction Overview Motivating example Slicing via rewriting Term slices and parseable slices More examples Term rewriting and dynamic dep endence tracking Ecient implementation of term rewriting tracking slicing PIM dynamic dep endence translation C to PIM Overview of PIM rewriting and elimination of dep endences PIM Reduction of unconstrained and constrained slices x Contents Slicing and reduction strategies Slicing at intermediate program p oints Conditional constraints Complexity tradeos Variations on a lo oping theme lo op execution rules pure dynamic slicing rules lazy dynamic slicing lo op splitting rules static lo op slicing lo op invariance rules invariancesensitiveslicing Pragmatics Prop erties of graph reduction Alternative translation algorithms Chain rules Related work Future work Generation of SourceLevel Debugging To ols Intro duction .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    220 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us