1 option
Program monitoring and visualization : an exploratory approach / Clinton L. Jeffery.
LIBRA QA76.65 .J45 1999
Available from offsite location
- Format:
- Book
- Author/Creator:
- Jeffery, Clinton L.
- Language:
- English
- Subjects (All):
- Visual programming (Computer science).
- Software engineering.
- Physical Description:
- xiv, 209 pages : illustrations (some color) ; 24 cm
- Place of Publication:
- New York : Springer-Verlag, [1999]
- Summary:
- In computer science, the primary application of visualization technology is software visualization: the use of graphics to portray information obtained from a static or dynamic analysis of a program. Software visualization is of particular interest in the back-end tasks of debugging, performance tuning, and understanding complex systems in order to maintain them, because these are the areas of software development associated with the highest costs.
- Unfortunately, the rate at which these software technologies have improved has been gradual. The task of writing software visualization tools is difficult, and most existing systems are limited to a narrow scope, such as the visualization of a single well-understood algorithm from a hand-instrumented source program.
- 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 is 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.
- Contents:
- I Fundamental Concepts 1
- 1.1 Understanding Program Behavior 4
- 1.2 Types of Program-Understanding Tools 5
- 1.3 Scope of This Book 6
- 1.4 Contributions 9
- 1.5 Overview of This Book 10
- 2 Related Work 11
- 2.1 Information Sources and Access Methods 12
- 2.2 Execution Models 12
- 2.3 User Interaction Facilities 13
- 2.4 Runtime Instrumentation Systems 14
- 2.4.1 Dbx 14
- 2.4.2 Dalek and Duel 15
- 2.4.3 Cdb and Deet 15
- 2.4.4 Parasight 16
- 2.4.5 FIELD 16
- 2.4.6 ATOM and EEL 17
- 2.5 Manual Instrumentation Systems 17
- 2.5.1 BALSA 17
- 2.5.2 Smalltalk 17
- 2.5.3 Tango 18
- 2.5.4 BEE++ 18
- 2.5.5 PV 19
- 2.6 Interpreter Instrumentation 19
- 2.6.1 SNOBOL4 19
- 2.6.2 PECAN 20
- 2.6.3 KAESTLE and FooScape 20
- 2.6.4 Dewlap 20
- 2.6.5 SeePS 21
- 2.6.6 Dynascope 21
- 2.7 Instrumenting Compilers 22
- 2.7.1 Voyeur 22
- 2.7.2 UW Illustrating Compiler 22
- 2.7.3 SMLD 23
- 2.8 Existing Systems Support for Monitor Development 23
- 3 Visualization Principles and Techniques 24
- 3.1 Principles 25
- 3.1.1 Graphic Design Principles 25
- 3.1.2 Visualization Principles 28
- 3.2 Techniques 32
- 3.2.1 Incremental Algorithms 33
- 3.2.2 Radial Coordinates 33
- 3.2.3 Colors and Textures 34
- II An Execution Monitoring Framework for Icon 39
- 4 An Overview of the Alamo Architecture 41
- 4.1 Inventory of Architecture Components 42
- 4.2 Standard Execution Monitoring Scenario 43
- 4.2.1 Preliminary Definitions 43
- 4.2.2 Sources of Relevant Execution Behavior 43
- 4.2.3 Selecting or Developing Appropriate Monitors 44
- 4.2.4 Running the Target Program 45
- 4.3 Framework Characteristics 46
- 4.3.1 Multitasking 46
- 4.3.2 Execution Control 49
- 4.3.3 Visualization Support 51
- 4.4 Comparison with Related Systems 52
- 5 A Multitasking Icon Interpreter 54
- 5.2 Co-expressions 55
- 5.2.1 Creating Co-expressions 55
- 5.2.2 Co-expression Transfers of Control 55
- 5.2.3 Co-expression Keywords 56
- 5.3 MT Icon Preliminary Terminology 56
- 5.3.1 Name Spaces 56
- 5.3.2 Program and Co-expression State 57
- 5.4 Tasks: An Extended Co-expression Model 57
- 5.4.1 Task Creation 58
- 5.4.2 Running Other Programs 58
- 5.5 Data Access 59
- 5.5.1 Access Through Task Argument Lists 59
- 5.5.2 Inter-task Access Functions 60
- 5.6 MT Icon Summary 61
- 6 Execution Monitoring in MT Icon 62
- 6.1 Terminology 62
- 6.1.1 Events 62
- 6.1.2 Event Codes and Values 63
- 6.1.3 Event Reporting and Masking 63
- 6.2 Obtaining Events Using evinit 64
- 6.2.1 Setting Up an Event Stream 64
- 6.2.2 EvGet() 65
- 6.2.3 Event Masks and Value Masks 65
- 6.3 Instrumentation in the Icon Interpreter 66
- 6.3.1 Explicit Source Related Events 67
- 6.3.2 Implicit Runtime System Events 67
- 6.4 Artificial Events 68
- 6.4.1 Virtual Events Using event() 68
- 6.4.2 Pseudo Events for Tool Communication 69
- 6.5 Monitoring Techniques 69
- 6.5.1 Anatomy of an Execution Monitor 69
- 6.5.2 Handling User Input 70
- 6.5.3 Querying the Target Program for More Information 71
- 6.6 Icon Graphics Capabilities 71
- 6.7 Some Useful Library Procedures 72
- 6.8 Typical Evolution of a Visualization Tool 73
- 6.8.1 Generate Log Files 73
- 6.8.2 Depict the Log Files 74
- 6.8.3 Scale to Handle Real Problems 74
- 6.8.4 Focus on Behaviors of Interest 74
- 6.8.5 Add User-Directed Navigation 75
- III Writing Visualization Tools 77
- 7 Following the Locus of Execution 79
- 7.1 Location Events 80
- 7.2 A Simple Line Number Monitor 80
- 7.3 A Location Profile Scatterplot 82
- 7.4 Tracking Source File Changes 84
- 8 Monitoring Procedure Activity 85
- 8.1 Activation Trees 86
- 8.2 An Animated Call-result Scatterplot 89
- 8.2.1 Scatlib 91
- 8.2.2 The Call-result Scatterplot Application 91
- 8.3 Algae 94
- 8.3.1 Algae Geometry 95
- 8.3.2 Using evaltree() to Incrementally Update the Display 97
- 8.3.3 Algae Controls 98
- 8.4 Maintaining the Current Source File 98
- 9 Monitoring Memory Usage 100
- 9.1 Allocation by Type 101
- 9.1.1 Pinwheel 101
- 9.1.2 Nova 102
- 9.2 Cumulative Allocation by Type 104
- 9.2.1 Animating a Bar Graph 105
- 9.2.2 Pie Charts 107
- 9.3 Running Allocation by Type 107
- 9.4 Survival Rates Across Collections 110
- 10 Monitoring String Scanning 111
- 10.1 Overview of String Scanning 111
- 10.2 String Scanning Events 112
- 10.3 Absolute and Relative Position Changes 113
- 10.3.1 Visualizing Absolute Positions Within the Subject 113
- 10.3.2 Visualizing Relative Position Changes 114
- 10.4 The Scanning Environment Tree 115
- 10.4.1 Updating Position in the Current Scanning Environment 117
- 10.4.2 Drawing Pinwheel Sectors for Scanning Functions 117
- 10.4.3 Pinwheels for Nested Scanning Environments 118
- 11 Monitoring Structure and Variable Usage 120
- 11.1 Visualizing Lists and List Accesses 120
- 11.2 Visualizing Heterogeneous Structures 125
- 11.3 Monitoring Variable References 127
- 11.3.1 Assignment Events 127
- 11.3.2 Monitoring Variables by Name 128
- 11.3.3 Monitoring Individual Variables 129
- 11.3.4 Detecting Structure Variable References 130
- IV Visualization in the Programming Environment 133
- 12 Monitor Coordination and Communication 135
- 12.1 Some Monitoring Configurations 135
- 12.2 Pros and Cons of the MC Approach 137
- 12.3 Eve: An Execution Monitor Coordinator 138
- 12.4 Writing EMs to Run Under Eve 139
- 12.4.1 Client Environment 139
- 12.4.2 General-Purpose Artificial Events 140
- 12.4.3 Monitor Communication Example 140
- 12.5 Eve in Operation 141
- 12.5.1 Computation of the Minimal Event Set 141
- 12.5.2 The Event Code Table 142
- 12.5.3 Event Handling 142
- 12.5.4 Eve's Main Loop 142
- 12.6 Interactive Error Conversion 143
- 13 Performance 145
- 13.1 Costs of Multitasking and of Interpreter Instrumentation 146
- 13.2 Varying Costs of Monitoring Language Features 147
- 13.3 Limitations of Graphics Hardware and Software 149
- 13.4 Cost Incurred by Monitor Coordinators 149
- 14 Conclusions and Future Work 151
- 14.1 Successes of the Framework 151
- 14.2 Limitations of the Framework 153
- 14.3 Enhancements and Future Directions 154
- 14.3.1 Update Variation in Simultaneous Animations 154
- 14.3.2 Concurrency Among Monitors 155
- 14.3.3 Integrating Monitors Into Coordinators 155
- 14.3.4 Integrating the Icon Interpreter and Compiler 156
- 14.3.5 More Execution Monitors 156
- 14.3.6 More Types of Events; Finer Selection Controls 156
- 14.3.7 Language Support for Trapped Variables 157
- 14.3.8 Preemptive Scheduling Monitor Coordinators 157
- 14.4 Final Thoughts 158
- A Algae 159
- B Eve 170
- C Event Codes 186
- C.1 Classes of Events 186
- C.2 Individual Events 187
- D The MT Icon Implementation 190
- D.1 Icon Interpreter Overview 190
- D.2 The MT Icon Core 191
- D.3 Monitoring Support 193
- E Software and Supporting Documentation 195.
- Notes:
- Includes bibliographical references (pages [197]-201) and index.
- ISBN:
- 0387986448
- OCLC:
- 39747095
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.