| Structuring depth-first search algorithms in Haskell |
| Full text |
Pdf
(1.10 MB)
|
| Source
|
Annual Symposium on Principles of Programming Languages
archive
Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
table of contents
San Francisco, California, United States
Pages: 344 - 354
Year of Publication: 1995
ISBN:0-89791-692-1
|
|
Authors
|
|
David J. King
|
Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, UK
|
|
John Launchbury
|
Department of Computer Science and Engineering, Oregon Graduate Institute of Science & Technology, Beaverton, Oregon
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 14, Downloads (12 Months): 92, Citation Count: 7
|
|
|
ABSTRACT
Depth-first search is the key to a wide variety of graph algorithms. In this paper we express depth-first search in a lazy functional language, obtaining a linear-time implementation. Unlike traditional imperative presentations, we use the structuring methods of functional languages to construct algorithms from individual reusable components. This style of algorithm construction turns out to be quite amenable to formal proof, which we exemplify through a calculational-style proof of a far from obvious strongly-connected components algorithm.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Paul S. Barth , Rishiyur S. Nikhil , Arvind Nikhil, M-structures: extending a parallel, non-strict, functional language with state, Proceedings of the 5th ACM conference on Functional programming languages and computer architecture, p.538-568, June 1991, Cambridge, Massachusetts, United States
|
| |
2
|
|
| |
3
|
|
| |
4
|
|
| |
5
|
|
| |
6
|
|
 |
7
|
|
 |
8
|
Paul Hudak , Simon Peyton Jones , Philip Wadler , Brian Boutel , Jon Fairbairn , Joseph Fasel , María M. Guzmán , Kevin Hammond , John Hughes , Thomas Johnsson , Dick Kieburtz , Rishiyur Nikhil , Will Partain , John Peterson, Report on the programming language Haskell: a non-strict, purely functional language version 1.2, ACM SIGPLAN Notices, v.27 n.5, p.1-164, May 1992
[doi> 10.1145/130697.130699]
|
| |
9
|
Kashiwagi, Y. and Wise, D. S. (1991), Graph algorithms in a lazy functional programming language, in 'Proceedings of the 4'th International Symposium on Lucid and intensional Programming', pp. 35-46. Also available as Technical Report Number 330, Computer Science Department, Indiana University.
|
| |
10
|
Launchbury, J. (1993), Lazy imperative programming, in 'Workshop on State in Programming Languages', ACM SIGPLAN, Copenhagen, Denmark, pp. 46-56.
|
 |
11
|
|
| |
12
|
|
| |
13
|
|
| |
14
|
|
 |
15
|
|
| |
16
|
Reif, J. H. (1985), 'Depth-first search is inherently sequentiM', Information Processing Letters 20, 229-234.
|
| |
17
|
Sands, D. (1993), A nai've time analysis and its theory of cost equivalence, TOPPS report D-173, DIKU, University of Copenhagen, Denmark.
|
| |
18
|
Sharir, M. (1981), 'A strong-connectivity algorithm and its applications in data flow analysis', Computers and mathematics with applications 7(1), 67-72.
|
| |
19
|
Tarjan, R. E. (1972), 'Depth-first search and linear graph algorithms', SIAM Journal of Computing 1(2), 146- 160.
|
 |
20
|
|
CITED BY 7
|
|
|
|
|
Jeffrey R. Lewis , John Launchbury , Erik Meijer , Mark B. Shields, Implicit parameters: dynamic scoping with static types, Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.108-118, January 19-21, 2000, Boston, MA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|