[project @ 1996-07-19 18:36:04 by partain]
[ghc-hetmet.git] / ghc / docs / abstracts / abstracts94.tex
1 \documentstyle[11pt,slpj,abstracts]{article}
2
3 \begin{document}
4
5 % ======================================================
6
7 \title{Abstracts of GRIP/GRASP/AQUA-related papers and reports, 1994
8 }
9
10 \author{The AQUA team \\ Department of Computing Science \\
11 University of Glasgow G12 8QQ
12 }
13
14 \maketitle
15
16 \begin{abstract}
17 We present a list of papers and reports related to the GRIP, GRASP and AQUA projects,
18 covering {\em the design, compilation technology,
19 and parallel implementations of functional programming languages, especially
20 \Haskell{}}.
21
22 Most of them can be obtained by FTP.  Connect to {\tt ftp.dcs.glasgow.ac.uk},
23 and look in {\tt pub/glasgow-fp/papers}, {\tt pub/glasgow-fp/drafts}, {\tt pub/glasgow-fp/tech\_reports},
24 or {\tt pub/glasgow-fp/grasp-and-aqua-docs}.
25
26 Another useful place to look is on the Functional Programming Group WWW page:
27 {\tt ftp://ftp.dcs.glasgow.ac.uk/pub/glasgow-fp/glasgow-fp.html}.
28
29 They can also be obtained by writing to 
30 Helen McNee, Department of Computing Science,
31 University of Glasgow G12 8QQ, UK.   Her electronic mail address is
32 helen@dcs.glasgow.ac.uk.
33 \end{abstract}
34
35 \section{Published papers}
36
37 \reference{J Launchbury and SL Peyton Jones}
38 {State in Haskell}
39 {To appear in Lisp and Symbolic Computation (50 pages)}
40 {
41 Some algorithms make critical internal use of updatable state, even
42 though their external specification is purely functional.  Based on
43 earlier work on monads, we present a way of securely encapsulating
44 stateful computations that manipulate multiple, named, mutable
45 objects, in the context of a non-strict, purely-functional language.
46 The security of the encapsulation is assured by the type system, using
47 parametricity.  The same framework is also used to handle input/output
48 operations (state changes on the external world) and calls to C.
49
50 FTP: {\tt pub/glasgow-fp/drafts/state-lasc.ps.Z}
51 }
52
53 \reference{P Sansom and SL Peyton Jones}
54 {Time and space profiling for non-strict higher-order functional languages}
55 {To appear in POPL 95}
56 {
57 We present the first profiler for a compiled, non-strict, higher-order,
58 purely functional language capable of measuring {\em time}
59 as well as {\em space} usage.  Our profiler is implemented
60 in a production-quality optimising compiler for Haskell, 
61 has low overheads, and can successfully profile large applications.
62
63 A unique feature of our approach is that we give a formal
64 specification of the attribution of execution costs to cost centres.
65 This specification enables us to discuss our design decisions in a
66 precise framework.  Since it is not obvious how to map this
67 specification onto a particular implementation, we also present an
68 implementation-oriented operational semantics, and prove it equivalent
69 to the specification.
70 }
71
72
73 % pub/glasgow-fp/authors/Philip_Wadler/monads-for-fp.dvi
74
75 \reference{Philip Wadler}
76 {Monads for functional programming}
77 {in M. Broy (editor),
78 {\em Program Design Calculi}, proceedings of the International
79 Summer School directed by F. L. Bauer, M. Broy, E. W. Dijkstra, D.
80 Gries, and C. A. R. Hoare.  Springer Verlag, NATO ASI series, Series
81 F: Computer and System Sciences, Volume 118, 1994}
82 {
83 The use of monads to structure functional programs is
84 described.  Monads provide a convenient framework for simulating
85 effects found in other languages, such as global state, exception
86 handling, output, or non-determinism.  Three case studies are looked at
87 in detail: how monads ease the modification of a simple evaluator;
88 how monads act as the basis of a datatype of arrays subject to in-place
89 update; and how monads can be used to build parsers.
90 }
91
92 % pub/glasgow-fp/authors/Philip_Wadler/taste-of-linear-logic.dvi
93 \reference{Philip Wadler}
94 {A taste of linear logic}
95 {{\em Mathematical Foundations of Computer Science},
96 Gdansk, Poland, August 1993, Springer Verlag, LNCS 711}
97 {This tutorial paper provides an introduction to intuitionistic logic
98 and linear logic, and shows how they correspond to type systems for
99 functional languages via the notion of `Propositions as Types'.  The
100 presentation of linear logic is simplified by basing it on the Logic
101 of Unity.  An application to the array update problem is briefly
102 discussed.
103 }
104
105 % It's in
106 % /local/grasp/docs/short-static-semantics/new-paper/kevins-latest-version
107
108 \reference{Cordelia Hall, Kevin Hammond, Simon Peyton Jones and Philip Wadler}
109 {Type classes in Haskell}
110 {European Symposium on Programming, 1994}
111 {
112 This paper defines a set of type inference rules for resolving
113 overloading introduced by type classes.  Programs including type
114 classes are transformed into ones which may be typed by the
115 Hindley-Milner inference rules.  In contrast to other work on type
116 classes, the rules presented here relate directly to user programs.
117 An innovative aspect of this work is the use of second-order lambda
118 calculus to record type information in the program.
119 }
120
121 \reference{PL Wadler}
122 {Monads and composable continuations}
123 {Lisp and Symbolic Computation 7(1)}
124 {Moggi's use of monads to factor semantics is used to model the
125 composable continuations of Danvy and Filinski.  This yields some
126 insights into the type systems proposed by Murthy and by Danvy and
127 Filinski.  Interestingly, modelling some aspects of composable
128 continuations requires a structure that is almost, but not quite, a
129 monad.
130 }
131
132 \reference{J Launchbury and SL Peyton Jones}
133 {Lazy Functional State Threads}
134 {Programming Languages Design and Implementation, Orlando, June 1994}
135 {
136 Some algorithms make critical internal use of updatable state, even
137 though their external specification is purely functional.  Based on
138 earlier work on monads, we present a way of securely encapsulating
139 such stateful computations, in the context of a non-strict,
140 purely-functional language.  
141
142 There are two main new developments in this paper.  First, we show how
143 to use the type system to securely encapsulate stateful computations,
144 including ones which manipulate multiple, named, mutable objects.
145 Second, we give a formal semantics for our system.
146
147 FTP: {\tt pub/glasgow-fp/papers/state.ps.Z}
148 }
149
150 \reference{K Hammond, JS Mattson Jr. and SL Peyton Jones}
151 {Automatic spark strategies and granularity for a parallel functional language reducer}
152 {CONPAR, Sept 1994}
153 {
154 This paper considers the issue of dynamic thread control in the context
155 of a parallel Haskell implementation on the GRIP multiprocessor.
156 For the first time we report the effect of our thread control strategies 
157 on thread granularity, as measured by dynamic heap allocation.  This
158 gives us a concrete means of measuring the effectiveness of these strategies,
159 other than wall-clock timings which are notoriously uninformative.
160
161 FTP: {\tt pub/glasgow-fp/papers/spark-strategies-and-granularity.ps.Z}
162 }
163
164 \reference{K Hammond}
165 {Parallel Functional Programming: an Introduction}
166 {PASCO '94, Sept. 1994 (Invited Paper)}
167
168 This paper introduces the general area of parallel functional
169 programming, surveying the current state of research and suggesting
170 areas which could profitably be explored in the future.  No new
171 results are presented.  The paper contains 97 references selected from
172 the 500 or so publications in this field.
173
174 FTP: {\tt pub/glasgow-fp/papers/parallel-introduction.ps.Z}
175
176 % \section{Workshop papers and technical reports}
177
178 % The 1994 Glasgow Functional Programming Workshop papers exist in
179 % the draft proceedings at the moment.  They are being refereed, and will
180 % be published by Springer Verlag in due course.
181
182 \end{document}
183
184
185
186
187