Entry Millstein:2009:EMP from toplas.bib

Last update: Tue May 1 02:05:46 MDT 2012                Valid HTML 3.2!

Index sections

Top | Symbols | Math | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

BibTeX entry

@Article{Millstein:2009:EMP,
  author =       "Todd Millstein and Christopher Frost and Jason Ryder
                 and Alessandro Warth",
  title =        "Expressive and modular predicate dispatch for {Java}",
  journal =      j-TOPLAS,
  volume =       "31",
  number =       "2",
  pages =        "7:1--7:54",
  month =        feb,
  year =         "2009",
  CODEN =        "ATPSDT",
  DOI =          "http://doi.acm.org/10.1145/1462166.1462168",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Feb 19 14:20:38 MST 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toplas/;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  abstract =     "{\em Predicate dispatch\/} is an object-oriented (OO)
                 language mechanism for determining the method
                 implementation to be invoked upon a message send. With
                 predicate dispatch, each method implementation includes
                 a predicate guard specifying the conditions under which
                 the method should be invoked, and logical implication
                 of predicates determines the method overriding
                 relation. Predicate dispatch naturally unifies and
                 generalizes several common forms of dynamic dispatch,
                 including traditional OO dispatch, multimethod
                 dispatch, and functional-style pattern matching.
                 Unfortunately, prior languages supporting predicate
                 dispatch have had several deficiencies that limit the
                 practical utility of this language feature.\par

                 We describe JPred, a backward-compatible extension to
                 Java supporting predicate dispatch. While prior
                 languages with predicate dispatch have been extensions
                 to toy or nonmainstream languages, we show how
                 predicate dispatch can be naturally added to a
                 traditional OO language. While prior languages with
                 predicate dispatch have required the whole program to
                 be available for typechecking and compilation, JPred
                 retains Java's modular typechecking and compilation
                 strategies. While prior languages with predicate
                 dispatch have included special-purpose algorithms for
                 reasoning about predicates, JPred employs
                 general-purpose, off-the-shelf decision procedures. As
                 a result, JPred's type system is more flexible,
                 allowing several useful programming idioms that are
                 spuriously rejected by those other languages. After
                 describing the JPred language informally, we present an
                 extension to Featherweight Java that formalizes the
                 language and its modular type system, which we have
                 proven sound. Finally, we discuss two case studies that
                 illustrate the practical utility of JPred, including
                 its use in the detection of several errors.",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  keywords =     "dynamic dispatch; modular typechecking; Predicate
                 dispatch",
}

Related entries