Topic: incremental execution

topics > computer science > programming > Group: debugging

compressed code
debugging techniques
dynamic code modification
execution tracing
execution with program stubs
immediate computation
incremental compilation
incremental development
incremental testing
intermediate representation of code
just-in-time compilation
load-time code generation
program execution
reversible execution
threaded code
undoing actions in a UserInterface


A lot of interactive debugging is done by slowly executing a program. Usually the execution is controlled by predefining breakpoints or by executing one instruction at a time. Teitelbaum (QuoteRef: teitT6_1979) has an interesting system where the executing program is displayed along with monitored variables. Sub-programs are executed at full speed while displayed instructions are executed slowly with the cursor showing the current location. The user can interrupt execution to further explore the system's state. Incremental execution allows you to detect errors when they occur. Repeated execution is used when the error is detected after it occurred. (cbb 5/80)
Subtopic: manual execution up

Quote: use check sheets to verify a routine experimentally; step through the routine, recording all details [»turiA3_1951]
Quote: use dummy stops to stop machine in between major operations [»turiA3_1951]
Quote: stepping through a program and comparing the results to a check sheet is the quickest way to find errors [»turiA3_1951]
Quote: the monitor tubes show the current state of the machine
Quote: check sheets will catch most errors if performed conscientiously; forget purpose and method of the machine to avoid anticipating a result [»turiA3_1951]

Subtopic: edit and debug up

Quote: interactive interpreters can inspect programs and data structures at any time
Quote: to single-step in Smalltalk; select one statement at a time and issue 'do it' [»teslL8_1981]
Quote: after recompiling a method within a Smalltalk breakpoint, can restart execution of any method on the stack [»teslL8_1981]
Quote: a Magpie programmer works with source code and execution state concurrently; combines editing and debugging [»deliNM5_1984]
Quote: in Magpie can edited and debug Pascal code at the same time [»deliNM5_1984]
Quote: Magpie uses compile-on-call; can execute code containing uncompiled procedures [»deliNM5_1984]
Quote: single-step in debugging Cornell_Program_Synthesizer programs can execute one step, one block, a statement list, a template, or a procedure [»teitT9_1981]

Subtopic: text as command up

Quote: text swept with the middle mouse button is executed on button release; any text may be a command [»pikeR1_1994]
Quote: Acme executes non-builtin commands in the window's directory; each window has related windows for standard output and standard error output [»pikeR1_1994]
Quote: releasing middle button executes the selected command; e.g., select text and middle-click on 'Cut' [»pikeR6_1991a]
Quote: all text is a potential command or argument; e.g., 'Open' a file name in the window's directory by clicking the left and middle buttons [»pikeR6_1991a]

Subtopic: visual execution up

Quote: ahead-of-time debugging: execute statements as they are typed and update the program state for test cases; better code faster; users liked it [»snelJL7_1997]
Quote: Cornell_Program_Synthesizer can reverse execution for a bounded number of steps; with tracing and monitoring, allows quick convergence to error [»teitT9_1981]
Quote: highlight each statement as execute it; execute suppressed refinements at full speed [»teitT6_1979]
Quote: the 'split' command displays the program and its input/output screen [»teitT6_1979]
Quote: breakpoint on instruction count useful for watchpoints and quasi-reverse execution (break prior to failure point) [»cargTA10_1987]

Subtopic: batch processing is better up

Quote: use batch processing if possible; more efficient and simpler error recovery

Related Topics up

Topic: compressed code (17 items)
Topic: debugging techniques (23 items)
Topic: dynamic code modification (15 items)
Topic: execution tracing (42 items)
Topic: execution with program stubs (5 items)
Topic: immediate computation (8 items)
Topic: incremental compilation (3 items)
Topic: incremental development (74 items)
Topic: incremental testing (26 items)
Topic: intermediate representation of code (31 items)
Topic: interpreter (59 items)
Topic: just-in-time compilation (20 items)
Topic: load-time code generation (13 items)
Topic: program execution (8 items)
Topic: reversible execution (20 items)
Topic: threaded code (18 items)
Topic: undoing actions in a UserInterface
(23 items)

Updated barberCB 6/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.