The Glasgow Functional Programming Workshops have been held annually since 1988, and provide an invaluable opportunity for the discussion of unresolved research issues, and for the presentation of current results. This volume is based on the proceedings of the 1993 workshop, which was held in Ayr, Scotland, from 5 - 7 July 1993. The papers cover the spectrum of functional programming research, including implementation, performance, parallelism, algorithms, and semantics. They reflect the current trend towards emphasis on practical issues, and also give several examples of how theoretical research can be successfully applied to practical programming. Among the actual topics covered are: projection-based termination analysis; deterministic concurrency; using strictness in the STG machine; distributed garbage collection of cyclic structures; bidirectional fold and scan; separating interaction; time profiling a lazy functional compiler; and solving recursive domain equations by term rewriting.
The Boom Hierarchy.- Factoring an Adequacy Proof (Preliminary Report).- Projection-Based Termination Analysis.- A Framework for Optimising Abstract Data Types.- Spiking Your Caches.- Experiments with Destructive Updates in a Lazy Functional Language (Extended Abstract).- The aim is Laziness in a Data-Parallel Language.- On the Comparative Evaluation of Parallel Languages and Systems: A Functional Note.- Deterministic Concurrency.- Using Strictness in the STG Machine.- The Implementer's Dilemma: A Mathematical Model of Compile Time Garbage Collection.- Functional Graph Algorithms with Depth-First Search (Preliminary Summary).- Distributed Garbage Collection of Cyclic Structures.- Update Avoidance Analysis by Abstract Interpretation.- Local Speculative Evaluation for Distributed Graph Reduction.- Bidirectional Fold and Scan.- Measuring the Effectiveness of a Simple Strictness Analyser.- Implementing Fudgets with Standard Widget Sets.- Profiling Parallel Functional Computations (Without Parallel Machines).- Time Profiling a Lazy Functional Compiler.- Solving Recursive Domain Equations by Term Rewriting.- Separating Interaction.- Author Index.