Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

LA Circular Programs 1 .so /staff/lloyd/specsyms

Summary: LA Circular Programs ­1­
.so /staff/lloyd/specsyms
Circular Programs and Self­Referential Structures.
Lloyd Allison
Department of Computer Science
Monash University
Australia 3168.
uucp: lloyd@bruce.cs.monash.edu.au
written: 17 November 1987
revised: 17 May and 18 August 1988
Appeared in Software Practice and Experience 19(2) 99­109 Feb 1989.
Abstract: A circular program creates a data structure whose computation depends upon itself or refers to
itself. The technique is used to implement the classic data structures circular and doubly­linked lists,
threaded trees and queues, in a functional programming language. These structures are normally thought to
require updatable variables found in imperative languages. For example, a functional program to perform
the breadth­first traversal of a tree is given. Some of the examples result in circular data structures when
evaluated. Some examples are particularly space­efficient by avoiding the creation of intermediate
temporary structures which would otherwise later become garbage. Lastly, the technique can be applied in


Source: Allison, Lloyd - Caulfield School of Information Technology, Monash University


Collections: Computer Technologies and Information Sciences