Haskell implementor wanted
~~~~~~~~~~~~~~~~~~~~~~~~~~
Dept of Computing Science, Glasgow University
We have a vacancy for a Research Assistant (USA, read "Research
Associate") to work on implementations of the functional language
Haskell for both sequential and parallel machines.
Closing date: 2 Oct 1992
Start date: 1 Nov 1992 or as soon as possible thereafter.
Salary: 12-14k pounds (1A.5 on UK scales); exceptionally more.
Duration: 3 years
Contact: Simon Peyton Jones, Dept of Computing Science,
University of Glasgow, G12 8QQ Scotland.
Email: [EMAIL PROTECTED]
Phone: +44 41-330-4500
THE PROJECT
~~~~~~~~~~
The project's main goal is to gain a *quantitative* understanding of how
lazy functional programs work. Which operations are common, and which
ones are rare? How often can updates be avoided? How often does an
EVAL find an already-evaluated object? And so on.
The RISC revolution in computer architecture was based on just such a
quantitative understanding. It demonstrated graphically that the
intuitions of designers can be far from reality; perhaps the same is
true of implementors of functional languages. We hope to find out.
We are interested in both sequential and parallel systems, and we have
a well-developed compiler for Haskell to use as the base for the work.
The original grant proposal (6 pages) is available for further details.
THE POST
~~~~~~~
We seek someone who can contribute to all aspects of the project, with
particular emphasis on the work on parallelism. The parallelism part
relates partly to our in-house GRIP parallel processor (opportunities
for getting the soldering out here, if you are that way inclined), but
we also hope to extend the work to commerically-available parallel
platforms.
A primary requirement is that you should enjoy the process of building
large systems, and gain satisfaction from making them work. This is
no esoteric pencil-and-paper job: you will spend a large fraction of
your time working on the compiler itself and its runtime system,
building tools, setting up systems to perform large numbers of
performance measurements and digest the results, finding the
bottlenecks, designing and implementing improvements, measuring their
effect, and so on.
You may regard this sort of thing as "just hacking" -- if so this is
not the job for you. We believe it is much more than that. Creating
large systems which work is itself a high accomplishment (one we are
still learning). Furthermore, almost all our recently-published work has
arisen directly from the practical challenges of creating such systems
(eg the Spineless Tagless G-machine and its language, unboxed values,
monadic I/O, update avoidance analysis).
Having said that, there is plenty of raw sweat involved too.
You will probably have a PhD, and probably have more than a passing
familiarity with functional programming and with Unix tools (make,
perl, etc). We have a well-resourced Sun-based computing environment.
THE TEAM
~~~~~~~~
You would work as part of a strong and close-knit team: Simon Peyton
Jones, Phil Wadler, John Launchbury, and Will Partain.
The Functional Programming Group at Glasgow has an international
reputation. It covers a range from heavy-duty theory through to very
practical implementations. It holds an annual internal workshop whose
proceedings are published by Springer.