This volume contains the papers presented at the latest Glasgow Workshop on Functional Programming, held in Portree on the Isle of Skye, 12-14 August 1991. These workshops have been held annually by the Glasgow Functional Programming group since 1988 and provide a valuable forum for members of the group and invited contributors from industry and other institutions to discuss current research work. The 29 papers contained in this volume, many of which have been rewritten since the original presentation, deal with both the theoretical and pragmatic aspects of functional programming, each paper summarising the central issues of its subject area. A variety of themes emerged from the workshop, including relational algebra and its application to hardware design, partial evaluation and program transformation, implementation techniques, and strictness analysis. Among the specific areas covered in this volume are: a new sharing mechanism for the TIM; evaluation order analysis for lazy data structures; extending deforestation for first order functional programs; a semantics for relational programming; abstractions in Ruby; and operational theories of improvement in functional languages. Functional Programming, Glasgow 1991 provides a comprehensive overview of current research in this field and will be of interest to anyone involved in the theory of functional programming or its application to practical problems.
A Parallel Functional Database on GRIP.- A New Sharing Mechanism for the TIM.- BWM: A Concrete Machine for Graph Reduction.- ACTRESS: An Action Semantics Directed Compiler Generator (Summary).- The Abstract Interpretation of Higher-Order Functional Languages: From Properties to Abstract Domains (Technical Summary).- A Note on the Choice of Domains for Projection-Based Program Analysis.- An Operational Model of Strictness Properties and its Abstractions (Extended Abstract).- A Novel Approach Towards Peephole Optimisations.- Evaluation Order Analysis for Lazy Data Structures.- Strictness Analysis Using Hindley-Milner Type Inference.- Extending Deforestation for First Order Functional Programs.- Efficient Type Inference Using Monads (Summary).- Generating More Practical Compilers by Partial Evaluation.- A Loop-Detecting Interpreter for Lazy Programs.- Making Functionality More General.- Getting Your Wires Crossed.- Implementing Projection-based Strictness Analysis.- Vuillemin's Exact Real Arithmetic.- A Semantics for Relational Programming.- From Primitive Recursive Functions to Silicon through Relations.- Functional Compilation from the Standard ML Core Language to Lambda Calculus.- TIP in Haskell - Another Exercise in Functional Programming.- Experiments in Haskell - A Network Simulation Algorithm.- Operational Theories of Improvement in Functional Languages (Extended Abstract).- Combining Single-Space and Two-Space Compacting Garbage Collectors.- External Function Calls in a Functional Language.- A Note on Abstraction in Ruby.- Requirements for a Functional Programming Environment.- Debugging by Dataflow - Summary.- Using XView/X11 from Miranda.- Author Index.