Simon Peyton Jones
|
Simon Peyton Jones,
Microsoft Research Ltd,
7 JJ Thomson Avenue,
Cambridge CB3 0FB, England
Email: simonpj@microsoft.com
Phone: +44 1223 479 848 (direct)
Fax: +44 1223 479 999
WWW: http://research.microsoft.com/~simonpj/
Directions for how to get
to MSR Cambridge
|
There is a Wiki talk page
on which you are most welcome to discuss or offer constructive feedback on any of these papers.
- [Sept 2007] Towards open type functions
for Haskell, Tom Schrijvers, Martin Sulzmann, Simon Peyton Jones, and Manuel Chakravarty,
submitted to the Implementing Functional Languages workshop, Sept 2007 (IFL07).
- [July 2007] A taste of Haskell.
I had the chance to deliver this three-hour tutorial about Haskell at
the O'Reilly Open Source Convention in Portland, 2007. There's a video too.
- [June 2007]
Lightweight concurrency primitives for GHC,
Peng Li, Andrew Tolmach, Simon Marlow, and Simon Peyton Jones;
submitted to Haskell Workshop 2007. In this paper we try to re-factor
GHC's large and complex run-time system, so that much of it becomes a
vanilla Haskell library, with much less of it written in C.
- [June 2007]
Comprehensive comprehensions: comprehensions with "Order by" and "Group by",
Phil Wadler and Simon Peyton Jones, submitted to Haskell Workshop 2007.
We explore some generalisations of list comprehensions that give them
the power of the SQL GROUP BY and ORDER BY constructs.
- [April 2007]
Constructor specialisation for Haskell programs,
Simon Peyton Jones. An in-depth description of a new optimising transformation in GHC.
- [April 2007]
Faster laziness using dynamic pointer tagging,
Simon Marlow, Alexey Rodriguez Yakushev, and Simon Peyton Jones. How to squeeze another
10-15% performance out of GHC by tagging pointers.
- [April 2007]
Scrap your type applications,
Barry Jay and Simon Peyton Jones. Have you ever thought that the type applications in System F
are verbose and often redundant? Here's a possible way to get rid of (most of) them.
- [Jan 2007] A History of Haskell: being lazy with class.
Paul Hudak (Yale University), John Hughes (Chalmers University),
Simon Peyton Jones (Microsoft Research),
Philip Wadler (Edinburgh University), The Third ACM SIGPLAN
History of Programming Languages Conference (HOPL-III)
San Diego, California, June 9-10, 2007.
This long (55-page) paper describes the history of Haskell, including its genesis
and principles, technical contributions, implementations and tools,
and applications and impact.
- Papers about parallelism in Haskell
- [Aug 2005, Nov 2005, Jun 2006]
Papers about Software Transactional Memory,
(with Tim Harris, Maurice Herlihy, and Simon Marlow).
This series of papers about transactional memory in Haskell,
describes a new coordination mechanism for concurrent programs.
- Papers about types
- [Apr 2006] System F with Type Equality Coercions
(with Martin Sulzmann and Manuel Chakravarty). This paper describes System FC, a modest extension
to System F that can accommodate GADTs, associated types, and functional dependencies.
GHC now uses FC as its intermediate language. (Rejected by ICFP'06; revised;
rejected by POPL'07; revised again; submitted to TLDI'07.)
- [Revised (again) April 2006]
Simple unification-based type inference for GADTs
(with Dimitrios Vytiniotis, Stephanie Weirich, and Geoffrey Washburn),
ICFP'06.
This is a completely-rewitten and much-simplified verison of our
orignal "wobbly-type" paper. It has been rewritten from beginning to end
so, if you liked the earlier paper, this one is probably worth reading too.
The big recent change is the idea of a "fresh most general unifier".
- [Revised April 2006]
Boxy types: type inference for higher-rank types and impredicativity
(with Dimitrios Vytiniotis and Stephanie Weirich); ICFP'06.
The title is self-explanatory, but we have thoroughly revised the paper
in the last couple of months. It is also now fully implemented in GHC.
- [Revised Feb 2006] Understanding functional dependencies
via Constraint Handling Rules,
Martin Sulzmann, Gregory J. Duck, Simon Peyton Jones, and Peter J. Stuckey.
To appear in the Journal of Functional Programming.
- [Revised Feb 2006] Practical type inference for
arbitrary-rank types (with Stephanie Weirich, Dimitrios
Vytiniotis, Mark Shields), to appear in the Journal of Functional Programming.
We have revised this paper
yet again! Now it has much more precisely-stated theorems, and proofs
for them. We also found a way to simplify the higher-rank type system,
using a technique we call "deep skolemisation". So it's worth re-visiting.
Long in gestatation, the paper describes the approach that GHC takes to type inference for
higher-rank types. It has a strongly tutorial flavour, and comes with an
executable implementation.
-
[April 2005] Associated type synonyms
(with Manuel Chakravarty and Gabrielle Keller). Our earlier paper discussed
allowing data type declarations in type-class signatures. This follow-up
(submitted to ICFP'05) suggests allowing type synonyms too.
- [Sept 2006] Extended static checking for Haskell
(Dana Xu, Haskell workshop 2006)
desribes preliminary work on static program verification for Haskell.
This will form the basis of Dana's PhD thesis.
- [Jan 2006] Haskell
is not not ML (ESOP'06; main credit to Ben Rudiak-Gould
and Alan Mycroft) describes a CPS-based intermediate language
that can serve as a target for both call-by-name and call-by-value.
-
[July 2005] A monadic framework for delimited continuations
(with Kent Dybvig and Amr Sabry, JFP 17(6) Nov 2007, pp 687-730).
This foray into continuations,
arising from Amr's sabbatical visit in 2004, gives a monadic way of
understanding delimited continuations. You can
download an implementation of
the approach in the paper, written by Dan Doel.
-
[April 2005] Scrap your boilerplate with class: extensible
generic functions (with
Ralf Laemmel). The third paper in the "scrap your boilerplate" series; this
one shows how to write open or extensible generic functions,
something we previously thought was impossible.
-
[Jan 2005] The full text of my out-of-print 1987 book
The implementation
of functional programming languages is now available online, thanks to
the heroic efforts of Marnie Montgomery.
-
[March 2004] Lexically scoped type variables,
(with Mark Shields). Rejected by ICFP 2004.
-
[March 2004] Champagne Prototyping: A
Research Technique for Early Evaluation of Complex End-User Programming Systems,
with Margaret Burnett and Alan Blackwell. VL/HCC'04. This is a
follow on to our earlier paper "A user-centred
approach to functions in Excel".
- [Nov 2000] Featherweight concurrency in a portable
assembly language.
I'm a researcher at Microsoft Research in Cambridge, England. I started here in
Sept 1998. I'm also an Honorary Professor of the
Computing Science Department at Glasgow
University, where I was a professor during 1990-1998.
I am married to Dorothy, a priest in the Church of England. We have three
children, Michael, Sarah, and Margaret.
I'm interested in the design, implementation, and application of lazy
functional languages. In practical terms, that means I spend a most of my time
on the design and implementation of the language
Haskell. In particular, much of my work is focused
around
the Glasgow Haskell Compiler, and its ramifications.
Microsoft Research is next door to the Cambridge University Computer Lab, and I
co-supervise a number of PhD students at the Computer Lab. If you are
interested in doing a PhD at Cambridge in my area, then I am very happy to
discuss it with you.
Here is a brief biography, suitable for seminar
announcements and suchlike.
Simon Peyton Jones: simonpj@microsoft.com
|