My Account Log in

1 option

Program monitoring and visualization : an exploratory approach / Clinton L. Jeffery.

LIBRA QA76.65 .J45 1999
Loading location information...

Available from offsite location This item is stored in our repository but can be checked out.

Log in to request item
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.

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Library Catalog Using Articles+ Library Account