Entry Dean:1995:SSO from sigplan1990.bib

Last update: Thu Apr 12 03:37:15 MDT 2012                Valid HTML 3.2!

Index sections

Top | Symbols | Numbers | 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{Dean:1995:SSO,
  author =       "Jeffrey Dean and Craig Chambers and David Grove",
  title =        "Selective specialization for object-oriented
                 languages",
  journal =      j-SIGPLAN,
  volume =       "30",
  number =       "6",
  pages =        "93--102",
  month =        jun,
  year =         "1995",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:06 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/207110/index.html",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/pldi/207110/p93-dean/",
  abstract =     "Dynamic dispatching is a major source of run-time
                 overhead in object-oriented languages, due both to the
                 direct cost of method lookup and to the indirect effect
                 of preventing other optimizations. To reduce this
                 overhead, optimizing compilers for object-oriented
                 languages analyze the classes of objects stored in
                 program variables, with the goal of bounding the
                 possible classes of message receivers enough so that
                 the compiler can uniquely determine the target of a
                 message send at compile time and replace the message
                 send with a direct procedure call. {\em
                 Specialization\/} is one important technique for
                 improving the precision of this static class
                 information: by compiling multiple versions of a
                 method, each applicable to a subset of the possible
                 argument classes of the method, more precise static
                 information about the classes of the method's arguments
                 is obtained. Previous specialization strategies have
                 not been selective about where this technique is
                 applied, and therefore tended to significantly increase
                 compile time and code space usage, particularly for
                 large applications. In this paper, we present a more
                 general framework for specialization in object-oriented
                 languages and describe a goal directed specialization
                 algorithm that makes selective decisions to apply
                 specialization to those cases where it provides the
                 highest benefit. Our results show that our algorithm
                 improves the performance of a group of sizeable
                 programs by 65\% to 275\% while increasing compiled
                 code space requirements by only 4\% to 10\%. Moreover,
                 when compared to the previous state-of-the-art
                 specialization scheme, our algorithm improves
                 performance by 11\% to 67\% while simultaneously
                 reducing code space requirements by 65\% to 73\%.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci. and Eng., Washington Univ.,
                 Seattle, WA, USA",
  annote =       "Published as part of the Proceedings of PLDI'95.",
  classification = "C6110J (Object-oriented programming); C6120 (File
                 organisation); C6140D (High level languages); C6150C
                 (Compilers, interpreters and other processors); C6150G
                 (Diagnostic, testing, debugging and evaluating
                 systems)",
  keywords =     "algorithms; Compiled code space requirements; Direct
                 procedure call; Dynamic dispatching; Goal-directed
                 specialization algorithm; languages; Message receivers;
                 Message send; Method lookup; Multiple versions; Object
                 classes; Object-oriented languages; Optimizations;
                 Optimizing compilers; performance; Program performance;
                 Program variables; Run-time overhead; Selective
                 decisions; Selective specialization; Static class
                 information; Static information",
  subject =      "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Object-oriented languages. {\bf D.3.4}
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization. {\bf D.3.4} Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf D.2.8} Software,
                 SOFTWARE ENGINEERING, Metrics, Performance measures.",
  thesaurus =    "Abstract data types; Message passing; Object-oriented
                 languages; Object-oriented programming; Optimising
                 compilers; System monitoring",
}

Related entries