[PRL] Interesting Things from ICFP 03
Mitchell Wand
wand at ccs.neu.edu
Tue Sep 2 18:33:53 EDT 2003
Folks,
This is a list of papers and things that I marked down as worth
pointing out to one or more people.
1. Heeran, Hage, and Swierstra had a paper on "Scripting the Type
Inference Process". They had a nifty little language for
identifying (declaratively) the various unifications in a
constraint-based type checker, and attaching error messages to
them. This was cute for at least two reasons:
-- It solved an instance of the "error messages clutter code"
problem, which I had proposed earlier as an interesting
problem, and
-- It was also a nice example of a domain-specific aspect
language: the unifications in the typechecker are the join
points, there was a pcd language for specifying them (and
passing info to the error processor), and the actions were
printing a custom error message for each unification.
2. LeBotlan and Remy, "ML^F: Raising ML to the power of system F."
They did some kind of an embedding of System F into ordinary ML.
I didn't follow this in real time, but the folks I went to dinner
with that night were very excited about this.
3. Rex Page gave a paper about his finite-math course
at Oklahoma. He does induction and related topics, using
programming examples (eg associativity of append...). He
definitely oversold it (his title was "Software is discrete
mathematics"), but there might be some ideas and/or materials here
that we could adapt. He says to google Project Beseme.
4. "Dynamic Rebinding for marshalling and update, with destruct-time
lambda" by Biermann, Wansbrough and several others. He proposed
some variations on lambda-v that he claimed made things like
marshalling and update easier/better. I followed the talk very
well, and marked it down as interesting, but I can't remember any
of the details just now.
5. "A user-centered approach to functions in Excel" by Peyton Jones,
Blackwell, and Burnett. Margaret Burnett gave a nice summary of
the human-factors analysis they did in adding a user-defined
function package to Excel. The package is only mildly
interesting, but her analyses may give us some tools for analyzing
our human interfaces and new languages.
6. "Parsing Polish, Step by Step (Functional Pearl)", by Hughes and
Swierstra. Modifying the parsing monad in Haskell so it works
on-line rather than lazily. I wrote "Dale V" next to this in my
program, though again right now I don't remember why.
7. "Boxes go Bananas: Encoding Higher-order abstract syntax with
parametric polymorphism" by Washburn and Weirich. Neat discussion
of higher-order bananas and why they're hard.
8. "FreshML: Programming with binders made simple" by Shinwell,
Pitts, and M. Gabbay. They've reduced Pitt's theory of bound
names to a largely-understandable programming language. I wonder
if there are connections to hygiene?? Ryan should probably look
at this.
9. "Optimistic Evaluation: An adaptive evaluation strategy for
non-strict programs" by Ennals and Peyton Jones. Nifty variations
on speculative evaluation in a lazy system. Apparently avoids the
standard pitfalls of speculative evaluation and got some nice
speedups. I don't know if there's anything in here that we can
use directly, but it's probably worth looking at.
--Mitch
More information about the PRL
mailing list