% Time-stamp: % (C) 1998 Hans-Wolfgang Loidl, University of Glasgow % (C) 1999 Hans-Wolfgang Loidl, Heriot-Watt University, Edinburgh % % Author: $Author: hwloidl $ % Date: $Date: 2000/07/03 13:58:26 $ % Revision: $Revision: 1.3 $ % % Bibtex entries for all papers in GlaFp workshops since 1988. % There are likely to be key clashes with stat-an.bib and ws-pfp.bib. % % Format of keys: _glafp % where is the full lower case name of the 1st author % and is the 2-digit year. % % ToDo: % - Check keys % - Add contens of GlaFp94 and GlaFp98 proceedings % - Add more links to people & general paper pages % % Changelog: % $Log: GlaFp.bib,v $ % Revision 1.3 2000/07/03 13:58:26 hwloidl % General clean-up of entries. Still need entries for GlaFp94 and GlaFp98. % % Revision 1.2 1998/02/17 19:30:45 hwloidl % Added entries for papers in the GlaFp97 draft proceedings % % --------------------------------------------------------------------------- %$%menu %* General information:: %* 1988:: %* 1989:: %* 1990:: %* 1991:: %* 1992:: %* 1993:: %* 1994:: %* 1995:: %* 1996:: %* 1997:: %* The End:: %$%end menu %$%node top, General information, (dir), (dir) %$%top @String{S-V = "Springer-Verlag"} @String{WIC = "Workshops in Computing"} @String{EWIC = "Electronic Workshops in Computing"} @String{DEPGLA = "Department of Computing Science"} @String{UNIGLA = "University of Glasgow"} @String{WSTITLE = "Glasgow Workshop on Functional Programming"} %$%node General information, 1988, top, top %$%section General information @Misc{WWW-Glaswegians, key = {Glaswegians}, title = {Members of the Glasgow FP Group}, howpublished = {WWW page}, year = 1998, month = {January}, annote = {date fields mean ``valid at''}, url = {http://www.dcs.glasgow.ac.uk/fp/members.html}, } @Misc{WWW-HomeFp, key = {HomeFp}, title = {Functional Programming at Glasgow}, howpublished = {WWW page}, note = {Home page of the Glasgow Functional Programming Group}, year = 1998, month = {January}, annote = {date fields mean ``valid at''}, url = {http://www.dcs.gla.ac.uk/fp/}, } % --------------------------------------------------------------------------- %$%node 1988, 1989, General information, top %$%section 1988 % --------------------------------------------------------------------------- @Proceedings{GlaFp88, title = WSTITLE, year = 1989, editor = {C.V. Hall and R.J.M. Hughes and J.T. O'Donnell}, address = {Rothesay, Isle of Bute, Scotland}, month = feb, note = {Computing Science Department Research Report 89/R4}, url = {http://www.dcs.gla.ac.uk/fp/workshops/workshop-titles88.html} } @InProceedings{baraki_glafp88, author = {Gebreselassie Baraki}, title = {{The Denotation of Polymorphic Objects}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {1--7}, note = {Research Report 89/R4} } @InProceedings{cole_glafp88, author = {Murray I. Cole}, title = {{Higher-Order Functions for Parallel Evaluation}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {8--20}, note = {Research Report 89/R4} } @InProceedings{dick_glafp88, author = {A.J.J. Dick and M. Thomas}, title = {{On Proving Termination of ``Loop Program'' Rewriting Systems}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {22--38}, note = {Research Report 89/R4} } @InProceedings{ferguson_glafp88, author = {A.B. Ferguson and Philip Wadler}, title = {{When Will Deforestation Stop?}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {39--56}, note = {Research Report 89/R4} } @InProceedings{hall_glafp88, author = {Cordelia Hall}, title = {{Finding Rational Fixed Points in Infinite Domains}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {57--67}, note = {Research Report 89/R4} } @InProceedings{hughes_glafp88, author = {John Hughes}, title = {{Abstract Interpretation of First-Order Polymorphic Functions}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {68--86}, note = {Research Report 89/R4} } @InProceedings{jones_glafp88, author = {Simon B. Jones and Daniel Le M{\'e}tayer}, title = {{Optimisation of Storage Management in Functional Languages by Static Analysis of Programs}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {87-100}, note = {Research Report 89/R4} } @InProceedings{launchbury_glafp88, author = {John Launchbury}, title = {{Strictness Analysis Aids Inductive Proofs}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {101--107}, note = {Research Report 89/R4} } @InProceedings{morgensen_glafp88, author = {Torben \AE\ Morgensen}, title = {{Binding Time Analysis for Higher Order Polymorphically Typed Languages}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {108--123}, note = {Research Report 89/R4} } @InProceedings{o'donnell_glafp88, author = {John T. O'Donnell}, title = {{Functional Microprogramming for a Data Parallel Architecture}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {124--145}, note = {Research Report 89/R4} } @InProceedings{peytonjones_glafp88, author = {Simon L. {Peyton Jones} and Jon Salkild}, title = {{The Spineless Tagless G-Machine}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {146--160}, note = {Research Report 89/R4} } @InProceedings{sheeran_glafp88, author = {Mary Sheeran}, title = {{Retiming and Slowdown in Regular Array Design}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {161--186}, note = {Research Report 89/R4} } @InProceedings{trinder_glafp88, author = {Phil Trinder and Philip Wadler}, title = {{List Comprehensions and the Relational Calculus}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {187--202}, note = {Research Report 89/R4} } @InProceedings{wadler_glafp88, author = {Philip Wadler and Stephen Blott}, title = {{How to make Ad-hoc Polymorphism less Ad-hoc}}, booktitle = WSTITLE, year = 1989, publisher = {Department of Computing Science, University of Glasgow}, address = {Rothesay, Isle of Bute, Scotland}, pages = {203ff}, note = {Research Report 89/R4} } % --------------------------------------------------------------------------- %$%node 1989, 1990, 1988, top %$%section 1989 % --------------------------------------------------------------------------- @Proceedings{GlaFp89, title = WSTITLE, year = 1989, editor = {M.K. Davis and R.J.M. Hughes}, address = {Fraserburgh, Scotland}, publisher = S-V, series = WIC, note = {ISBN 0-387-19609-9/3-540-19609-9}, url = {http://www.dcs.gla.ac.uk/fp/workshops/workshop-titles89.html}, } @InProceedings{sbjones_glafp89, author = {S.B. Jones and D. {Le M{\'e}tayer}}, title = {{A New Method for Strictness Analysis on Non-Flat Domains}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {1--11} } @InProceedings{davis_glafp89, author = {M.K. Davis and P.L. Wadler}, title = {{Backwards Strictness Analysis: Proved and Improved}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {12--30} } @InProceedings{baraki_glafp89, author = {G. Baraki and R.J.M. Hughes}, title = {{Abstract Interpretation of Polymorphic Functions}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {31--40} } @InProceedings{ferguson_glafp89, author = {A.B. Ferguson and R.J.M. Hughes}, title = {{An Iterative Powerdomain Construction}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {41--55} } @InProceedings{sands_glafp89, author = {D. Sands}, title = {{Complexity Analysis for a Lazy Higher-Order Language}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {56--79} } @InProceedings{gjones_glafp89, author = {G. Jones}, title = {{Deriving the Fast Fourier Algorithm by Calculation}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {80--102} } @InProceedings{banatre_glafp89, author = {J. Ban{\^a}tre and D. Le M{\'e}tayer}, title = {{Chemical Reaction as a Computational Model}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {103--117} } @InProceedings{reeves_rattray_glafp89, author = {A.C. Reeves and C. Rattray}, title = {{Sketching a Constructive Definition of `mix'}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {118--132} } @InProceedings{runciman_glafp89, author = {C. Runciman and M. Firth and N. Jagger}, title = {{Transformation in a Non-Strict Language: An Approach to Instantiation}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {133--141} } @InProceedings{trinder_glafp89, author = {P.W. Trinder}, title = {{Referentially Transparent Database Languages}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {142--156} } @InProceedings{mcloughlin_glafp89, author = {L. McLoughlin and E.S. Hayes}, title = {{Imperative Effects from a Pure Functional Language}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {157--169} } @InProceedings{reid_glafp89, author = {A. Reid}, title = {{Designing Data Structures}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {170--181} } @InProceedings{sheeran_glafp89, author = {M. Sheeran}, title = {{Describing Butterfly Networks in Ruby}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {182--205} } @InProceedings{singh_glafp89, author = {S. Singh}, title = {{Implementation of a Non-Standard Interpretation System}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {206--224} } @InProceedings{deschner_glafp89, author = {J.M. Deschner}, title = {{Simulating Multiprocessor Architectures for Compiled Graph-Reduction}}, booktitle = WSTITLE, series = WIC, year = {1989}, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {225--237}, } @InProceedings{launchbury_glafp89, author = {J. Launchbury}, title = {{Dependent Sums Express Separation of Binding Times}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {238--253} } @InProceedings{blott_glafp89, author = {S. Blott}, title = {{Type Inference and Type Classes}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {254--265} } @InProceedings{hammond_glafp89, author = {K. Hammond and S. Blott}, title = {{Implementing Haskell Type Classes}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {266--286} } @InProceedings{cox_glafp89, author = {S. Cox}, title = {{Implementing Functional Languages on the Transputer}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {287--295} } @InProceedings{robertson_glafp89, author = {I.B. Robertson}, title = {{Hope+ on Flagship}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {296--307} } @InProceedings{hughes_glafp89, author = {R.J.M. Hughes and J.T. O'Donnell}, title = {{Expressing and Reasoning About Non-Deterministic Functional Programs}}, booktitle = WSTITLE, sees = WIC, year = 1989, pubsher = S-V, address = {Fraserburgh, Scotland}, pages = {308--328} } @InProceedings{kewley_glafp89, author = {J.M. Kewley and K. Glynn}, title = {{Evaluation Annotations for Hope+}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {329--337} } @InProceedings{roe_glafp89, author = {P. Roe}, title = {{Some Ideas on Parallel Functional Programming}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {338--352} } @InProceedings{hutton_glafp89, author = {G. Hutton}, title = {{Parsing Using Combinators}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {353--370} } @InProceedings{reeves_glafp89, author = {A.C. Reeves and D.A. Harrison and A.F. Sinclair and P. Williamson}, title = {{Gerald: An Exceptional Lazy Programming Language}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {371--390} } @InProceedings{clenaghan_glafp89, author = {K. Clenaghan}, title = {{Geometrization for Interactive Software Development}}, booktitle = WSTITLE, series = WIC, year = 1989, publisher = S-V, address = {Fraserburgh, Scotland}, pages = {391ff} } % --------------------------------------------------------------------------- %$%node 1990, 1991, 1989, top %$%section 1990 % --------------------------------------------------------------------------- @Proceedings{GlaFp90, title = WSTITLE, year = 1990, editor = {S.L. {Peyton Jones} and G. Hutton and C.K. Holst}, address = {Ullapool, Scotland}, publisher = S-V, series = WIC, note = {ISBN 0-387-19667-6/3-540-19667-6}, url = {http://www.dcs.gla.ac.uk/fp/workshops/workshop-titles90.html}, } @InProceedings{argo_glafp90, author = {G. Argo}, title = {{Lifetime Analysis}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {1--8} } @InProceedings{bondorf_glafp90, author = {A. Bondorf}, title = {{Compiling Laziness by Partial Evaluation}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {9--22} } @InProceedings{davis_glafp90, author = {M.K. Davis and P.L. Wadler}, title = {{Strictness Analysis in 4D}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {23--43} } @InProceedings{hall_glafp90, author = {C.V. Hall and K. Hammond and J.T. O'Donnell}, title = {{An Algorithmic and Semantic Approach to Debugging}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {44--53} } @InProceedings{hankin_glafp90, author = {C. Hankin}, title = {{Abstract Interpretation of Term Graph Rewriting Systems}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {54--65} } @InProceedings{hamilton_glafp90, author = {G.W. Hamilton and S.B. Jones}, title = {{Compile-Time Garbage Collection by Necessity Analysis}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {66--70} } @InProceedings{holst_glafp90, author = {C.K. Holst}, title = {{Improving Full Laziness}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {71--82} } @InProceedings{holst_hughes_glafp90, author = {C.K. Holst and R.J.M. Hughes}, title = {{Towards Binding-Time Analysis for Free}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {83--100} } @InProceedings{hughes_glafp90, author = {R.J.M. Hughes and J. Launchbury}, title = {{Towards Relating Forwards and Backwards Analyses}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {101--113} } @InProceedings{hunt_glafp90, author = {S. Hunt}, title = {{PERs Generalise Projections for Strictness Analysis}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {114--125} } @InProceedings{hutton_glafp90, author = {G. Hutton}, title = {{Functional Programming with Relations}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {126--140} } @InProceedings{jensen_glafp90, author = {T. Jensen}, title = {{Abstract Interpretation vs. Type Inference: A Topological Perspective}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {141--145} } @InProceedings{johnsson_glafp90, author = {T. Johnsson}, title = {{Analysing Heap Contents in a Graph Reduction Intermediate Language}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {146--171} } @InProceedings{jones_glafp90, author = {S.B. Jones and M. White}, title = {{Is Compile Time Garbage Collection Worth the Effort?}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {172--176} } @InProceedings{jorgensen_glafp90, author = {J. J{\o}rgensen}, title = {{Generating a Pattern Matching Compiler by Partial Evaluation}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {177--195} } @InProceedings{kirkwood_glafp90, author = {C. Kirkwood}, title = {{An Experiment using Term Rewriting Techniques for Concurrency}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {196--200} } @InProceedings{murphy_glafp90, author = {D. Murphy}, title = {{Type Refinement in Ruby}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {201--217} } @InProceedings{partain_glafp90, author = {W.D. Partain}, title = {{Normal-Order Reduction using Scan Primitives}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {218--226} } @InProceedings{roe_glafp90, author = {P. Roe}, title = {{Calculating Lenient Programs' Performance}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {227--236} } @InProceedings{runciman_glafp90, author = {C. Runciman and D. Wakeling}, title = {{Problems and Proposals for Time and Space Profiling of Functional Programs}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {237--245} } @InProceedings{sinclair_glafp90, author = {D.C. Sinclair}, title = {{Solid Modelling in Haskell}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {246--263} } @InProceedings{singh_glafp90, author = {S. Singh}, title = {{Differentiating Strictness}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {264--267} } @InProceedings{thomas_glafp90, author = {M. Thomas and P. Watson}, title = {{Generalising Diverging Sequences of Rewrite Rules by Synthesising New Sorts}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {268--273} } @InProceedings{trinder_glafp90, author = {P.W. Trinder}, title = {{Concurrent Data Manipulation in a Pure Functional Language}}, booktitle = WSTITLE, series = WIC, year = 1990, publisher = S-V, address = {Ullapool, Scotland}, pages = {274ff} } % --------------------------------------------------------------------------- %$%node 1991, 1992, 1990, top %$%section 1991 % --------------------------------------------------------------------------- @Proceedings{GlaFp91, title = WSTITLE, year = 1991, editor = {R. Heldal and C.K. Holst and P.L. Wadler}, address = {Portree, Isle of Skye, Scotland}, publisher = S-V, series = WIC, note = {ISBN 0-387-19760-5/3-540-19760-5}, url = {http://www.dcs.gla.ac.uk/fp/workshops/workshop-titles91.html}, } @InProceedings{akerholt_glafp91, author = {G. Akerholt and K. Hammond and S.L. {Peyton Jones} and P.W. Trinder}, title = {{A Parallel Functional Database on GRIP}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {1--24}, url = {ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Simon\_Peyton\_Jones/grip-database-portree.ps.gz}, abstract = "GRIP is a shared-memory multiprocessor designed for efficient parallel evaluation of functional languages, using compiled graph reduction. This paper investigates the feasibility of processing persistent data on GRIP, and presents results obtained from a pilot implementation. A database implemented in a pure functional language must be modifiednon-destructively, i.e. the original database must be preserved and a new copy constructed. The naive implementation provides evidence for the feasibility of data processing in the form of modest real-time speed-ups, and acceptable real-time performance. The functional database is also used to investigate the GRIP architecture, compared with an idealised machine. The particular features investigated are the thread-creation costs and caching of GRIP's distributed memory." } @InProceedings{argo_glafp91, author = {G. Argo}, title = {{A New Sharing Mechanism for the TIM}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {25--35} } @InProceedings{augustsson_glafp91, author = {L. Augustsson}, title = {{BWM: A Concrete Machine for Graph Reduction}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {36--50} } @InProceedings{brown_glafp91, author = {D.F. Brown and H. Moura and D.A. Watt}, title = {{ACTRESS: An Action Semantics Directed Compiler Generator (Summary)}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {51--55} } @InProceedings{burn_glafp91, author = {G.L. Burn}, title = {{The Abstract Interpretation of Higher-Order Functional Language: From Properties to Abstract Domains (Technical Summary)}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {56--72} } @InProceedings{davis_glafp91, author = {M.K. Davis}, title = {{A Note on the Choice of Domains for Projection-Based Program Analysis}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {73--81} } @InProceedings{deutsch_glafp91, author = {A. Deutsch}, title = {{An Operational Model of Strictness Properties and its Abstractions (Extended Abstract)}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {82--99} } @InProceedings{gill_glafp91, author = {A. Gill}, title = {{A Novel Approach Towards Peephole Optimisations}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {100--111} } @InProceedings{gomard_glafp91, author = {C.K. Gomard and P. Sestoft}, title = {{Evaluation Order Analysis for Lazy Data Structures}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {112--127} } @InProceedings{hall_glafp91, author = {C.V. Hall}, title = {{Strictness Analysis Using Hindley-Milner Type Inference}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {128--133} } @InProceedings{hamilton_glafp91, author = {G.W. Hamilton and S.B. Jones}, title = {{Extending Deforestation for First Order Functional Programs}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {134--145} } @InProceedings{hammond_glafp91, author = {K. Hammond}, title = {{Efficient Type Inference Using Monads (Summary)}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {146--157} } @InProceedings{heldal_glafp91, author = {R. Heldal}, title = {{Generating More Practical Compilers by Partial Evaluation}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {158--163} } @InProceedings{holst_glafp91, author = {C.K. Holst and R.J.M. Hughes}, title = {{A Loop-Detecting Interpreter for Lazy Programs}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {164--176} } @InProceedings{hutton_glafp91, author = {G. Hutton and E. Voermans}, title = {{Making Functionality More General}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {177--190} } @InProceedings{jones_glafp91, author = {G. Jones}, title = {{Getting Your Wires Crossed}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {191--206} } @InProceedings{kubiak_glafp91, author = {R. Kubiak and R.J.M. Hughes and J. Launchbury}, title = {{Implementing Projection-Based Strictness Analysis}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {207--224} } @InProceedings{lester_glafp91, author = {D.R. Lester}, title = {{Vuillemin's Exact Real Arithmetic}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {225--238} } @InProceedings{murphy_glafp91, author = {D. Murphy}, title = {{A Semantics for Relational Programming}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {239--252} } @InProceedings{rossen_glafp91, author = {L. Rossen}, title = {{From Primitive Recursive Functions to Silicon Through Relations}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {253--264} } @InProceedings{rothwell_glafp91, author = {N. Rothwell}, title = {{Functional Compilation from the Standard ML Core Language to Lambda Calculus}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {265--277} } @InProceedings{runciman_glafp91, author = {C. Runciman}, title = {{TIP in Haskell --- Another Exercise in Functional Programming}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {278--292} } @InProceedings{sanders_glafp91, author = {P. Sanders}, title = {{Experiments in Haskell --- A Network Simulation Algorithm}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {293--297} } @InProceedings{sands_glafp91, author = {D. Sands}, title = {{Operational Theories of Improvement in Functional Languages (Extended Abstract)}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {298--311} } @InProceedings{sansom_glafp91, author = {P.M. Sansom}, title = {{Combining Single-Space and Two-Space Compacting Garbage Collectors}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {312--323} } @InProceedings{schmidtschauss_glafp91, author = {Manfred Schmidt-Schau{\ss}}, title = {{External Function Calls in a Functional Language}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {324--331} } @InProceedings{sheeran_glafp91, author = {M. Sheeran}, title = {{A Note on Abstraction in Ruby}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {332--338} } @InProceedings{sijtsma_glafp91, author = {B.A. Sijtsma}, title = {{Requirements for a Functional Programming Environment}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {339--346} } @InProceedings{sinclair_glafp91, author = {D.C. Sinclair}, title = {{Debugging by Dataflow --- Summary}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {347--351} } @InProceedings{singh_glafp91, author = {S. Singh}, title = {{Using XView/X11 from Miranda}}, booktitle = WSTITLE, series = WIC, year = 1991, publisher = S-V, address = {Portree, Isle of Skye, Scotland}, pages = {352ff} } % --------------------------------------------------------------------------- %$%node 1992, 1993, 1991, top %$%section 1992 % --------------------------------------------------------------------------- @Proceedings{GlaFp92, title = WSTITLE, year = 1992, editor = {J. Launchbury and P.M. Sansom}, address = {Ayr, Scotland}, publisher = S-V, series = WIC, note = {ISBN 0-387-19820-2/3-540-19820-2}, url = {http://www.dcs.gla.ac.uk/fp/workshops/workshop-titles92.html}, } @InProceedings{achten_glafp92, author = {P.M. Achten and J.H.G. {van Groningen} and M.J. Plasmeijer}, title = {{High Level Specification of I/O in Functional Languages}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {1--17} } @InProceedings{argo_glafp92, author = {G. Argo}, title = {{GRIT: Guy's RISC Implementation of the Three Instruction Machine}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {18--29} } @InProceedings{burn_glafp92, author = {G.L. Burn}, title = {{A Logical Framework for Program Analysis}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {30--42} } @InProceedings{davis_glafp92, author = {M.K. Davis}, title = {{Analysing Functions by Projection-Based Backward Abstraction}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {43--56} } @InProceedings{ferguson_glafp92, author = {A.B. Ferguson and R.J.M. Hughes}, title = {{Abstract Interpretation of Higher Order Functions using Concrete Data Structures (Summary)}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {57--61} } @InProceedings{hall_glafp92, author = {C.V. Hall and K. Hammond and W.D. Partain and S.L. {Peyton Jones} and P.L. Wadler}, title = {{The Glasgow Haskell Compiler: A Retrospective}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {62--71} } @InProceedings{hammond_glafp92, author = {K. Hammond and D.L. McNally, P.M. Sansom and P.W. Trinder}, title = {{Improving Persistent Data Manipulation for Functional Languages}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {72--84} } @InProceedings{hughes_glafp92, author = {R.J.M. Hughes and A.B. Ferguson}, title = {{A Loop-detecting Interpreter for Lazy, Higher-order Programs}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {85--101} } @InProceedings{hughes_moran_glafp92, author = {R.J.M. Hughes and A. Moran}, title = {{A Semantics for Locally Bottom-Avoiding Choice}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {102--112} } @InProceedings{jones_sheeran_glafp92, author = {G. Jones and M. Sheeran}, title = {{A Certain Loss of Identity}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {113--121} } @InProceedings{jones_glafp92, author = {M.P. Jones}, title = {{Programming with Constructor Classes (preliminary summary)}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {122--133} } @InProceedings{king_glafp92, author = {D.J. King and P.L. Wadler}, title = {{Combining Monads}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {134--143} } @InProceedings{launchbury_glafp92, author = {J. Launchbury and A. Gill and R.J.M. Hughes and S. Marlow and S.L. {Peyton Jones} and P.L. Wadler}, title = {{Avoiding Unnecessary Updates}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {144--153} } @InProceedings{marlow_glafp92, author = {S. Marlow and P.L. Wadler}, title = {{Deforestation for Higher-Order Functions}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {154--165} } @InProceedings{meijer_glafp92, author = {E. Meijer}, title = {{Hazard Algebra and the Design of Asynchronous Automata}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {166--177} } @InProceedings{o'donnell_glafp92, author = {J.T. O'Donnell}, title = {{Generating Netlists from Executable Circuit Specifications in a Pure Functional Language}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {178--194} } @InProceedings{partain_glafp92, author = {W.D. Partain}, title = {{The nofib Benchmark Suite of Haskell Programs}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {195--202} } @InProceedings{runciman_glafp92, author = {C. Runciman and D. Wakeling}, title = {{Heap Profiling of a Lazy Functional Compiler}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {203--214} } @InProceedings{sanders_glafp92, author = {P. Sanders and C. Runciman}, title = {{LZW Text Compression in Haskell}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {215--226} } @InProceedings{sansom_glafp92, author = {P.M. Sansom and S.L. {Peyton Jones}}, title = {{Profiling Lazy Functional Programs}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {227--239}, url = {ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Simon\_Peyton\_Jones/lazy-profiling.ps.gz}, abstract = "Profiling tools, which measure and display the dynamic space and time behaviour of programs, are essential for identifying execution bottlenecks. A variety of such tools exist for conventional languages, but almost none for non-strict functional languages. There is a good reason for this: lazy evaluation means that the program is executed in an order which is not immediately apparent from the source code, so it is difficult to relate dynamically-gathered statistics back to the original source. We present a new technique which solves this problem. The framework is general enough to profile both space and time behaviour. Better still, it is cheap to implement, and we describe how to do so in the context of the Spineless Tagless G-machine." } @InProceedings{santos_glafp92, author = {A. Santos and S.L. {Peyton Jones}}, title = {{On Program Transformation in the Glasgow Haskell Compiler}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {240--251} } @InProceedings{sinclair_glafp92, author = {D.C. Sinclair}, title = {{Graphical User Interfaces for Haskell}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {252--257} } @InProceedings{thompson_glafp92, author = {S. Thompson}, title = {{Formulating Haskell}}, booktitle = WSTITLE, series = WIC, year = 1992, publisher = S-V, address = {Ayr, Scotland}, pages = {258ff} } % --------------------------------------------------------------------------- %$%node 1993, 1994, 1992, top %$%section 1993 % --------------------------------------------------------------------------- @Proceedings{GlaFp93, title = WSTITLE, year = 1993, editor = {K. Hammond and J.T. O'Donnell}, address = {Ayr, Scotland}, publisher = S-V, series = WIC, note = {ISBN 0-387-19879-2/3-540-19879-2}, url = {http://www.dcs.gla.ac.uk/fp/workshops/workshop-titles93.html}, } @InProceedings{bunkenburg_glafp93, author = {Alexander Bunkenburg}, title = {{The Boom Hierarchy}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {1--8} } @InProceedings{crole_glafp93, author = {Roy L. Crole and Andrew D. Gordon}, title = {{Factoring an Adequacy Proof (Preliminary Report)}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {9--25} } @InProceedings{davis_glafp93, author = {Kei Davis}, title = {{Projection-Based Termination Analysis}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {26--42} } @InProceedings{hall_glafp93, author = {Cordelia V. Hall}, title = {{A Framework for Optimising Abstract Data Types}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {43--57} } @InProceedings{hammond_glafp93, author = {K. Hammond and G.L. Burn and D.B. Howe}, title = {{Spiking Your Caches}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {58--68} } @InProceedings{hartel_glafp93, author = {Pieter H. Hartel and Willem G. Vree}, title = {{Experiments with Destructive Updates in a Lazy Functional Language}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {69--82} } @InProceedings{hill_glafp93, author = {Jonathon M.D. Hill}, title = {{The aim is Laziness in a Data-Parallel Language}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {83--99} } @InProceedings{hiromoto_glafp93, author = {Robert E. Hiromoto}, title = {{On the Comparative Evaluation of Parallel Languages and Systems: A Functional Note}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {100--112} } @InProceedings{holyer_glafp93, author = {Ian Holyer and David Carter}, title = {{Deterministic Concurrency}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {113--126} } @InProceedings{howe_glafp93, author = {Denis B Howe and Geoffrey L. Burn}, title = {{Using Strictness in the STG Machine}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {127--137} } @InProceedings{jones_glafp93, author = {Simon B. Jones and Andrew S. Tyas}, title = {{The Implementor's Dilemma: a Mathematical Model of Compile Time Garbage Collection}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {138--144} } @InProceedings{king_glafp93, author = {David J. King and John Launchbury}, title = {{Functional Graph Algorithms with Depth-First Search}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {145--155} } @InProceedings{lester_glafp93, author = {David Lester}, title = {{Distributed Garbage Collection of Cyclic Structures}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {156--169} } @InProceedings{marlow_glafp93, author = {Simon Marlow}, title = {{Update Avoidance Analysis by Abstract Interpretation}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {170--184} } @InProceedings{mattson_glafp93, author = {James S. {Mattson Jr.} and William G. Griswold}, title = {{Local Speculative Evaluation for Distributed Graph Reduction}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {185--192} } @InProceedings{o'donnell_glafp93, author = {John T. O'Donnell}, title = {{Bidirectional Fold and Scan}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {193--200} } @InProceedings{peytonjones_glafp93, author = {Simon {Peyton Jones} and Will Partain}, title = {{Measuring the Effectiveness of a Simple Strictness Analyser}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {201--220} } @InProceedings{reid_glafp93, author = {Alastair Reid and Satnam Singh}, title = {{Implementing Fudgets with Standard Widget Sets}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {221--234} } @InProceedings{runciman_glafp93, author = {Colin Runciman and David Wakeling}, title = {{Profiling Parallel Functional Computations (Without Parallel Machines)}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {235--248} } @InProceedings{sansom_glafp93, author = {Patrick M. Sansom}, title = {{Time Profiling a Lazy Functional Compiler}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {249--261} } @InProceedings{seward_glafp93, author = {Julian Seward}, title = {{Solving Recursive Domain Equations by Term Rewriting}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {262--276} } @InProceedings{sinclair_glafp93, author = {Duncan C. Sinclair}, title = {{Separating Interaction}}, booktitle = WSTITLE, series = WIC, year = 1993, publisher = S-V, address = {Ayr, Scotland}, pages = {277ff} } % --------------------------------------------------------------------------- %$%node 1994, 1995, 1993, top %$%section 1994 % --------------------------------------------------------------------------- @Proceedings{GlaFp94, title = WSTITLE, year = 1994, editor = {K. Hammond and D.N. Turner and P. Sansom}, address = {Ayr, Scotland}, publisher = S-V, series = WIC, note = {ISBN 3-540-19914-4}, url = {http://www.dcs.gla.ac.uk/fp/workshops/workshop-titles94.html}, } % --------------------------------------------------------------------------- %$%node 1995, 1996, 1994, top %$%section 1995 % --------------------------------------------------------------------------- @Proceedings{GlaFp95, title = WSTITLE, year = 1995, editor = {David N. Turner}, address = {Ullapool, Scotland}, publisher = S-V, series = EWIC, note = {ISBN 3-540-14580-X}, url = {http://www.dcs.gla.ac.uk/fp/workshops/workshop-titles95.html}, } @InProceedings{barendsen_glafp95, author = {Erik Barendsen and Sjaak Smetsers}, title = {{Uniqueness Typing in Natural Deduction Style}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "We present two type systems for graph rewriting: conventional typing and (polymorphic) uniqueness typing. The latter is introduced as a natural extension of simple algebraic and higher-order uniqueness typing. The systems are given in natural deduction style using an inductive syntax of graph denotations with familiar constructs such as {\tt let} and {\tt case}. The conventional system resembles traditional Curry-style typing systems in functional programming languages. Uniqueness typing extends this with reference count information. In both type systems, typing is preserved during evaluation, and types can be determined effectively. Due to the present formalization, the system can easily be compared with other proposals based on linear and affine logic." } @InProceedings{booth_glafp95, author = {Simon Booth and Simon B. Jones}, title = {{Towards a Purely Functional Debugger for Functional Programs}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "A major drawback when developing large applications with functional programming languages is the lack of good debugging tools - when using imperative languages all sorts of useful information about the program's behaviour is available via a good debugger. In this paper we present a debugging technique that allows the examination of the behaviour of programmer defined functions in the context of the whole program. In particular, we present a technique that allows examination the function input and the result of the application of the function to that input." } @InProceedings{breitinger_glafp95, author = {Silvia Breitinger and Rita Loogen and Yolanda Ortega-Mall{\'e}n}, title = {{Towards a Declarative Language for Parallel and Concurrent Programming}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "We define a new language Eden by extending a functional language by constructs for the explicit specification of dynamic process systems. Concurrent systems can be classified either as transformational or reactive. For modelling the class of transformational systems, the introduction of a function-like abstraction mechanism is sufficient. In addition to this, the extra-functional concepts {\it predefined nondeterministic processes} and {\it dynamic reply channels} make the definition of reactive systems possible. The former construct is used to handle time-dependencies. The latter, which is similar to the {\it incomplete message principle} from concurrent logic programming, is a powerful mechanism for the treatment of dynamically specified communication channels. " } @InProceedings{chakravarty_glafp95, author = {Manuel M.T. Chakravarty}, title = {{Integrating Multithreading into the Spineless Tagless G-machine}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "To reduce the adverse effects of long latency communication operations in distributed implementations of the Spineless Tagless G-machine (STGM), a variant of the original abstract machine that contains explicit support for multithreading is introduced. In particular, source-to-source transformations can be used on the level of the abstract machine code to foster the tolerance to long latency communication. The changes to the original STG-language include a separation of demand from case selection together with the introduction of a new construct that provides an abstract notion of thread boundaries and thread synchronization. " } @InProceedings{collins_glafp95, author = {Graham Collins}, title = {{Supporting Reasoning about Functional Programs: An Operational Approach}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "Some existing systems for supporting reasoning about functional programs have been constructed without first formalising the semantics of the language. This paper discusses how a reasoning system can be built, within the HOL theorem proving environment, based on an operational semantics for the language and using a fully definitional approach. The theoretical structure of the system is based on work by Andrew Gordon, where applicative bisimulation is used to define program equivalence. We discuss how this theory can be embedded in HOL and the type of tools which can be built on top of this theoretical framework to make reasoning possible in practice." } @InProceedings{davie_glafp95, author = {Antony J.T. Davie}, title = {{Algebraic Formula Manipulation in a Functional Language: A First Attempt}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "This paper represents the authors attempt to come to grips with some of the practical problems that arise out of conventional algebraic manipulation and leads to a discussion of the possibilities of generalising algebraic concepts such as commutativity and associativity to other algebraic systems. An account is given of a class instance providing manipulation and simplification of `school' algebraic formulae. A concept of variability is introduced which controls the order in which terms and factors appear in sums and products. Rules based on the commutative, associative and distributive laws of algebra, for simplification of sums, products and a few basic operators are presented. Some discussion is given of how an advanced class system could possibly be of help in general algebraic simplification problems." } @InProceedings{finne_glafp95, author = {Sigbjorn Finne and Simon {Peyton Jones}}, title = {{Pictures: A Simple Structured Graphics Model}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, url = {ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Simon\_Peyton\_Jones/picture.ps.gz}, abstract = "We present in this paper a simple, device-independent model for describing two-dimensional graphics using a functional language. Graphical scenes, or pictures, are represented as values that functions can manipulate and inspect to create new values. Complete pictures are constructed by repeatedly composing such picture values together using {\it picture combinators}. A novel aspect of the model presented is its use of {\it structured translation} to abstractly express the geometric composition of arbitrary pictures. The structured graphics model presented has been implemented in Haskell, and we also give an overview of a general rendering framework for traversing a picture value. Applications of this renderer include both output to various graphical systems, testing for picking or selection of a picture and the computation of the bounding box of an arbitrary picture. The graphics model forms the basis for all graphical output in a user interface framework being developed in Haskell." } @InProceedings{gill_glafp95, author = {Andy Gill}, title = {{The Technology Behind a Graphical User Interface for an Equational Reasoning Assistant}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "The Haskell Equational Reasoning Assistant (HERA) is an application written in Haskell that helps users construct and present equational reasoning style proofs. In this paper we discuss the technology behind the user interface." } @InProceedings{govier_glafp95, author = {Simon Govier and Paul H.J. Kelly}, title = {{A Lazy, Self-optimising Parallel Matrix Library}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "This paper describes a parallel implementation of a matrix/vector library for C++ for a large distributed-memory multicomputer. The library is self-optimising by exploiting lazy evaluation: execution of matrix operations is delayed as much as possible. This exposes the context in which each intermediate result is used. The run-time system extracts a functional representation of the values being computed and optimises data distribution, grain size and scheduling prior to execution. This exploits results in the theory of program transformation for optimising parallel functional programs, while presenting an entirely conventional interface to the programmer. We present details of some of the simple optimisations we have implemented so far and illustrate their effect using a small example." } @InProceedings{hammond_glafp95, author = {Kevin Hammond and Phil Trinder}, title = {{Database Manipulation in Haskell 1.3}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "This paper describes how relational databases could be implemented in a purely functional language, using constructor classes and other features that have recently been introduced in Haskell 1.3. We focus on how bulk data types can be represented in a modern functional language rather than on the efficient implementation of those types. We do describe, however, how lazy evaluation can be exploited to improve concurrent access to the database. The paper is intended more as a discussion document, recording some thoughts on how to represent bulk data in a functional language, than a conclusive statement on functional databases. It also serves as a reasonably complex and hopefully realistic example of how some of the new features of Haskell 1.3 can be exploited to good effect. The limitations of these features are also assessed." } @InProceedings{holyer_glafp95, author = {Ian Holyer and Neil Davies and Chris Dornan}, title = {{The Brisk Project: Concurrent and Distributed Functional Systems}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "The Brisk project has been set up to investigate the possibility of extending the expressive power of purely functional languages. The aim is to be able to build concurrent and distributed working environments completely functionally, reversing the usual situation in which functional programs are regarded as guests within a procedural environment. This paper gives an overview of the project, and the current status of the work in progress. The Bristol Haskell System, or Brisk for short, is based on a compiler for the Haskell functional programming language which is used to provide practical support for this research, and to demonstrate its results. The compiler adds a purely deterministic form of concurrency to Haskell in order to improve support for interactive and distributed programming. This has been used, for example, to build an interface to the X window system. Features have also been added to support the dynamic loading and migration of code. This allows for a purely functional implementation of long-lived shell programs which manage files, processes and communications." } @InProceedings{huang_glafp95, author = {Howard Huang and Uday Reddy}, title = {{Type Reconstruction for SCI}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "We present a type reconstruction algorithm for SCIR, a type system for a language with syntactic control of interference. SCIR guarantees that terms of passive type do not cause any side effects, and that distinct identifiers do not interfere. A reconstruction algorithm for this type system must deal with different {\it kinds} (passive and general) and different uses of identifiers (passive and active). In particular, there may not be a unique choice of kinds for type variables. Our work extends SCIR typings with {\it kind constraints}. We show that principal type schemes exist for this extended system and outline an algorithm for computing them." } @InProceedings{jones_glafp95, author = {Simon B. Jones}, title = {{Experiences with Clean I/O}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "In the Clean system, I/O is based on collections of operations that act to cause side effects on multiple explicit abstract values representing physical I/O entities, such as files and graphical interfaces. A system of unique types is used to ensure that these values are individually single threaded through the program; and the side effecting I/O operations are therefore well controlled. This approach is distinct from monadic I/O, which is being widely adopted; monadic I/O schemes are based on a single, implicit environment, and guarantee that this is single threaded. This paper demonstrate that the Clean I/O primitives can be used to implement a basic monadic I/O library. In itself, the fact that a monadic I/O library can be implemented in Clean is unsurprising. However, some interesting technical difficulties arose during implementation of the monad; these and their solutions are discussed. The opportunity to express programs using the implicit environments of monadic I/O allows us to simplify Clean programs by removing some of the spaghetti, whilst retaining the generality of the explicit environments where it is the most appropriate approach. " } @InProceedings{jones_hudak_glafp95, author = {Mark P. Jones and Paul Hudak and Sebastian Shaumyan}, title = {{Using Types to Parse Natural Language}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "We describe a natural language parser that uses type information to determine the grammatical structure of simple sentences and phrases. This stands in contrast to studies of type inference where types and grammatical structure play opposite roles, the former being determined by the latter. Our parser is implemented in Haskell and is based on a linguistic theory called {\it applicative universal grammar} (AUG). Our results should be interesting to computer scientists in the way in which AUG relates to types and combinatory calculus, and to linguists in the way in which a very simple, brute force parsing strategy performs surprisingly well in both performance and accuracy." } @InProceedings{kuchen_glafp95, author = {Herbert Kuchen}, title = {{A Functional Logic Language Based on Higher Order Narrowing}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "Functional logic languages have a syntax like a purely functional language but use narrowing as operational semantics. We present the functional logic language Higher Order Babel which provides higher order unification for parameter passing and solving equations. When searching for a function which solves an equation polynomial functions as well as defined functions are taken into account. In contrast to all other programming languages with higher order unification HO-Babel replaces the expensive b-reduction by the more efficient combinator reduction. Further, HO-Babel is more homogeneous since it does not distinguish functions which only represent data structures and defined function which have access to the full execution mechanism of the language." } @InProceedings{loidl_glafp95, author = {Hans Wolfgang Loidl and Kevin Hammond}, title = {{On the Granularity of Divide-and-Conquer Parallelism}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "This paper studies the runtime behaviour of various parallel divide-and-conquer algorithms written in a non-strict functional language, when three common granularity control mechanisms are used: a simple cut- off, a priority thread creation and a priority scheduling mechanism. These mechanisms use granularity information that is currently provided via annotations to improve the performance of the parallel programs. The programs we examine are several variants of a generic divide-and- conquer program, an unbalanced divide-and-conquer algorithm and a parallel determinant computation. Our results indicate that for balanced computation trees a simple, low-overhead mechanism performs well whereas the more complex mechanisms offer further improvements for unbalanced computation trees." } @InProceedings{o'donnell_glafp95, author = {John O'Donnell and Gudula R{\"u}nger}, title = {{Formal Specification of Interconnection Networks}}, booktitle = WSTITLE, series = EWIC, year = 1995, publisher = S-V, address = {Ullapool, Scotland}, month = {July}, abstract = "Interconnection networks are an important and well-studied topic in parallel computing and architecture, but a homogeneous and general method for defining and classifying the topologies and behaviors of interconnection networks is lacking. Topologies are usually specified informally by picture or more formally by permutations of wire enumerations. This paper presents an improved method for specifying multistage networks via permutations, along with two styles of formal functional specification of the entire network, using both a standard multistage organization and a generalized fat tree organization. This method is applied to two specific indirect multistage switch networks: the baseline and the butterfly. The functional specification emphasizes the similarities between the networks, and also captures the functionality provided by general-purpose network nodes." } % --------------------------------------------------------------------------- %$%node 1996, 1997, 1995, top %$%section 1996 % --------------------------------------------------------------------------- @Proceedings{GlaFp96, title = WSTITLE, year = 1996, editor = {Phil Trinder}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Proceedings96.html}, } @InProceedings{block_glafp96, author = {C.J. Block}, title = {{A Model for Representing Ruby Circuits}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Block.ps.gz}, abstract = "This paper presents a method for drawing Ruby circuit descriptions. The method contains a sophisticated algorithm that calculates the placing of circuits and the connections between them, and sometimes transforms circuits from one shape to another. For some instances of Ruby circuits, ambiguities in the visualisation appear and this can make it very tricky to know how a circuit is supposed to be drawn. The algorithm makes a good choice when to transform and when not. The pictures are constructed in a compositional way, which reduces re-calculation and simplifies the building of a system that implements the algorithm. This approach gives layouts that are easy to read and the system can support different layout policies. The model is used in a project to develop a software system that draws Ruby circuit descriptions and is a part of the Glasgow Ruby Compiler." } @InProceedings{booth_glafp96, author = {S.P. Booth and S.B. Jones}, title = {{Are Ours Really Smaller than Theirs?}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Booth.ps.gz}, abstract = "The claim is often made that functional programs are ``more'' expressive than their imperative counterparts. This paper examines this claim using a particular measure of (i) program length and (ii) programming language ``level'' (a measure of expressive power) both from the work of Halstead on software metrics." } @InProceedings{davie_glafp96, author = {A. Davie and K. Hammond}, title = {{Functional Hypersheets}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Davie.ps.gz}, abstract = "This paper introduces hypersheets, an extension of conventional programming language modules. Whereas modules are static, and usually textually based, hypersheets constitute a local or distributed network of hyperlinks: dynamically evolving links to either values or definitions. Hypersheets integrate notions of persistence, hyperprogramming and user interface design. In the purely functional context we consider here, hypersheets provide a software development environment for functional programming that supports version control, sophisticated scoping, evolution of values, and distributed program development. This paper reports on very early work. We are therefore unable at present to report on either implementation results or user experience. A full version of this paper has been submitted to the 1996 International Workshop on Implementing Functional Languages, Bonn, September 1996." } @InProceedings{ferguson_glafp96, author = {A.B. Ferguson}, title = {{Towards a System for Directional Types for Ruby}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Ferguson.ps.gz}, abstract = "A modified type system for the Ruby VLSI design language is described, which adds directional information to the types of Ruby relations. Reasons for wishing to do so are discussed, and a realisation of the refined typing scheme is outlined. In order to deal with one otherwise troublesome case, constraints are added to the type system to maintain principal types in the presence of direction information." } @InProceedings{hughes_glafp96, author = {R.J.M. Hughes}, title = {{An Introduction to Program Specialisation by Type Inference}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Hughes.ps.gz}, abstract = "In this paper we present a new paradigm for partial evaluation, based not on transforming terms into terms, but on transforming terms and types into terms and types. An immediate advantage is that residual programs need not involve the same types as source programs, so {\em type specialisation} can be accomplished naturally. Furthermore, while a conventional partial evaluator handles a static expression by reducing it to a constant residual {\em term}, we carry the static information in the residual {\em type}, which leads to improved static information flow and thereby better specialisations. Thanks to this, {\em optimal specialisation} of a typed interpreter is possible. Our partial evaluator is specified in a very modular fashion: each feature is associated with a type in the source language, and its specialisation is specified via corresponding introduction and elimination rules. As a result, specialisation features can be freely combined: for example, we have for the first time combined constructor specialisation with higher-order functions, deriving a firstification transformation and a closure analyses as a consequence. This paper is an introduction to the material which appeared in the Proceedings of the Dagstuhl Workshop on Partial Evaluation, 1996 (Springer LNCS)." } @InProceedings{loidl_glafp96, author = {H-W. Loidl and K. Hammond}, title = {{A Sized Time System for a Parallel Functional Language}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Loidl.ps.gz}, abstract = "This paper describes an inference system, whose purpose is to determine the cost of evaluating expressions in a strict purely functional language. Upper bounds can be derived for both computation cost and the size of data structures. We outline a static analysis based on this inference system for inferring size and cost information. The analysis is a synthesis of the sized types of Hughes et al., and the polymorphic time system of Dornic et al., which was extended to static dependent costs by Reistad and Gifford. Our main interest in cost information is for scheduling tasks in the parallel execution of functional languages. Using the GranSim parallel simulator, we show that the information provided by our analysis is sufficient to characterise relative task granularities for a simple functional program. This information can be used in the runtime-system of the Glasgow Parallel Haskell compiler to improve dynamic program performance." } @InProceedings{nicklisch_glafp96, author = {J. Nicklisch and S.L. {Peyton Jones}}, title = {{An Exploration of Modular Programs}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Nicklisch.ps.gz}, abstract = "Recently, Mark Jones introduced first class structures as a means to express modular structure. In this paper we elaborate on this idea by comparing the module systems of Standard ML and Haskell 1.3, two widely used functional languages, and a Haskell variant equipped with such first class structures. Moreover, we look at another obvious and well-known extension to Hindley-Milner type systems, namely higher order type variables, to explore its usefulness in solving problems occuring when one attempts to structure larger programs into maintainable pieces. We argue that there are surprisingly few applications where the module system currently provided by Haskell cannot keep pace with Standard ML's expressiveness. When one adds first class structures to Haskell, the module system reaches the expressiveness of Standard ML and even exceeds it." } @InProceedings{peytonjones_glafp96, author = {S.L. {Peyton Jones}}, title = {{Bulk types with class}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/PeytonJones.ps.gz}, abstract = "Bulk types - such as lists, bags, sets, finite maps, and priority queues - are ubiquitous in programming. Yet many languages don't support them well, even though they have received a great deal of attention, especially from the database community. Haskell is currently among the culprits. This paper has two aims: to identify some of the technical difficulties, and to attempt to address them using Haskell's constructor classes. The paper can also be read as a concrete proposal for new Haskell bulk type libraries." } @InProceedings{sansom_glafp96, author = {P.M. Sansom}, title = {{Modules, Interfaces and Recompilation in Glasgow Haskell}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Sansom.ps.gz}, abstract = "This paper describes the system of interface files and recompilation checking in the Glasgow Haskell 1.3 Compiler. In developing this system our aim is to provide a separate compilation system which avoids unnecessary recompilation while performing significant inter-module optimisations. We associate a version number (based on the current timestamp) with each declaration and record the versions of all the imported declarations used when a module is compiled. When the module is recompiled the usage numbers are compared with the current version numbers to determine if the recompilation is unnecessary. The paper also describes a proposed system of source interfaces designed to deal with the problem of cyclic module dependencies. This avoids the error-prone duplication of declarations by extracting the interface directly from the source code." } @InProceedings{scholz_glafp96, author = {E. Scholz}, title = {{A Monad of Imperative Streams}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Scholz.ps.gz}, abstract = "A new approach is presented for performing I/O in a functional programming language in the presence of multiple input devices. A new monad St is introduced which generalizes Haskell's IO monad: A value of type St a represents an imperative program which, at certain times during its execution, will produce a value of type a. In contrast, a value of type IO a represents an imperative program which, at the end of its execution , will produce a value of type a. Not only may values of type St a be used to represent imperative commands, additionally, they serve to create so-called imperative streams. The computer's physical input devices are represented as primitive streams. Composite streams may be constructed and interleaved in a non-preemptive way using, for instance, the monad's bind operation. By way of a series of example programs, the usage of imperative streams is illustrated. Moreover, an implementation in terms of the IO monad is given that is suitable for executing the example programs on the Gofer interpreter. An extension of the graphical user interface system PIDGETS with imperative streams is planned." } @InProceedings{sheeran_glafp96, author = {M. Sheeran}, title = {{Puzzling Permutations}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Sheeran.ps.gz}, abstract = "We show how to describe and analyse multistage interconnection networks in a relational framework. We give simple elegant descriptions of butterfly networks, using only two functions for building networks from smaller networks. By studying the algebra of these functions, we can give a clear account of the properties of networks, without resorting to the standard methods of reasoning in terms of binary representations of the addresses of data elements. The paper is intended as a tutorial introduction to multistage interconnection networks." } @InProceedings{trinder_glafp96, author = {P.W. Trinder and K. Hammond and H-W. Loidl and S.L. {Peyton Jones} and J. Wu}, title = {{A Case Study of Data-intensive Programs in Parallel Haskell}}, booktitle = WSTITLE, year = 1996, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {July}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw96/Trinder.ps.gz}, abstract = "Accidents happen: ``An invisible car came out of nowhere, struck my vehicle and vanished.'' ``I pulled away from the side of the road, glanced at my mother-in-law, and headed for the embankment.'' ``As I approached the intersection a sign suddenly appeared in a place where no stop sign had ever appeared before.'' Luckily, we don't normally have to deal with problems as bizarre as these. One interesting application that does arise at the Centre for Transport Studies consists of matching police reports of several accidents so as to locate accident blackspots. The application provides an interesting, data-intensive, test-bed for the persistent functional language PFL. We report here on an approach aimed at improving the performance of this application using Glasgow Parallel Haskell. The accident application is one of several large parallel Haskell programs under development at Glasgow. Our objective is to achieve wall-clock speedups over the best sequential implementations, and we report modest wall-clock speedups for a demonstration program. From experience with these and other programs the group is developing a methodology for parallelising large functional programs. We have also developed strategies, a mechanism to separately specify a function's algorithm and its dynamic behaviour. A shorter version of this paper has been submitted to the 8th Int. Workshop on Implementing Functional Languages (IFL'96)." } % --------------------------------------------------------------------------- %$%node 1997, The End, 1996, top %$%section 1997 % --------------------------------------------------------------------------- @Proceedings{GlaFp97, title = WSTITLE, year = 1997, editor = {John O'Donnell}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/}, annote = {draft proceedings as of Feb 1998} } @InProceedings{breitinger_glafp97, author = {Silvia Breitinger and Rita Loogen}, title = {{Channel structures in the parallel functional language Eden}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/BreitingerLoogen.ps}, annote = {draft proceedings}, } @InProceedings{bunkenburg_glafp97, author = {Alex Bunkenburg}, title = {{Introduction to expression refinement}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/Bunkenburg.ps}, annote = {draft proceedings}, abstract = "We present an outline of a refinement calculus for strict functional programming, based on four-valued logic and equational reasoning. The languages imitates the features known from the imperative Refinement Calculus in a language of expressions." } @InProceedings{clack_glafp97, author = {Chris Clack and Lee Braine}, title = {{Object-oriented functional spreadsheets}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/ClackBrainedraft.ps}, annote = {draft proceedings}, abstract = "We propose a new spreadsheet paradigm which incorporates many functional programming features such as higher-order functions, a strong type system, curried partial applications, referential transparency and lazy evaluation. It also incorporates many object-oriented programming features such as a class hierarchy, inheritance, overloading, overriding, subsumption, and dynamic despatch on a distinguished object." } @InProceedings{collins_glafp97, author = {Graham Collins and Jonathan Hogg}, title = {{The circuit that was too lazy to fail}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/CollinsHogg.ps}, annote = {draft proceedings}, abstract = "This paper describes a translation of a relational hardware description language into a functional language in such a way that the user does not have to decide the direction of the data flow in the functional language. This approach relies on laziness, making the translation hard to analyse. The use of a theorem prover that supports reasoning about laziness and undefined elements allows the investigation of the validity of the translation." } @InProceedings{cutts_glafp97, author = {Quintin Cutts and Richard Connor}, title = {{ADTs as a Constructor of Type Views}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/CuttsConnor.ps}, annote = {draft proceedings}, abstract = "ADTs as a Constructor of Type Views Quintin Cutts and Richard Connor Department of Computing Science, University of Glasgow Glasgow G12 8QQ, Scotland Abstract Large, long-lived applications are usually subject to change during their lifetime. Minimising the cost of change is seen as an important research goal. Persistent systems have identified a linking mechanism which can support type-safe incremental linking of individual application components. This paper describes a conflict in the use of this linking mechanism in conjunction with abstract data types (ADTs) been recognised as important for successfully decomposing applications into components. The paper presents a new ADT model in which existing data structures with a concrete type view are coerced to have one or more abstract views. Using these views, the underlying data structures can be used in exactly the same manner as earlier ADT models. However, access to the original underlying data structure is still maintained, contrary to earlier models, providing the necessary functionality to fully support the properties of the incremental linking mechanism. The ADT model has been implemented in the persistent programming language Napier88." } @InProceedings{ellmenreich_glafp97, author = {Nils Ellmenreich and Christian Lengauer}, title = {{On functional scientific computing}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/EllmenreichLeng.ps}, annote = {draft proceedings}, abstract = "At first sight, scientific computing seems an application area ideally suited for functional programming: scientific programs are described by a constructive input/output specification. However, scientific programmers remain still reluctant to consider the functional approach. The difficulties lie partially in the applications and partially in the features and performance properties which current functional programming languages offer. We study two examples: reflexive transitive closure and LU decomposition. For each, we offer what we believe to be a natural functional solution and examine its strengths and weaknesses. From this, we try to draw conclusions about the shape of scientific problems suitable for functional programming and to state properties which would make a functional language more suitable for scientific programming." } @InProceedings{hammond_glafp97, author = {Kevin Hammond and Hans-Wolfgang Loidl and Phil Trinder}, title = {{Parallel Cost Centre Profiling}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/HammondLoidlTrinder.ps}, annote = {draft proceedings}, abstract = "Good profiling is a major issue in extracting performance from parallel programs. We report on a novel synthesis of sequential cost-centre profiling and state-of-the-art parallel simulation for the pure functional language Haskell that promises to provide detailed and accurate information about parallel Haskell programs. Exploiting simulation also improves the quality of sequential cost centre profiling, though at a significant performance overhead." } @InProceedings{hall_glafp97, author = {C. Hall and H-W. Loidl and P. Trinder and K. Hammond and J. O'Donnell}, title = {{Refining a parallel algorithm for calculating bowings}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/Hall-et-al.ps}, annote = {draft proceedings}, abstract = "String players know that bowing properly is the hardest skill they have to learn. In other work [4], we develop an algorithm that calculates bowings for BowT ech, a project that supports string performers. This algorithm takes a significant amount of time to execute (in our second test case, over an hour for the implementation, written in Ada). We have implemented the algorithm in GpH, a parallel superset of Haskell, and measured the quality of output on six pieces of music. The parallel program has been refined using the GranSim simulator and measured on two parallel architectures: a shared memory multiprocessor and a network of workstations." } @InProceedings{karlsen_glafp97, author = {Einar Karlsen}, title = {{The UniForM concurrency toolkit and its extensions to Concurrent}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/Karleson.ps}, annote = {draft proceedings}, abstract = "The UniForM Concurrency Toolkit is a comprehensive library of abstract data types for shared memory and message passing communication that extends Concurrent Haskell with a concept of dynamic types, thread identity, thread local state and selective communication as found in CML. Notable features of the toolkit are its support for reentrant monitors, interactors providing iterative choice and the uniform representation of internal channel events as well as external tool events of the environment in the form of first class synchronous event values." } @InProceedings{loidl_glafp97, author = {Hans-Wolfgang Loidl}, title = {{LinSolv: a Case Study in Strategic Parallelism}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/Loidl.ps}, annote = {draft proceedings}, abstract = "This paper discusses the parallelisation and performance tuning of a typical computer algebra algorithm, LinSolv, using evaluation strategies. We present three steps in the parallelisation process starting with a naive parallel version. As this algorithm uses infinite data structures as intermediate values it is necessary to define very sophisticated strategies in order to improve parallel performance. We also compare the strategic parallel code with pre-strategy code. This comparison shows how evaluation strategies help to localise changes needed for parallelisation. In particular, the separation between algorithmic and parallel code makes the structure of the parallelism much clearer." } @InProceedings{mckenzie_glafp97, author = {Bruce McKenzie}, title = {{The generation of strings from a CFG using a functional language}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/McKenzie.ps}, annote = {draft proceedings}, abstract = "It is common to describe the input to many programs and systems in terms of a context free grammar (CFG). In order to test programs that process strings generated from such grammars it would be extremely useful to have effective methods of generating strings from the grammar itself. This paper explores a number of interesting issues that arise in generating such strings in the context of functional programming languages. A number of features commonly provided in functional languages, such as lazy evaluation and infinite data structures, along with the ease with which memoization of function can be implemented are surprisingly useful in the solution of this problem. The paper presents two distinct solutions to this problem. The first presents a method that generates all possible strings in order of increasing length. The second shows how to generate strings from the grammar at random such that all strings of length n are produced with equal probability. It is often necessary in practice to perform manipulations by hand on a CFG in order to convert it into some particular form. For example to use recursive descent parsing techniques it is necessary to remove left recursion. A key requirement of the second random generation approach are counts of the number of strings of length $m+n$ generated by the grammar. We show how these counts can be useful in providing a partial check that such manipulations of a grammar have been performed without (accidentally) changing the language generated." } @InProceedings{mogensen_glafp97, author = {Torben Mogensen}, title = {{2-state fixed point iteration in a modified Plotkin powerdomain}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/Mogenson.ps}, annote = {draft proceedings}, abstract = "Powerdomains are used both when describing the semantics of nondeterministic programming languages and when doing abstract interpretation of deterministic programming languages. In the latter case, the restrictions imposed on sets in the usual powerdomain constructions can lead to less precise results than desired. We show a variant of the Plotkin (convex) powerdomain which impose fewer restrictions on the sets used. In this powerdomain, however, point-wise extensions of continuous functions are not necessarily continuous, and hence the least fixed-point of a function might be different from the limit of the sequence obtained by iterated application of the function to the least element in the powerdomain. We solve this problem by showing that a 2-stage process involving limits in two different orderings will yield the least fixed-point. We show an example of an analysis that benefit from the extended precision obtained by using the new powerdomain construction." } @InProceedings{o'donnell_glafp97, author = {John O'Donnell and Gudula Ruenger}, title = {{A coordination level functional implementation of the hierarchical radiosity algorithm}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/ODonnellRuenger.ps}, annote = {draft proceedings}, abstract = "The hierarchical radiosity algorithm has several characteristics that suggest it might be particularly suitable for definition in a functional language. These include recursive control, tree data structures, data structures of unbounded size and circular data structures. However, previous versions of the algorithm are inherently imperative and they make essential use of side effects. This paper presents a new formulation of the algorithm, implementing the top (coordination) level of the radiosity algorithm in Haskell, a standard nonstrict pure functional language. The program does not mimic the side effects or the imperative coroutining control constructs from previous imperative implementations; instead, we present a new algorithm which is purely functional, suitable for parallelization, and makes essential use of lazy evaluation." } @InProceedings{trinder_glafp97, author = {P.W. Trinder and K. Hammond and H-W. Loidl and S.L. {Peyton Jones} and J. Wu}, title = {{Go-faster Haskell, or: Data-intensive Programming in Parallel Haskell}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/TrinderEtAl.ps}, annote = {draft proceedings}, abstract = "We have recently constructed an integrated programming environment to support programming in Glasgow Parallel Haskell GpH. This paper descibes the construction of several data-intensive parallel programs using the environment. It focuses on a road-traffic accident application because it is a real problem with real data, and is the first non-trivial GpH program to achieve wall-clock speedups: a factor of 10 on 16 processors. Using our portable runtime system the programs have been measured on two machines with fundamentally different architectures: a shared-memory and a distributed-memory machine." } @InProceedings{winstanley_glafp97, author = {Noel Winstanley}, title = {{A type-sensitive preprocessor for Haskell}}, booktitle = WSTITLE, year = 1997, organization = {Department of Computing Science, University of Glasgow}, address = {Ullapool, Scotland}, month = {September}, url = {http://www.dcs.gla.ac.uk/fp/workshops/fpw97/Winstanley.ps}, annote = {draft proceedings}, abstract = "This paper examines the use of type-safe linguistic reflection in Haskell, a functional language. Several uses are identified: providing an extensible system of instance derivation; extending derivation beyond type classes and providing a method for polytypic programming. A preprocessor for Haskell is presented that performs compile-time reflection upon type declarations in source code." } %$%node The End, , 1997, top %$%section The End