## Deriving Efficient Graph Algorithms (1984)

Venue: | Carnegie Mellon University, Pittsburgh |

Citations: | 2 - 0 self |

### BibTeX

@INPROCEEDINGS{Reif84derivingefficient,

author = {John Reif and William Scherlis},

title = {Deriving Efficient Graph Algorithms},

booktitle = {Carnegie Mellon University, Pittsburgh},

year = {1984},

pages = {421--441},

publisher = {Springer-Verlag}

}

### OpenURL

### Abstract

Two case studies are presented that demonstrate the systematic derivation of e#cient algorithms from simple combinatorial definitions.

### Citations

2564 |
h~ Design and Analysis of Computer Algorithms
- Hopcroft, Ullman
- 1974
(Show Context)
Citation Context ...ferent ways in the strong-connectivity algorithms of Section 3 and in the biconnectivity algorithms of Section 4. These algorithms were discovered by Hopcroft and Tarjan and are presented in [20] and =-=[1] i-=-n conventional fashion. The variant of Tarjan’s strong-connectivity algorithm that we derive in Section 4 is attributed to Kosaraju and is similar to the algorithm sketched in [2]. (Similar techniqu... |

1093 | Depth-first search and linear graph algorithms
- Tarjan
- 1972
(Show Context)
Citation Context ...quite different ways in the strong-connectivity algorithms of Section 3 and in the biconnectivity algorithms of Section 4. These algorithms were discovered by Hopcroft and Tarjan and are presented in =-=[20] a-=-nd [1] in conventional fashion. The variant of Tarjan’s strong-connectivity algorithm that we derive in Section 4 is attributed to Kosaraju and is similar to the algorithm sketched in [2]. (Similar ... |

978 |
Negation as Failure
- Clark
- 1978
(Show Context)
Citation Context ...icit mechanism to track redundant calls (including calls in progress) and committing to order of evaluation. Closure definitions are related to “closed-world” database techniques such as described=-= in [7]-=- and [15].s650 John H. Reif and William L. Scherlis We carry out these transformations by introducing implicit state change into our language of recursive definitions. In the case of path, this involv... |

771 |
Data Structures and Algorithms
- Aho, Hopcroft, et al.
- 1983
(Show Context)
Citation Context ...sented in [20] and [1] in conventional fashion. The variant of Tarjan’s strong-connectivity algorithm that we derive in Section 4 is attributed to Kosaraju and is similar to the algorithm sketched i=-=n [2]-=-. (Similar techniques can be used to derive the almost-linear-time algorithms of [21] for flow-graph reducibility.) In the conclusion we discuss further the implications of this work. Features of the ... |

605 | A transformation system for developing recursive programs
- Burstall, Darlington
- 1977
(Show Context)
Citation Context ...losure definitions, such as specification of path above, into more conventional definitions. In addition, we make use of the transformations of [19] (which are similar in spirit to those described in =-=[6], but -=-for which there is a guarantee of strong equivalence—see [17], [22]) in order to specialize function definitions and to effect the merging or “jamming” of loops. Discussion of loop jamming techn... |

284 |
On Closed World Data Bases
- Reiter
- 1978
(Show Context)
Citation Context ...hanism to track redundant calls (including calls in progress) and committing to order of evaluation. Closure definitions are related to “closed-world” database techniques such as described in [7] =-=and [15]-=-.s650 John H. Reif and William L. Scherlis We carry out these transformations by introducing implicit state change into our language of recursive definitions. In the case of path, this involves introd... |

150 |
editor. Synthesis of Parallel Algorithms
- Reif
- 1993
(Show Context)
Citation Context ...forward than structural analogy with existing algorithms. Work such as reported here on sequential algorithms led to later work in the 1980s and 1990s on the derivation of parallel algorithms such as =-=[14]-=- and [16]. There are challenges associated with the transformational approach to presentation. The manipulations are ultimately formal, and it continues to be difficult to suppress detail and make lar... |

116 | Finite differencing of computable expressions
- PAIGE, KOENI6
- 1980
(Show Context)
Citation Context ...here is a guarantee of strong equivalence—see [17], [22]) in order to specialize function definitions and to effect the merging or “jamming” of loops. Discussion of loop jamming techniques appea=-=rs in [13]. -=-(This paper is self-contained—no prior knowledge of the details of the above is required to follow the derivations.) The programming language we use is an ML-like applicative language with imperativ... |

82 |
Testing flow graph reducibility
- Tarjan
- 1974
(Show Context)
Citation Context ...ctivity algorithm that we derive in Section 4 is attributed to Kosaraju and is similar to the algorithm sketched in [2]. (Similar techniques can be used to derive the almost-linear-time algorithms of =-=[21]-=- for flow-graph reducibility.) In the conclusion we discuss further the implications of this work. Features of the algorithmic language we use and the various program manipulation techniques are prese... |

69 |
Tabulation Techniques for Recursive Programs
- Bird
- 1980
(Show Context)
Citation Context ...al formal transformation techniques. We make use of transformations for realizing complex recursive control structure as explicit data structure that are similar to those described in [18], [23], and =-=[5]-=-. These transformations ares648 John H. Reif and William L. Scherlis used to transform closure definitions, such as specification of path above, into more conventional definitions. In addition, we mak... |

54 | Continuation-based program transformation strategies
- Wand
- 1980
(Show Context)
Citation Context ...n the actual formal transformation techniques. We make use of transformations for realizing complex recursive control structure as explicit data structure that are similar to those described in [18], =-=[23]-=-, and [5]. These transformations ares648 John H. Reif and William L. Scherlis used to transform closure definitions, such as specification of path above, into more conventional definitions. In additio... |

39 |
Synthesis: dreams ! programs
- Manna, Waldinger
- 1979
(Show Context)
Citation Context ...n techniques such as those refined and applied here and elsewhere may ultimately be of practical use in mechanical refactoring aids designed to help the programmer in his or her daily activity. As in =-=[11]-=- and [12], we are deriving a family of related algorithms. Even though the algorithms we derive here do not all have the same specifications, the strong relations between them become manifest in the e... |

35 |
Deductive synthesis of the unification algorithm
- Manna, Waldinger
- 1981
(Show Context)
Citation Context ...ues such as those refined and applied here and elsewhere may ultimately be of practical use in mechanical refactoring aids designed to help the programmer in his or her daily activity. As in [11] and =-=[12]-=-, we are deriving a family of related algorithms. Even though the algorithms we derive here do not all have the same specifications, the strong relations between them become manifest in the explicit s... |

30 |
Program improvement by internal specialization
- Scherlis
- 1981
(Show Context)
Citation Context ...John H. Reif and William L. Scherlis used to transform closure definitions, such as specification of path above, into more conventional definitions. In addition, we make use of the transformations of =-=[19] (-=-which are similar in spirit to those described in [6], but for which there is a guarantee of strong equivalence—see [17], [22]) in order to specialize function definitions and to effect the merging ... |

24 |
On program synthesis knowledge
- Green, Barstow
- 1978
(Show Context)
Citation Context ...ivations. Indeed, it appears that reasoning by analogy may play an important role in the automation of these techniques. Other examples and approaches to program derivation are described in [8], [3], =-=[10]-=-, and [4], among others. 2 Depth-First Search We start by deriving a family of simple depth-first search algorithms. These derivations and the algorithms that result will be used, either directly or b... |

18 |
Expression Procedures and Program Derivation
- Scherlis
- 1980
(Show Context)
Citation Context ...rily on the actual formal transformation techniques. We make use of transformations for realizing complex recursive control structure as explicit data structure that are similar to those described in =-=[18]-=-, [23], and [5]. These transformations ares648 John H. Reif and William L. Scherlis used to transform closure definitions, such as specification of path above, into more conventional definitions. In a... |

16 |
Algorithm classification through synthesis
- Clark, Darlington
- 1980
(Show Context)
Citation Context ... their derivations. Indeed, it appears that reasoning by analogy may play an important role in the automation of these techniques. Other examples and approaches to program derivation are described in =-=[8]-=-, [3], [10], and [4], among others. 2 Depth-First Search We start by deriving a family of simple depth-first search algorithms. These derivations and the algorithms that result will be used, either di... |

7 | Higher-Order Expression Procedures
- Sands
- 1995
(Show Context)
Citation Context ... conventional definitions. In addition, we make use of the transformations of [19] (which are similar in spirit to those described in [6], but for which there is a guarantee of strong equivalence—se=-=e [17], [22]-=-) in order to specialize function definitions and to effect the merging or “jamming” of loops. Discussion of loop jamming techniques appears in [13]. (This paper is self-contained—no prior knowl... |

6 |
Parallel Algorithm Derivation and Program Transformation
- Paige, Reif, et al.
- 1993
(Show Context)
Citation Context ...han structural analogy with existing algorithms. Work such as reported here on sequential algorithms led to later work in the 1980s and 1990s on the derivation of parallel algorithms such as [14] and =-=[16]-=-. There are challenges associated with the transformational approach to presentation. The manipulations are ultimately formal, and it continues to be difficult to suppress detail and make large steps.... |

4 |
Analogy in program development
- Dietzen, Scherlis
- 1987
(Show Context)
Citation Context ... among others. 2 Depth-First Search We start by deriving a family of simple depth-first search algorithms. These derivations and the algorithms that result will be used, either directly or by analogy =-=[9]-=-, in the later derivations. The development in the first part of this section is identical for directed and undirected graphs. We carry out the development for directed graphs and consider undirected ... |

3 | Shifting expression procedures into reverse
- Tullsen, Hudak
- 1999
(Show Context)
Citation Context ...ntional definitions. In addition, we make use of the transformations of [19] (which are similar in spirit to those described in [6], but for which there is a guarantee of strong equivalence—see [17]=-=, [22]) in o-=-rder to specialize function definitions and to effect the merging or “jamming” of loops. Discussion of loop jamming techniques appears in [13]. (This paper is self-contained—no prior knowledge o... |

2 |
The roles of knowledge and deduction in algorithm design
- Barstow
- 1980
(Show Context)
Citation Context ...r derivations. Indeed, it appears that reasoning by analogy may play an important role in the automation of these techniques. Other examples and approaches to program derivation are described in [8], =-=[3]-=-, [10], and [4], among others. 2 Depth-First Search We start by deriving a family of simple depth-first search algorithms. These derivations and the algorithms that result will be used, either directl... |

1 |
et al. Programming in a wide spectrum language: a collection of examples
- Bauer
- 1981
(Show Context)
Citation Context ...Indeed, it appears that reasoning by analogy may play an important role in the automation of these techniques. Other examples and approaches to program derivation are described in [8], [3], [10], and =-=[4]-=-, among others. 2 Depth-First Search We start by deriving a family of simple depth-first search algorithms. These derivations and the algorithms that result will be used, either directly or by analogy... |