Program Monitoring and Visualization

An Exploratory Approach

Paperback Engels 2011 9781461274384
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

This book presents software visualization at a level suitable for a senior level undergraduate or graduate course, or for the interested technical professional. The approach is to give a survey of the field, and then present a specific research framework designed to reduce the effort required to write visualization tools. A wide range of simple program control flow and data structure visualizations are then presented as examples of how to obtain information about program behavior, and how to present it graphically. Source code fragments and screen images illustrate each example.

Specificaties

ISBN13:9781461274384
Taal:Engels
Bindwijze:paperback
Aantal pagina's:209
Uitgever:Springer New York
Druk:0

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Inhoudsopgave

I Fundamental Concepts.- 1 Introduction.- 1.1 Understanding Program Behavior.- 1.2 Types of Program-Understanding Tools.- 1.3 Scope of This Book.- 1.4 Contributions.- 1.5 Overview of This Book.- 2 Related Work.- 2.1 Information Sources and Access Methods.- 2.2 Execution Models.- 2.3 User Interaction Facilities.- 2.4 Runtime Instrumentation Systems.- 2.4.1 Dbx.- 2.4.2 Dalek and Duel.- 2.4.3 cdb and Deet.- 2.4.4 Parasight.- 2.4.5 FIELD.- 2.4.6 ATOM and EEL.- 2.5 Manual Instrumentation Systems.- 2.5.1 BALSA.- 2.5.2 Smalltalk.- 2.5.3 Tango.- 2.5.4 BEE++.- 2.5.5 PV.- 2.6 Interpreter Instrumentation.- 2.6.1 SNOBOL4.- 2.6.2 PECAN.- 2.6.3 KAESTLE and FooScape.- 2.6.4 Dewlap.- 2.6.5 SeePS.- 2.6.6 Dynascope.- 2.7 Instrumenting Compilers.- 2.7.1 Voyeur.- 2.7.2 UW Illustrating Compiler.- 2.7.3 SMLD.- 2.8 Existing Systems Support for Monitor Development.- 3 Visualization Principles and Techniques.- 3.1 Principles.- 3.1.1 Graphic Design Principles.- 3.1.2 Visualization Principles.- 3.2 Techniques.- 3.2.1 Incremental Algorithms.- 3.2.2 Radial Coordinates.- 3.2.3 Colors and Textures.- II An Execution Monitoring Framework for Icon.- 4 An Overview of the Alamo Architecture.- 4.1 Inventory of Architecture Components.- 4.2 Standard Execution Monitoring Scenario.- 4.2.1 Preliminary Definitions.- 4.2.2 Sources of Relevant Execution Behavior.- 4.2.3 Selecting or Developing Appropriate Monitors.- 4.2.4 Running the Target Program.- 4.3 Framework Characteristics.- 4.3.1 Multitasking.- 4.3.2 Execution Control.- 4.3.3 Visualization Support.- 4.4 Comparison with Related Systems.- 5 A Multitasking Icon Interpreter.- 5.1 Introduction.- 5.2 Co-expressions.- 5.2.1 Creating Co-expressions.- 5.2.2 Co-expression Transfers of Control.- 5.2.3 Co-expression Keywords.- 5.3 MT Icon Preliminary Terminology.- 5.3.1 Name Spaces.- 5.3.2 Program and Co-expression State.- 5.4 Tasks: An Extended Co-expression Model.- 5.4.1 Task Creation.- 5.4.2 Running Other Programs.- 5.5 Data Access.- 5.5.1 Access Through Task Argument Lists.- 5.5.2 Inter-task Access Functions.- 5.6 MT Icon Summary.- 6 Execution Monitoring in MT Icon.- 6.1 Terminology.- 6.1.1 Events.- 6.1.2 Event Codes and Values.- 6.1.3 Event Reporting and Masking.- 6.2 Obtaining Events Using evinit.- 6.2.1 Setting Up an Event Stream.- 6.2.2 EvGet().- 6.2.3 Event Masks and Value Masks.- 6.3 Instrumentation in the Icon Interpreter.- 6.3.1 Explicit Source Related Events.- 6.3.2 Implicit Runtime System Events.- 6.4 Artificial Events.- 6.4.1 Virtual Events Using event().- 6.4.2 Pseudo Events for Tool Communication.- 6.5 Monitoring Techniques.- 6.5.1 Anatomy of an Execution Monitor.- 6.5.2 Handling User Input.- 6.5.3 Querying the Target Program for More Information.- 6.6 Icon Graphics Capabilities.- 6.7 Some Useful Library Procedures.- 6.8 Typical Evolution of a Visualization Tool.- 6.8.1 Generate Log Files.- 6.8.2 Depict the Log Files.- 6.8.3 Scale to Handle Real Problems.- 6.8.4 Focus on Behaviors of Interest.- 6.8.5 Add User-Directed Navigation.- 6.9 Conclusions.- III Writing Visualization Tools.- 7 Following the Locus of Execution.- 7.1 Location Events.- 7.2 A Simple Line Number Monitor.- 7.3 A Location Profile Scatterplot.- 7.4 Tracking Source File Changes.- 8 Monitoring Procedure Activity.- 8.1 Activation Trees.- 8.2 An Animated Call-result Scatterplot.- 8.2.1 scatlib.- 8.2.2 The Call-result Scatterplot Application.- 8.3 Algae.- 8.3.1 Algae Geometry.- 8.3.2 Using evaltree() to Incrementally Update the Display.- 8.3.3 Algae Controls.- 8.4 Maintaining the Current Source File.- 9 Monitoring Memory Usage.- 9.1 Allocation by Type.- 9.1.1 Pinwheel.- 9.1.2 Nova.- 9.2 Cumulative Allocation by Type.- 9.2.1 Animating a Bar Graph.- 9.2.2 Pie Charts.- 9.3 Running Allocation by Type.- 9.4 Survival Rates Across Collections.- 10 Monitoring String Scanning.- 10.1 Overview of String Scanning.- 10.2 String Scanning Events.- 10.3 Absolute and Relative Position Changes.- 10.3.1 Visualizing Absolute Positions Within the Subject.- 10.3.2 Visualizing Relative Position Changes.- 10.4 The Scanning Environment Tree.- 10.4.1 Updating Position in the Current Scanning Environment.- 10.4.2 Drawing Pin wheel Sectors for Scanning Functions.- 10.4.3 Pinwheels for Nested Scanning Environments.- 10.5 Conclusions.- 11 Monitoring Structure and Variable Usage.- 11.1 Visualizing Lists and List Accesses.- 11.2 Visualizing Heterogeneous Structures.- 11.3 Monitoring Variable References.- 11.3.1 Assignment Events.- 11.3.2 Monitoring Variables by Name.- 11.3.3 Monitoring Individual Variables.- 11.3.4 Detecting Structure Variable References.- IV Visualization in the Programming Environment.- 12 Monitor Coordination and Communication.- 12.1 Some Monitoring Configurations.- 12.2 Pros and Cons of the MC Approach.- 12.3 Eve: An Execution Monitor Coordinator.- 12.4 Writing EMs to Run Under Eve.- 12.4.1 Client Environment.- 12.4.2 General-Purpose Artificial Events.- 12.4.3 Monitor Communication Example.- 12.5 Eve in Operation.- 12.5.1 Computation of the Minimal Event Set.- 12.5.2 The Event Code Table.- 12.5.3 Event Handling.- 12.5.4 Eve’s Main Loop.- 12.6 Interactive Error Conversion.- 13 Performance.- 13.1 Costs of Multitasking and of Interpreter Instrumentation.- 13.2 Varying Costs of Monitoring Language Features.- 13.3 Limitations of Graphics Hardware and Software.- 13.4 Cost Incurred by Monitor Coordinators.- 14 Conclusions and Future Work.- 14.1 Successes of the Framework.- 14.2 Limitations of the Framework.- 14.3 Enhancements and Future Directions.- 14.3.1 Update Variation in Simultaneous Animations.- 14.3.2 Concurrency Among Monitors.- 14.3.3 Integrating Monitors Into Coordinators.- 14.3.4 Integrating the Icon Interpreter and Compiler.- 14.3.5 More Execution Monitors.- 14.3.6 More Types of Events; Finer Selection Controls.- 14.3.7 Language Support for Trapped Variables.- 14.3.8 Preemptive Scheduling Monitor Coordinators.- 14.4 Final Thoughts.- Appendices.- A Algae.- B Eve.- C Event Codes.- C.1 Classes of Events.- C.2 Individual Events.- D The MT Icon Implementation.- D. 1 Icon Interpreter Overview.- D.2 The MT Icon Core.- D.3 Monitoring Support.- E Software and Supporting Documentation.- References.

Managementboek Top 100

Rubrieken

    Personen

      Trefwoorden

        Program Monitoring and Visualization