Subject: [Fwd: the state of the art of predicate dispatching]
From: Craig Chambers (chambers@cs.washington.edu)
Date: Mon Jul 09 2001 - 10:01:17 PDT
FYI.
Doug Orleans wrote:
> 
> Hi folks.  I'm looking into predicate dispatching design &
> implementation for my PhD thesis research-- in particular, the
> relationship between predicate dispatch and aspect-oriented
> programming-- and I wanted to see what the current state of the art
> was.
> 
> 0. People: Is there anyone else I should add to this discussion?
> 
> 1. Publications: As far as I can tell, there are still only two
>    published papers on predicate dispatching: "A Unified Theory of
>    Dispatch" from ECOOP98, and "Efficient Multiple and Predicate
>    Dispatching" from OOPSLA99. Am I missing anything?  Aaron, did you
>    finish your master's thesis on adding predicate dispatching to
>    CLOS?  Is it available online?
> 
> 2. Code: The GUD implementation is avalable from the Cecil project
>    site, but there is no source code.  Can this be made available?
>    How about the code from Aaron's thesis and Greg's DVML project?
>    I've been working on a toy implementation in Scheme, but I'd like
>    to compare notes because I'm pretty sure some of my algorithms are
>    not the best.  In particular, neither of the papers really went
>    into enough detail about the predicate implication algorithm-- I am
>    currently doing the "brute force" approach, i.e. checking every
>    consistent truth assignment for the atoms of (or (not P1) P2),
>    which works, but seems pretty ugly.
> 
> 3. Functionality: The biggest thing that seems to be missing from
>    predicate dispatching as described in the two papers is
>    call-next-method/resend.  Has anyone thought of an elegant way to
>    handle this?  I think it boils down to providing a way to select a
>    subset of the methods that were applicable to the current set of
>    arguments, such that there is another single most specific method
>    in this subset.  Basically some generalization of Cecil's directed
>    resend is what I'm aiming for.
> 
> 4. AOP: Has anyone else thought much about the connections between AOP
>    and predicate dispatching?  The similarities between predicates and
>    AspectJ's pointcuts seem significant to me, even down to both
>    producing a set of bindings to be used in the method/advice.
>    Basically, both systems let you say "when a function is called, and
>    condition X is true, do Y".  My toy predicate dispatch system has,
>    instead of generic functions containing methods, a single global
>    set of methods that dispatch on join points, where a join point
>    object contains the generic function and the list of arguments.
>    Most method predicates just compare the jp's gf to the gf that the
>    method "belongs to", but aspectual predicates can make more
>    interesting decisions based on the gf (like, testing if the gf is
>    in a set).  Right now my stumbling block is how to get an aspectual
>    predicate to be considered more specific than the predicate for the
>    actual method implementing the join point; I think I may make
>    "before", "after", and "around" be different types of join points
>    from regular join points, so that an aspectual predicate only has
>    to be more specific than other aspectual predicates.  [Sorry if
>    none of this makes sense-- I can post some code examples if you want.]
> 
> 5. The future: What does the future hold for predicate dispatching?
>    It seems like the Cecil team has switched focus to spreading the
>    multiple-dispatch word, i.e. to Java programmers, but I assume
>    you've still got some predicate dispatch projects on the back
>    burner?  Jonathan, will you be incorporating some form of predicate
>    dispatching into Proto?
> 
> Thanks for reading.  I look forward to your responses.  If you'd
> rather not be in this discussion, let me know and I'll take you off
> the address list.
> 
> --Doug Orleans
> Northeastern University
> dougo@ccs.neu.edu
_______________________________________________
Cecil mailing list
Cecil@cs.washington.edu
http://majordomo.cs.washington.edu/mailman/listinfo/cecil
This archive was generated by hypermail 2b25 : Mon Jul 09 2001 - 10:02:05 PDT