MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell (2001) [61 citations — 1 self]

Download:
pdf
by Simon Peyton Jones
Engineering theories of software construction
http://research.microsoft.com/~simonpj/Papers/marktoberdorf/mark.pdf.gz
Add To MetaCart

Abstract:

Functional programming may be beautiful, but to write real applications we must grapple with awkward real-world issues: input/output, robustness, concurrency, and interfacing to programs written in other languages. These lecture notes give an overview of the techniques that have been developed by the Haskell community to address these problems. I introduce various proposed extensions to Haskell along the way, and I offer an operational semantics that explains what these extensions mean. This tutorial was given at the Marktoberdorf Summer School 2000. It will appear in the book “Engineering theories of software construction”, to be published in the NATO ASI series during 2001. This version has a few errors corrected compared with the published version. Last revision:

Citations

1128 Monads for functional programming – Wadler - 1992
399 The Theory and Practice of Concurrency – Roscoe - 1997
393 Comprehending monads – Wadler - 1992
393 A syntactic approach to type soundness – Wright, Felleisen - 1994
354 Computational Lambda-Calculus and Monads – Moggi - 1989
275 Denotational semantics: a methodology for language development – Schmidt - 1986
204 The revised report on the syntactic theories of sequential control and state – Felleisen, Hieb - 1992
156 Systems Programming with Modula-3 – NELSON - 1991
148 A natural semantics for lazy evaluation – Launchbury - 1993
145 Concurrent Haskell – Jones, Gordon, et al. - 1996
111 Communicating and Mobile Systems: the Pi-Calculus – Milner - 1999
100 Algebraic reconstruction of types and effects – Jouvelot, Gifford - 1991
94 How to Declare an Imperative – Wadler - 1997
93 Compiling Standard ML to Java bytecodes – Benton, Kennedy, et al. - 1998
86 Concurrent Programming in ML – Reppy - 1999
72 Haskell—The Craft of Functional Programming – Thompson - 1999
56 The marriage of effects and monads – Wadler - 1998
51 Calling hell from heaven and heaven from hell – Finne, Leijen, et al. - 1999
43 Asemantics for imprecise exceptions – Jones, Reid, et al. - 1999
39 H/Direct: a binary foreign language interface for Haskell – Finne, Leijen, et al.
37 Algorithm + strategy = parallelism – Trinder, Hammond, et al. - 1998
35 Asynchronous exceptions in haskell – Marlow, Jones, et al. - 2001
29 Uniqueness typing for functional languages with graph rewriting semantics – Barendsen, Smetsers - 1996
28 Expressing and reasoning about non-deterministic functional programs – Hughes, O'Donnell - 1989
28 On embedding a microarchitectural design language within Haskell – Launchbury, Lewis, et al.
24 Algebraic reconstruction of types and eects – Jouvelot, Giord - 1991
23 effects, and transformations – Benton, Kennedy - 1999
20 A practical introduction to denotational semantics – Allison - 1986
20 Stretching the storage manager: weak pointers and stable names in Haskell – Jones, Marlow, et al. - 1999
18 Finalization in the collector interface – Hayes - 1992
18 The Haskell school of Expression – Hudak - 2000
17 Card: a foreign-language interface for Haskell – Nordin, Jones, et al. - 1997
16 Correctness of monadic state: An imperative call-by-need calculus – Ariola, Sabry - 1998
16 Scripting COM components in Haskell – Jones, Simon, et al. - 1998
13 MCORBA: a CORBA binding for Mercury – Jeffery, Dowd, et al. - 1999
13 The marriage of eects and monads – Wadler - 1998
12 Optimizing ML using a hierarchy of monadic types – Tolmach - 1998
7 Writing high-performance server applications in haskell – Marlow
6 C -> Haskell: yet another interfacing tool – Chakravarty - 1999
4 Tool integration in a functional programming language – KARLSEN - 1998
3 as an automation controller – LEIJEN, HOOK - 1999
3 Lambada: Haskell as a better Java – MEIJER, FINNE - 2000
3 Public report of the SADLI project: safety assurance in diagnostic laboratory imaging – POOLE - 1995
3 eects, and transformations – Benton, Kennedy - 1999
2 Concurrent programming in Erlang (2nd edition – WIKSTROM, WILLIAMS - 1996
2 On the expressiveness of purely-functional I/O systems – HUDAK, SUNDARESH - 1989