[PRL] review of proposal
Matthias Felleisen
matthias at ccs.neu.edu
Mon May 23 11:30:08 EDT 2005
For the benefit of our junior members, I wrote a review that I would
almost deliver to NSF for Mitch's proposal. You can hopefully tell
where I use phrases that are inappropriate and where I left out
explanations of detailed problems with the proposal. The format is
almost completely what NSF demands. I left out a few ever-changing
things. -- Matthias
MW, Foundational Studies in Programming
Summary: This proposal is really a combination of two separate, disjoint
mini-proposals.
The first mini-proposal concerns proofs of observational equivalences.
The
problem is to prove that two phrases in a language are
indistinguishable
in all programs (context) in which they could occur. In the late 60s,
70s,
and 80s, people studied the theory of observational equivalence in a
purely functional context. In the 80s, they turned their attention to
imperative languages. Meyer (later with Sieber) showed in several
papers
how difficult it was to reason about observational equivalence in the
presence of memory allocation and mutation (both in an Algol-like
setting
and in a higher-order setting).
The PI proposes to study a modification of the bisimulation approach to
this problem. A bisimulation is a maximal-fixpoint approach to proving
observational equivalences (adapted from concurrency to the sequential
world). Through a rather technical looking change to the conventional
definition, the relation can apparently deal with allocation and
mutation
in a surprisingly straightforward manner. The proposal claims (w/o
proof)
that the technique can cope with all of Meyer's puzzles.
The second mini-proposal concerns the study of syntactic abstraction
(aka
macros), specifically two different aspects: the notion of hygienic
macros
(now standard in Scheme) and macros for languages with old-fashioned,
stupid syntax :-). With respect to hygiene, the proposal first explains
the problem (but see below) and then indicates that the PI and his
students have a new way of specifying hygiene as a variation of
alpha-equivalence. With respect to macros for conventional syntax, the
proposal is based on Cardelli et al.'s work on extensible languages. It
explains why this is not syntactic abstraction, how to use it for macro
abstraction, and why the resulting system should expand macros in a
"lazy"
rather than an "eager" fashion.
Evaluation:
A proposal should explain a problem, describe a solution approach in
sufficient detail (or several approaches), and sketch a realistic
path. It
should also compare and contrast its approach with related attempts.
This proposal succeeds with this for the first mini-proposal but it
fails
almost completely in the second half.
Observational equivalence: The PI should have explained the topic and
its
relevance so that non-experts on this panel can understand it. Having
said
this, the proposal clearly forwards an idea on how to tackle this
extremely difficult problem from a new angle. I am impressed by the
kind
of puzzles they can solve now. Earlier approaches based on operational
semantics have succeeded in doing some of this, but the PI's approach
appears to be powerful. -- The major problem I have with this part are
the
exaggerated claims that any of this may apply to OOP (possibly) or AOP
(fantasy land).
I wish I understood how this compares to approaches based on
denotational
semantics (especially:
@article{ abramsky99full,
author = "Samson Abramsky and Guy McCusker",
title = "Full abstraction for {Idealized Algol} with passive
expressions",
journal = "Theoretical Computer Science",
volume = "227",
number = "1--2",
pages = "3--42",
year = "1999",
url = "citeseer.ist.psu.edu/abramsky98full.html" }
and other new approaches based on games.)
Macros: The hygiene problem is explained reasonably well -- for people
who
like parentheses _and_ indentation, though I believe that "hygiene" is
misrepresented in this proposal. (I personally transported the phrase
from
a Brandregt paper to the first hygiene paper. -- MF) The idea of using
alpha equivalence to model this notion is obvious; almost everyone who
studied the problem starting in 1986 had it. The plan sounds
reasonable. What is missing is a new idea. If it is in there, I missed
it. Completely.
For the concrete syntax part, the PI and his students are taking a
novel
approach, using Cardelli et al.'s extensible language as a macro
system. I
wish they had included some examples so that I can understand how they
did
this. I don't even know whether they did it for BASIC or SML/NJ with
higher-order functors. Given the writing, it is not obvious what they
have
accomplished, whether it's research or a cute hack. The discussion of
lazy
vs eager is entirely appropriate, though extremely abstract. Again, I
wish
they had explained this with examples. Worse, this part too entirely
misses an explanation of how they intend to do better than the numerous
failed approaches from the past, starting with Daniel Weise all the
way to
Maya.
Details:
The proposal feels "airy" that is, it wastes a lot of space. It repeats
the
summary inside the proposal, it doesn't use the full allotment of
space. I
would have liked to see the PI use the extra space to explain things in
sufficient detail.
-- marked in the proposal --
Example: You mention macro systems as part of the module system but you
completely fail to discuss
How would your concrete syntax system deal with something like this:
(module foo mzscheme
(m 10)
(define-syntax m
(syntax-rules ()
[(_ x) (printf ">>> ~s~n" x)]))
)
in your system?
--- more details ---
PI: The PI is well-known for delivering theoretical results for many
years,
and we can expect that he will do so in the future. According to the
prior
results section, he has also graduated three PhD students over the past
five years.
Broad Impact: The proposal attempts to explain its impact on the
context of
PL research and CS but the prose is entirely boiler plate. So let's
hope
it will have some.
More information about the PRL
mailing list