Special Issue Dedicated to ICFP 2008 Editorial
Journal of functional programming
The 13th ACM SIGPLAN International Conference on Functional Programming (ICFP) was held in Victoria, British Columbia, Canada, in September 2008. Peter Thiemann chaired the program committee. After the conference, the authors of a selection of the presented papers were invited to submit extended versions of their work for this special issue of Journal of Functional Programming dedicated to ICFP 2008. All submitted papers were reviewed by at least three referees, including at least one expert,
... least one expert, following the standard JFP procedures. In the end, four papers were accepted. These cover a broad range of topics and, taken together, we think they represent well the scope of ICFP 2008. Obtaining a meaningful space profile for a functional program is hard. It is even harder for parallel functional programs. In their paper Space profiling for parallel functional programs, Daniel Spoonhower, Guy Blelloch, Bob Harper and Phillip Gibbons pick up this challenge and present a semantics-based space profiler for parallel functional programs on shared memory multiprocessors. The underlying cost semantics enables their profiler to obtain results that are independent of implementation details of, e.g. the run-time system. At the same time, the profiler reveals that the choice of a scheduling policy can make an asymptotic difference for space consumption. This paper provides valuable insights for anyone interested in the formalisation of space usage in (parallel) functional programs and in applying such formalisations in practical tools. It, thus, contributes to both theory and practise. In his paper Concrete stream calculus, Ralf Hinze explores how the fact that suitably restricted equations on streams (infinite sequences of elements) having unique solutions can be exploited to develop a straightforward technique for proving properties about streams and stream programs. When applicable, this proof technique is an attractive alternative to coinduction as it boils down to equational reasoning, which likely is more familiar to many than the coinductive treatment. The development retains a practical focus by being carried out in Haskell. This paper is therefore a great starting point for people who want to learn about an elegant approach to stream programming and how to reason formally about such programs, https://www.cambridge.org/core/terms. https://doi.