Valid HTML 4.0! Valid CSS!
%%% -*-BibTeX-*-
%%% /u/sy/beebe/tex/bib/sigplan2000.bib, Thu Sep 21 08:17:16 2006
%%% Edit by Nelson H. F. Beebe <beebe at math.utah.edu>
%%% ====================================================================
%%%  BibTeX-file{
%%%     author          = "Nelson H. F. Beebe",
%%%     version         = "1.84",
%%%     date            = "08 November 2023",
%%%     time            = "11:52:33 MST",
%%%     filename        = "sigplan2000.bib",
%%%     address         = "University of Utah
%%%                        Department of Mathematics, 110 LCB
%%%                        155 S 1400 E RM 233
%%%                        Salt Lake City, UT 84112-0090
%%%                        USA",
%%%     telephone       = "+1 801 581 5254",
%%%     FAX             = "+1 801 581 4148",
%%%     URL             = "https://www.math.utah.edu/~beebe",
%%%     checksum        = "02923 77613 359321 3507102",
%%%     email           = "beebe at math.utah.edu, beebe at acm.org,
%%%                        beebe at computer.org (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "bibliography, BibTeX, programming languages,
%%%                        SIGPLAN",
%%%     license         = "public domain",
%%%     supported       = "yes",
%%%     docstring       = "This is a bibliography of ACM SIGPLAN
%%%                        Notices, covering 2000--2009.
%%%
%%%                        There are World Wide Web sites for the
%%%                        journal at
%%%
%%%                            http://www.acm.org/sigplan/
%%%                            https://dl.acm.org/loi/sigplan
%%%
%%%                        and
%%%
%%%                            http://www.rowan.edu/sigplan/
%%%
%%%                        and coverage of about a dozen volumes can be found at
%%%
%%%                            http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/index.html
%%%
%%%                        Several conference proceedings are published
%%%                        as volumes of SIGPLAN Notices.  Many of them
%%%                        can also be found via the ACM proceedings Web
%%%                        sites:
%%%
%%%                            http://www.acm.org/pubs/contents/proceedings/
%%%                            http://www.acm.org/pubs/contents/proceedings/asplos/
%%%                            http://www.acm.org/pubs/contents/proceedings/plan/
%%%                            http://www.acm.org/pubs/contents/proceedings/pldi/
%%%
%%%                        At version 1.84, the year coverage looks like
%%%                        this:
%%%
%%%                             1990 (   2)    1997 (   0)    2004 ( 343)
%%%                             1991 (   0)    1998 (   0)    2005 ( 181)
%%%                             1992 (   0)    1999 (   0)    2006 ( 221)
%%%                             1993 (   0)    2000 ( 224)    2007 ( 210)
%%%                             1994 (   0)    2001 ( 283)    2008 ( 243)
%%%                             1995 (   0)    2002 ( 235)    2009 ( 290)
%%%                             1996 (   0)    2003 ( 253)
%%%
%%%                             Article:       2457
%%%                             InProceedings:   18
%%%                             Proceedings:     10
%%%
%%%                             Total entries: 2485
%%%
%%%                        Some of the bibliography entries in this
%%%                        file contain abstracts.  These are governed
%%%                        by the ACM Copyright Notice for ACM SIGPLAN
%%%                        Notices, which says:
%%%
%%%                             ``Permission to copy without fee all
%%%                             or part of this material is granted
%%%                             provided that the copies are not made
%%%                             or distributed for commercial
%%%                             advantage, the ACM copyright notice
%%%                             and the title of the publication and
%%%                             its date appear, and notice is given
%%%                             that copying is by permission of the
%%%                             Association for Computing Machinery.
%%%                             To copy otherwise, or to republish,
%%%                             requires a fee and/or specific
%%%                             permission.''
%%%
%%%                        Inasmuch as this bibliography, and its
%%%                        companion files in the master collection,
%%%                        is freely distributed without charge,
%%%                        inclusion of article abstracts clearly
%%%                        falls within the copyright permissions, and
%%%                        this author considers that ACM has given
%%%                        the required permission under the terms of
%%%                        the above Copyright Notice.
%%%
%%%                        BibTeX citation tags are uniformly chosen
%%%                        as name:year:abbrev, where name is the
%%%                        family name of the first author or editor,
%%%                        year is a 4-digit number, and abbrev is a
%%%                        3-letter condensation of important title
%%%                        words. Citation tags were automatically
%%%                        generated by software developed for the
%%%                        BibNet Project.
%%%
%%%                        In this bibliography, entries are sorted in
%%%                        publication order, using bibsort -byvolume.
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%  }
%%% ====================================================================
@Preamble{
  "\input bibnames.sty " #
  "\input path.sty " #
  "\def \TM {${}^{\sc TM}$} " #
  "\hyphenation{ }"
  }

%%% ====================================================================
%%% Acknowledgement abbreviations:
@String{ack-nhfb = "Nelson H. F. Beebe,
                    University of Utah,
                    Department of Mathematics, 110 LCB,
                    155 S 1400 E RM 233,
                    Salt Lake City, UT 84112-0090, USA,
                    Tel: +1 801 581 5254,
                    FAX: +1 801 581 4148,
                    e-mail: \path|beebe@math.utah.edu|,
                            \path|beebe@acm.org|,
                            \path|beebe@computer.org| (Internet),
                    URL: \path|https://www.math.utah.edu/~beebe/|"}

%%% ====================================================================
%%% Journal abbreviations:
@String{j-SIGPLAN               = "ACM SIG{\-}PLAN Notices"}

%%% ====================================================================
%%% Publisher abbreviations:
@String{pub-ACM                 = "ACM Press"}

@String{pub-ACM:adr             = "New York, NY, USA"}

@String{pub-AW                  = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}

@String{pub-AW:adr              = "Reading, MA, USA"}

%%% ====================================================================
%%% Series abbreviations:
@String{ser-SIGPLAN               = "ACM SIG{\-}PLAN Notices"}

%%% ====================================================================
%%% Bibliography entries, in publication order:
@Article{Clinger:1990:HRF,
  author =       "William D. Clinger",
  title =        "How to Read Floating Point Numbers Accurately",
  journal =      j-SIGPLAN,
  volume =       "25",
  number =       "6",
  pages =        "92--101",
  month =        jun,
  year =         "1990",
  CODEN =        "SINODQ",
  ISBN =         "0-89791-364-7",
  ISBN-13 =      "978-0-89791-364-5",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:53 MST 2003",
  bibsource =    "Compendex database;
                 garbo.uwasa.fi:/pc/doc-soft/fpbiblio.txt;
                 http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/93542/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "See also output algorithms in
                 \cite{Knuth:1990:SPW,Steele:1990:HPF,Burger:1996:PFP,Abbott:1999:ASS,Steele:2004:RHP}.",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/pldi/93542/p92-clinger/",
  abstract =     "Consider the problem of converting decimal scientific
                 notation for a number into the best binary floating
                 point approximation to that number, for some fixed
                 precision. This problem cannot be solved using
                 arithmetic of any fixed precision. Hence the IEEE
                 Standard for Binary Floating-Point Arithmetic does not
                 require the result of such a conversion to be the best
                 approximation. This paper presents an efficient
                 algorithm that always finds the best approximation. The
                 algorithm uses a few extra bits of precision to compute
                 an IEEE-conforming approximation while testing an
                 intermediate result to determine whether the
                 approximation could be other than the best. If the
                 approximation might not be the best, then the best
                 approximation is determined by a few simple operations
                 on multiple-precision integers, where the precision is
                 determined by the input. When using 64 bits of
                 precision to compute IEEE double precision results, the
                 algorithm avoids higher-precision arithmetic over 99\%
                 of the time.",
  acknowledgement = ack-nhfb # " and " # ack-nj,
  affiliation =  "Oregon Univ., Eugene, OR, USA",
  annote =       "Published as part of the Proceedings of PLDI'90.",
  classification = "722; 723; C1160 (Combinatorial mathematics); C5230
                 (Digital arithmetic methods); C7310 (Mathematics)",
  confdate =     "20-22 June 1990",
  conference =   "Proceedings of the ACM SIGPLAN '90 Conference on
                 Programming Language Design and Implementation",
  conferenceyear = "1990",
  conflocation = "White Plains, NY, USA",
  confsponsor =  "ACM",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  journalabr =   "SIGPLAN Not",
  keywords =     "algorithms; Best binary floating point approximation;
                 Computer Programming Languages; Computers, Digital ---
                 Computational Methods; Decimal scientific notation;
                 Design; Efficient algorithm; experimentation; Fixed
                 precision; Floating point numbers; Floating Point
                 Numbers; Higher-precision arithmetic; IEEE double
                 precision results; IEEE Standard; IEEE-conforming
                 approximation; Intermediate result; Multiple-precision
                 integers",
  meetingaddress = "White Plains, NY, USA",
  meetingdate =  "Jun 20--22 1990",
  meetingdate2 = "06/20--22/90",
  sponsor =      "Assoc for Computing Machinery, Special Interest Group
                 on Programming Languages",
  subject =      "{\bf F.2.1} Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Numerical Algorithms
                 and Problems. {\bf G.1.0} Mathematics of Computing,
                 NUMERICAL ANALYSIS, General, Computer arithmetic. {\bf
                 G.1.2} Mathematics of Computing, NUMERICAL ANALYSIS,
                 Approximation.",
  thesaurus =    "Digital arithmetic; Mathematics computing; Number
                 theory; Standards",
}

@Article{Steele:1990:HPF,
  author =       "Guy L. {Steele, Jr.} and Jon L. White",
  title =        "How to Print Floating-Point Numbers Accurately",
  journal =      j-SIGPLAN,
  volume =       "25",
  number =       "6",
  pages =        "112--126",
  month =        jun,
  year =         "1990",
  CODEN =        "SINODQ",
  ISBN =         "0-89791-364-7",
  ISBN-13 =      "978-0-89791-364-5",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:53 MST 2003",
  bibsource =    "Compendex database; http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/93542/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "See also input algorithm in
                 \cite{Clinger:1990:HRF,Clinger:2004:RHR}, and a faster
                 output algorithm in \cite{Burger:1996:PFP} and
                 \cite{Knuth:1990:SPW}, IBM S/360 algorithms in
                 \cite{Abbott:1999:ASS} for both IEEE 754 and S/360
                 formats, and a twenty-year retrospective in
                 \cite{Steele:2004:RHP}. In electronic mail dated Wed,
                 27 Jun 1990 11:55:36 EDT, Guy Steele reported that an
                 intrepid pre-SIGPLAN 90 conference implementation of
                 what is stated in the paper revealed 3 mistakes:
                 \begin{itemize} \item[1.] Table~5 (page 124):\par
                 \noindent insert {\tt k <-- 0} after assertion, and
                 also delete {\tt k <-- 0} from Table~6. \item[2.]
                 Table~9 (page 125):\par \noindent \begin{tabular} {ll}
                 for & {\tt -1:USER!({"}{"});} \\
                 substitute & {\tt -1:USER!({"}0{"});} \end{tabular}\par
                 \noindent and delete the comment. \item[3.] Table~10
                 (page 125):\par \noindent \begin{tabular}{ll} for &
                 {\tt fill(-k, {"}0{"})}\\
                 substitute & {\tt fill(-k-1, {"}0{"})} \end{tabular}
                 \end{itemize}
                 \def\EatBibTeXPeriod#1{\ifx#1.\else#1\fi}\EatBibTeXPeriod",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/pldi/93542/p112-steele/",
  abstract =     "Algorithms are presented for accurately converting
                 floating-point numbers to decimal representation. The
                 key idea is to carry along with the computation an
                 explicit representation of the required rounding
                 accuracy. The authors begin with the simpler problem of
                 converting fixed-point fractions. A modification of the
                 well-known algorithm for radix-conversion of
                 fixed-point fractions by multiplication explicitly
                 determines when to terminate the conversion process; a
                 variable number of digits are produced. They derive two
                 algorithms for free-format output of floating-point
                 numbers. Finally, they modify the free-format
                 conversion algorithm for use in fixed-format
                 applications. Information may be lost if the fixed
                 format provides too few digit positions, but the output
                 is always correctly rounded. On the other hand, no
                 `garbage digits' are ever produced, even if the fixed
                 format specifies too many digit positions (intuitively,
                 the `4/3 prints as 1.333333328366279602' problem does
                 not occur).",
  acknowledgement = ack-nhfb,
  affiliation =  "Thinking Machines Corp",
  affiliationaddress = "Cambridge, MA, USA",
  classification = "722; 723; C5230 (Digital arithmetic methods); C7310
                 (Mathematics)",
  confdate =     "20-22 June 1990",
  conference =   "Proceedings of the ACM SIGPLAN '90 Conference on
                 Programming Language Design and Implementation",
  conferenceyear = "1990",
  conflocation = "White Plains, NY, USA",
  confsponsor =  "ACM",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  journalabr =   "SIGPLAN Not",
  keywords =     "algorithms; computer programming languages; computers,
                 digital --- computational methods; conversion process;
                 decimal representation; design; digit positions;
                 explicit representation; fixed-format applications;
                 fixed-point fractions; floating point numbers;
                 floating-point numbers; free-format conversion
                 algorithm; free-format output; garbage digits;
                 performance; radix-conversion; rounding accuracy;
                 verification",
  remark =       "Published as part of the Proceedings of PLDI'90.",
  sponsor =      "Assoc for Computing Machinery, Special Interest Group
                 on Programming Languages",
  subject =      "{\bf F.2.1} Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Numerical Algorithms
                 and Problems. {\bf G.1.0} Mathematics of Computing,
                 NUMERICAL ANALYSIS, General, Computer arithmetic.",
  thesaurus =    "Digital arithmetic; Mathematics computing",
  xxabstract =   "We present algorithms for accurately converting
                 floating-point numbers to decimal representation. The
                 key idea is to carry along with the computation an
                 explicit representation of the required rounding
                 accuracy. We begin with the simpler problem of
                 converting fixed-point fractions. A modification of the
                 well-known algorithm for radix-conversion of
                 fixed-point fractions by multiplication explicitly
                 determines when to terminate the conversion process; a
                 variable number of digits are produced. We then derive
                 two algorithms for free-format output of floating-point
                 numbers. Finally, we modify the free-format conversion
                 algorithm for use in fixed-format applications.",
}

@Article{Sirer:2000:UPG,
  author =       "Emin G{\"u}n Sirer and Brian N. Bershad",
  title =        "Using Production Grammars in Software Testing",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "1--13",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nakatani:2000:JDE,
  author =       "Lloyd H. Nakatani and Mark A. Ardis and Robert G.
                 Olsen and Paul M. Pontrelli",
  title =        "Jargons for Domain Engineering",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "15--24",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Reichwein:2000:SSI,
  author =       "James Reichwein and Gregg Rothermel and Margaret
                 Burnett",
  title =        "Slicing Spreadsheets: An Integrated Methodology for
                 Spreadsheet Testing and Debugging",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "25--38",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Guyer:2000:ALO,
  author =       "Samuel Z. Guyer and Calvin Lin",
  title =        "An Annotation Language for Optimizing Software
                 Libraries",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "39--52",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "PLAPACK",
}

@Article{Menon:2000:CSL,
  author =       "Vijay Menon and Keshav Pingali",
  title =        "A Case for Source-Level Transformations in {MATLAB}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "53--65",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Parson:2000:UJR,
  author =       "Dale E. Parson",
  title =        "Using {Java} Reflection to Automate Extension Language
                 Parsing",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "67--80",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sheard:2000:DIU,
  author =       "Tim Sheard and Zine-el-abidine Benaissa and Emir
                 Pasalic",
  title =        "{DSL} Implementation Using Staging and Monads",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "81--94",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Peterson:2000:MR,
  author =       "John Peterson and Greg Hager",
  title =        "Monadic Robotics",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "95--108",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Leijen:2000:DSE,
  author =       "Daan Leijen and Erik Meijer",
  title =        "Domain-Specific Embedded Compilers",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "109--122",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jennings:2000:VVE,
  author =       "James Jennings and Eric Beuscher",
  title =        "{Verischemelog}: {Verilog} Embedded in {Scheme}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "123--134",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fernandez:2000:DSD,
  author =       "Mary Fern{\'a}ndez and Dan Suciu and Igor Tatarinov",
  title =        "Declarative Specification of Data-Intensive {Web}
                 Sites",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "135--148",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2000:CSL,
  author =       "Du Li and Richard R. Muntz",
  title =        "A Collaboration Specification Language",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "149--162",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bonachea:2000:HLP,
  author =       "Dan Bonachea and Kathleen Fisher and Anne Rogers and
                 Frederick Smith",
  title =        "{Hancock}: {A} Language for Processing Very
                 Large-Scale Data",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "1",
  pages =        "163--176",
  month =        jan,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:13 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ryder:2000:CCP,
  author =       "Barbara G. Ryder",
  title =        "Conference Corner: {PLDI} '99: Programming Language
                 Design and Implementation (Report)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "9--9",
  month =        feb,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 26 17:06:07 MDT 2000",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan35.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/r/Ryder:Barbara_G=.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ryder:2000:PPL,
  author =       "Barbara Ryder",
  title =        "{PLDI '99}: {Programming} language design and
                 implementation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "9--10",
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clark:2000:PPPa,
  author =       "Chis Clark",
  title =        "Practical Parsing Patterns: Uniform Abstract Syntax
                 Trees",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "11--16",
  month =        feb,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 26 17:06:07 MDT 2000",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan35.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/c/Clark:Chis.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clark:2000:UAS,
  author =       "Chris Clark",
  title =        "Uniform abstract syntax trees",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "11--16",
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2000:FUR,
  author =       "Paul Frenger",
  title =        "{Forth}: The Ultimate {RISC}: {A} Zero-Instruction
                 Computer",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "17--23",
  month =        feb,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 26 17:06:07 MDT 2000",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan35.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/f/Frenger:Paul.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2000:URZ,
  author =       "Paul Frenger",
  title =        "The {Ultimate RISC}: {A} zero-instruction computer",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "17--24",
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Reinholtz:2000:JWF,
  author =       "Kirk Reinholtz",
  title =        "{Java} will be faster than {C++}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "25--28",
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Reinholtz:2000:TCJ,
  author =       "Kirk Reinholtz",
  title =        "Technical Correspondence: {Java} will be faster than
                 {C++}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "25--28",
  month =        feb,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 26 17:06:07 MDT 2000",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan35.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/r/Reinholtz:Kirk.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Davis:2000:OOA,
  author =       "Matthew S. Davis",
  title =        "An Object Oriented Approach to Constructing Recursive
                 Descent Parsers",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "29--35",
  month =        feb,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan35.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/d/Davis:Matthew_S=.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Milicev:2000:SPS,
  author =       "Dragan Milicev and Zoran Jovanovic",
  title =        "Sources of parallelism in software pipelining loops
                 with conditional branches",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "36--45",
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Milicev:2000:SSP,
  author =       "Dragan Milicev and Zoran Jovanovic",
  title =        "Sources in Software Pipelining Loops with Conditions
                 Branches",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "36--45",
  month =        feb,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 26 17:06:07 MDT 2000",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan35.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/j/Jovanovic:Zoran.html;
                 http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/m/Milicev:Dragan.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Simonis:2000:ABO,
  author =       "Volker Simonis",
  title =        "Adapters and Binders --- Overcoming Problems in the
                 Design and Implementation of the {C++-STL}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "46--53",
  month =        feb,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan35.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/s/Simonis:Volker.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xie:2000:CST,
  author =       "Gaoyan Xie and Yongsen Xu and Yu Li and Qian Li",
  title =        "{Codebugger}: a software tool for cooperative
                 debugging",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "54--60",
  month =        feb,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan35.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/l/Li:Qian.html;
                 http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/l/Li:Yu.html;
                 http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/x/Xie:Gaooyan.html;
                 http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/x/Xu:YongSen.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Swen:2000:OOP,
  author =       "Bing Swen",
  title =        "Object-Oriented Programming with Induction",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "2",
  pages =        "61--67",
  month =        feb,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan35.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/s/Swen:Bing.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2000:IIA,
  author =       "Anonymous",
  title =        "Important Information for {ACM SIGPLAN Notices}
                 Authors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "1--1",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Soffa:2000:ECN,
  author =       "Mary Lou Soffa",
  title =        "{Executive Committee} News: 1999 {SIGPLAN} Awards",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "2--3",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergmann:2000:CCCa,
  author =       "Seth Bergmann",
  title =        "Conference Corner: Calendar",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "4--15",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pontelli:2000:CCC,
  author =       "Enrico Pontelli and Vitor Santos Costa",
  title =        "Conference Corner: Conference Report: {PADL '00:
                 Workshop on Practical Aspects of Declarative
                 Languages}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "16--17",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chalk:2000:CCC,
  author =       "Peter Chalk",
  title =        "Conference Corner: Conference Report: {JICC4: Java in
                 the Computing Curricula}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "18--19",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chalk:2000:JJC,
  author =       "Peter Chalk",
  title =        "{JICC4}: {Java} in the computing curricula",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "18--19",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2000:CPI,
  author =       "Anonymous",
  title =        "Call for Papers: {2000 International Symposium on
                 Memory Management (ISMM), Minneapolis, Minnesota,
                 October 15--16, 2000}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "20--20",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Benson:2000:JRS,
  author =       "Brent W. {Benson, Jr.}",
  title =        "{Java} Reflections: Servlets: {Web}-Based Applications
                 You Can Live With",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "21--24",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Benson:2000:WBA,
  author =       "Brent W. {Benson, Jr.}",
  title =        "{Web}-based applications you can live with",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "21--24",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2000:FRL,
  author =       "Paul Frenger",
  title =        "{Forth} Report: Learning {Forth} with {Modular
                 Forth}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "25--30",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2000:LFM,
  author =       "Paul Frenger",
  title =        "Learning {Forth} with {Modular Forth}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "25--30",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergin:2000:HPL,
  author =       "Tim Bergin",
  title =        "History of Programming Languages and Software
                 Engineering: {A} {Web}-Based Tool",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "31--31",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Padua:2000:CIA,
  author =       "David Padua and Ron Cytron",
  title =        "Compilers and Interpreters Archive",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "32--32",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergmann:2000:IA,
  author =       "A. Michael Bergmann",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "33--33",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2000:SPN,
  author =       "Yu Li and Gaoyan Xie and Yongsen Xu and Yi Yang",
  title =        "The Security Problem of Nested Classes",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "34--38",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yu:2000:SPN,
  author =       "Li Yu and Xie Gaoyan and Xu Yongsen and Yang Yi",
  title =        "The security problem of nested classes",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "34--38",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Heering:2000:SPL,
  author =       "Jan Heering and Paul Klint",
  title =        "Semantics of Programming Languages: {A} Tool-Oriented
                 Approach",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "39--48",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Naik:2000:EMD,
  author =       "Mayur Naik and Rajeev Kumar",
  title =        "Efficient Message Dispatch in Object-Oriented
                 Systems",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "49--58",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kokol:2000:RCN,
  author =       "Peter Kokol and Vili Podgorelec",
  title =        "Ranking the Complexity of {NIAM} Conceptual Schemas by
                 Alpha Metric",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "59--64",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2000:INN,
  author =       "Tao Li and XiaoJie Liu",
  title =        "An Intelligent {Neural Network Programming System
                 (NNPS)}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "65--72",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramsey:2000:IPC,
  author =       "Norman Ramsey and Kevin Scott",
  title =        "The 1999 {ICFP} Programming Contest",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "3",
  pages =        "73--83",
  month =        mar,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:14 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Berman:2000:LEW,
  author =       "A. Michael Berman",
  title =        "Letter from the Editor; Welcome ever smiles \slash{}
                 And farewell goes out sighing",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "1--1",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Berman:2000:IIA,
  author =       "A. Michael Berman",
  title =        "Important Information for {ACM SIGPLAN Notices}
                 Authors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "2--2",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergmann:2000:CCCb,
  author =       "Seth Bergmann",
  title =        "Conference Corner: Calendar",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "3--16",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2000:CPA,
  author =       "Anonymous",
  title =        "Call for Papers: {The 28th Annual ACM-SIGACT Symposium
                 Principles of Programming Languages, London, January
                 17--19, 2001 (POPL'01)}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "17--17",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clark:2000:NLS,
  author =       "Chris Clark",
  title =        "Newlines and lexer states",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "18--24",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:16 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clark:2000:PPPb,
  author =       "Chris Clark",
  title =        "Practical Parsing Patterns: Newlines and Lexer
                 States",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "18--24",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Norris:2000:IA,
  author =       "Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "25--25",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bruce:2000:CDF,
  author =       "Kim B. Bruce",
  title =        "{Curriculum 2001} Draft Found Lacking in Programming
                 Languages",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "26--28",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:16 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2000:PKU,
  author =       "Anonymous",
  title =        "Proposed knowledge units for programming languages for
                 {Curriculum 2001}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "29--43",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:16 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Group:2000:PKU,
  author =       "{Programming Language Knowledge Focus Group}",
  title =        "Proposed Knowledge Units for Programming Languages for
                 {Curriculum 2001}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "29--43",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Manjunath:2000:SHJ,
  author =       "Geetha Manjunath and Venkatesh Krishnan",
  title =        "A {{\em Small\/}} Hybrid {JIT} for Embedded Systems",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "44--50",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:16 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sakharov:2000:HSM,
  author =       "Alexander Sakharov",
  title =        "A Hybrid State Machine Notation for Component
                 Specification",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "4",
  pages =        "51--56",
  month =        apr,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:16 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bala:2000:DTDa,
  author =       "Vasanth Bala and Evelyn Duesterwald and Sanjeev
                 Banerjia",
  title =        "{Dynamo}: a transparent dynamic optimization system",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "1--12",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p1-bala/p1-bala.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p1-bala/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cierniak:2000:PJJ,
  author =       "Micha{\l} Cierniak and Guei-Yuan Lueh and James M.
                 Stichnoth",
  title =        "Practicing {JUDO}: {Java} under dynamic
                 optimizations",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "13--26",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p13-cierniak/p13-cierniak.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p13-cierniak/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lucco:2000:SSD,
  author =       "Steven Lucco",
  title =        "Split-stream dictionary program compression",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "27--34",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145.349307",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://delivery.acm.org/10.1145/350000/349307/p27-lucco.pdf;
                 http://www.acm.org/pubs/articles/proceedings/pldi/349299/p27-lucco/p27-lucco.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p27-lucco/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "IA-64",
}

@Article{Das:2000:UBP,
  author =       "Manuvir Das",
  title =        "Unification-based pointer analysis with directional
                 assignments",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "35--46",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p35-das/p35-das.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p35-das/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rountev:2000:LVS,
  author =       "Atanas Rountev and Satish Chandra",
  title =        "Off-line variable substitution for scaling points-to
                 analysis",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "47--56",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p47-rountev/p47-rountev.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p47-rountev/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cheng:2000:MIP,
  author =       "Ben-Chung Cheng and Wen-mei W. Hwu",
  title =        "Modular interprocedural pointer analysis using access
                 paths: design, implementation, and evaluation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "57--69",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p57-cheng/p57-cheng.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p57-cheng/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xu:2000:SCM,
  author =       "Zhichen Xu and Barton P. Miller and Thomas Reps",
  title =        "Safety checking of machine code",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "70--82",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p70-xu/p70-xu.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p70-xu/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Necula:2000:TVO,
  author =       "George C. Necula",
  title =        "Translation validation for an optimizing compiler",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "83--94",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p83-necula/p83-necula.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p83-necula/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Colby:2000:CCJ,
  author =       "Christopher Colby and Peter Lee and George C. Necula
                 and Fred Blau and Mark Plesko and Kenneth Cline",
  title =        "A certifying compiler for {Java}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "95--107",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p95-colby/p95-colby.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p95-colby/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Stephenson:2000:BAA,
  author =       "Mark Stephenson and Jonathan Babb and Saman
                 Amarasinghe",
  title =        "Bidwidth analysis with application to silicon
                 compilation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "108--120",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p108-stephenson/p108-stephenson.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p108-stephenson/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wilken:2000:OIS,
  author =       "Kent Wilken and Jack Liu and Mark Heffernan",
  title =        "Optimal instruction scheduling using integer
                 programming",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "121--133",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p121-wilken/p121-wilken.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p121-wilken/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zalamea:2000:ISC,
  author =       "Javier Zalamea and Josep Llosa and Eduard Ayguad{\'e}
                 and Mateo Valero",
  title =        "Improved spill code generation for software pipelined
                 loops",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "134--144",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p134-zalamea/p134-zalamea.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p134-zalamea/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Larsen:2000:ESL,
  author =       "Samuel Larsen and Saman Amarasinghe",
  title =        "Exploiting superword level parallelism with multimedia
                 instruction sets",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "145--156",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p145-larsen/p145-larsen.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p145-larsen/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lin:2000:CAI,
  author =       "Yuan Lin and David Padua",
  title =        "Compiler analysis of irregular memory accesses",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "157--168",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p157-lin/p157-lin.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p157-lin/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yi:2000:TLR,
  author =       "Qing Yi and Vikram Adve and Ken Kennedy",
  title =        "Transforming loops to recursion for multi-level memory
                 hierarchies",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "169--181",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p169-yi/p169-yi.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p169-yi/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rugina:2000:SBA,
  author =       "Radu Rugina and Martin Rinard",
  title =        "Symbolic bounds analysis of pointers, array indices,
                 and accessed memory regions",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "182--195",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p182-rugina/p182-rugina.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p182-rugina/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sreedhar:2000:FIO,
  author =       "Vugranam C. Sreedhar and Michael Burke and Jong-Deok
                 Choi",
  title =        "A framework for interprocedural optimization in the
                 presence of dynamic class loading",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "196--207",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p196-sreedhar/p196-sreedhar.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p196-sreedhar/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ruf:2000:ESR,
  author =       "Erik Ruf",
  title =        "Effective synchronization removal for {Java}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "208--218",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p208-ruf/p208-ruf.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p208-ruf/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2000:TBR,
  author =       "Cormac Flanagan and Stephen N. Freund",
  title =        "Type-based race detection for {Java}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "219--232",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p219-flanagan/p219-flanagan.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p219-flanagan/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramalingam:2000:LDD,
  author =       "G. Ramalingam",
  title =        "On loops, dominators, and dominance frontier",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "233--241",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p233-ramalingam/p233-ramalingam.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p233-ramalingam/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wan:2000:FRP,
  author =       "Zhanyong Wan and Paul Hudak",
  title =        "Functional reactive programming from first
                 principles",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "242--252",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p242-wan/p242-wan.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p242-wan/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fahndrich:2000:SCS,
  author =       "Manuel F{\"a}hndrich and Jakob Rehof and Manuvir Das",
  title =        "Scalable context-sensitive flow analysis using
                 instantiation constraints",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "253--263",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p253-fahndrich/p253-fahndrich.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p253-fahndrich/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cannarozzi:2000:CGC,
  author =       "Dante J. Cannarozzi and Michael P. Plezbert and Ron K.
                 Cytron",
  title =        "Contaminated garbage collection",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "264--273",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p264-cannarozzi/p264-cannarozzi.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p264-cannarozzi/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Domani:2000:GFG,
  author =       "Tamar Domani and Elliot K. Kolodner and Erez Petrank",
  title =        "A generational on-the-fly garbage collector for
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "274--284",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p274-domani/p274-domani.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p274-domani/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramsey:2000:SIL,
  author =       "Norman Ramsey and Simon Peyton Jones",
  title =        "A single intermediate language that supports multiple
                 implementations of exceptions",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "285--298",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p285-ramsey/p285-ramsey.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p285-ramsey/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boothe:2000:EAB,
  author =       "Bob Boothe",
  title =        "Efficient algorithms for bidirectional debugging",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "299--310",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p299-boothe/p299-boothe.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p299-boothe/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Heydon:2000:CFC,
  author =       "Allan Heydon and Roy Levin and Yuan Yu",
  title =        "Caching function calls using precise dependencies",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "311--320",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p311-heydon/p311-heydon.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p311-heydon/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bodik:2000:AEA,
  author =       "Rastislav Bod{\'\i}k and Rajiv Gupta and Vivek
                 Sarkar",
  title =        "{ABCD}: eliminating array bounds checks on demand",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "321--333",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p321-bodik/p321-bodik.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p321-bodik/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ghemawat:2000:FAG,
  author =       "Sanjay Ghemawat and Keith H. Randall and Daniel J.
                 Scales",
  title =        "Field analysis: getting useful and low-cost
                 interprocedural information",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "334--344",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p334-ghemawat/p334-ghemawat.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p334-ghemawat/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dolby:2000:AOI,
  author =       "Julian Dolby and Andrew Chien",
  title =        "An automatic object inlining optimization and its
                 evaluation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "5",
  pages =        "345--357",
  month =        may,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pldi/349299/p345-dolby/p345-dolby.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pldi/349299/p345-dolby/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cytron:2000:LC,
  author =       "Ron Cytron",
  title =        "Letter from the {Chair}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "1--1",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergmann:2000:CCCc,
  author =       "Seth Bergmann",
  title =        "Conference Corner: Calendar",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "2--14",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clark:2000:PPPc,
  author =       "Chris Clark",
  title =        "Practical Parsing Patterns: Off-and-On Tokens",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "15--20",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clark:2000:T,
  author =       "Chris Clark",
  title =        "Off-and-on tokens",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "15--20",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:17 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2000:FRG,
  author =       "Paul Frenger",
  title =        "{Forth} Report: The {GOTO} Machine",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "21--24",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2000:GM,
  author =       "Paul Frenger",
  title =        "{GOTO} machine",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "21--24",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:17 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2000:IAa,
  author =       "Jan Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "25--25",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{vanDeursen:2000:DSL,
  author =       "Arie van Deursen and Paul Klint and Joost Visser",
  title =        "Domain-Specific Languages: An Annotated Bibliography",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "26--36",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:17 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Srikant:2000:EPA,
  author =       "Y. N. Srikant and D. V. Ravindra",
  title =        "Effective Parametrization of Architectural Registers
                 for Register Allocation Algorithms",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "37--46",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:17 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  xxauthor =     "{Srikant Y. N.} and {Ravindra D. V.}",
  xxtitle =      "Effective parameterization of architectural registers
                 for register allocation algorithms",
}

@Article{Schupp:2000:LLC,
  author =       "Sibylle Schupp",
  title =        "Lazy Lists in {C++}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "6",
  pages =        "47--54",
  month =        jun,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:17 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Smith:2000:OCF,
  author =       "Michael D. Smith",
  title =        "Overcoming the challenges to feedback-directed
                 optimization (Keynote Talk)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "1--11",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Engler:2000:DTA,
  author =       "Dawson R. Engler and Wilson C. Hsieh",
  title =        "{Derive}: a tool that automatically reverse-engineers
                 instruction encodings",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "12--22",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Johansson:2000:PGO,
  author =       "Erik Johansson and Sven-olof Nystr{\"o}m",
  title =        "Profile-Guided Optimization Across Process
                 Boundaries",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "23--31",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Voss:2000:FRD,
  author =       "Michael J. Voss and Rudolf Eigenmann",
  title =        "A Framework for Remote Dynamic Program Optimization",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "32--40",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ung:2000:MAD,
  author =       "David Ung and Cristina Cifuentes",
  title =        "Machine-Adaptable Dynamic Binary Translation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "41--51",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Arnold:2000:CSS,
  author =       "Matthew Arnold and Stephen Fink and Vivek Sarkar and
                 Peter F. Sweeney",
  title =        "A Comparative Study of Static and Profile-Based
                 Heuristics for Inlining",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "52--64",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mehofer:2000:PDF,
  author =       "Eduard Mehofer and Bernhard Scholz",
  title =        "Probabilistic Data Flow System with Two-Edge
                 Profiling",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "65--72",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chambers:2000:D,
  author =       "Craig Chambers",
  title =        "{DyC}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "73--74",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chambers:2000:DPS,
  author =       "Craig Chambers",
  title =        "{DyC} (Panel Session)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "73--74",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bala:2000:DTDb,
  author =       "Vasanth Bala",
  title =        "{Dynamo}: {A} Transparent, Dynamic, Native Binary
                 Optimizer",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "75--75",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cytron:2000:DPS,
  author =       "Ron Cytron and Vasanth Bala",
  title =        "Dynamo (Panel Session): a transparent, dynamic, native
                 binary optimizer",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "75--75",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cytron:2000:TPS,
  author =       "Ron Cytron and Renaud Marlet",
  title =        "{Tempo}, a program specializer for {C} (Panel
                 Session)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "76--77",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Marlet:2000:TPS,
  author =       "Renaud Marlet",
  title =        "Tempo, a program specializer for {C}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "76--77",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cytron:2000:DCJ,
  author =       "Ron Cytron and Vivek Sarkar",
  title =        "Dynamic compilation in {Jalape{\~n}o} (Panel
                 Session)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "78--78",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sarkar:2000:DCJ,
  author =       "Vivek Sarkar",
  title =        "Dynamic Compilation in {Jalape{\~n}o}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "78--78",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chung:2000:SDP,
  author =       "Yoo C. Chung and Michael J. Voss",
  title =        "Summary of the {Dynamo '00} Panel Discussion",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "79--81",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cytron:2000:SDP,
  author =       "Ron Cytron and Yoo C. Chung and Michael J. Voss",
  title =        "Summary of the {Dynamo '00} panel discussion (Panel
                 Session)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "7",
  pages =        "79--81",
  month =        jul,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:18 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cytron:2000:ECN,
  author =       "Ron Cytron",
  title =        "{Executive Committee} News: {SIGPLAN} Awards",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "8",
  pages =        "1--2",
  month =        aug,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergmann:2000:CCCd,
  author =       "Seth Bergmann",
  title =        "Conference Corner: Calendar",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "8",
  pages =        "3--14",
  month =        aug,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2000:FFB,
  author =       "Paul Frenger",
  title =        "{Forth} and the {FreeBSD} bootloader",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "8",
  pages =        "15--17",
  month =        aug,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2000:FRF,
  author =       "Paul Frenger",
  title =        "{Forth} Report: {Forth} and the {FreeBSD} Bootloader",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "8",
  pages =        "15--17",
  month =        aug,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2000:IAb,
  author =       "Jan Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "8",
  pages =        "18--18",
  month =        aug,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2000:IPAa,
  author =       "Jan Fenwick and Cindy Norris",
  title =        "Information for Past Authors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "8",
  pages =        "19--19",
  month =        aug,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fereira:2000:UPL,
  author =       "Ulisses Fereira",
  title =        "{\em uu\/} for Programming Languages",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "8",
  pages =        "20--30",
  month =        aug,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ferreira:2000:UPL,
  author =       "Ulisses Ferreira",
  title =        "uu for programming languages",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "8",
  pages =        "20--30",
  month =        aug,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Juric:2000:JDO,
  author =       "Matjaz B. Juric and Ivan Rozman and Simon Nash",
  title =        "{Java 2} Distributed Object Middleware Performance
                 Analysis and Optimization",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "8",
  pages =        "31--40",
  month =        aug,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wong:2000:FGK,
  author =       "Limsoon Wong",
  title =        "The functional guts of the {Kleisli} query system",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "1--10",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p1-wong/p1-wong.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p1-wong/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hosoya:2000:RET,
  author =       "Haruo Hosoya and J{\'e}r{\^o}me Vouillon and Benjamin
                 C. Pierce",
  title =        "Regular expression types for {XML}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "11--22",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p11-hosoya/p11-hosoya.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p11-hosoya/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Queinnec:2000:IBE,
  author =       "Christian Queinnec",
  title =        "The influence of browsers on evaluators or,
                 continuations to program {Web} servers",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "23--33",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p23-queinnec/p23-queinnec.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p23-queinnec/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Skalka:2000:SES,
  author =       "Christian Skalka and Scott Smith",
  title =        "Static enforcement of security with types",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "34--45",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p34-skalka/p34-skalka.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p34-skalka/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pottier:2000:IFI,
  author =       "Fran{\c{c}}ois Pottier and Sylvain Conchon",
  title =        "Information flow inference for free",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "46--57",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p46-pottier/p46-pottier.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p46-pottier/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Weirich:2000:TSC,
  author =       "Stephanie Weirich",
  title =        "Type-safe cast: (functional pearl)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "58--67",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p58-weirich/p58-weirich.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p58-weirich/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Crary:2000:TCI,
  author =       "Karl Crary",
  title =        "Typed compilation of inclusive subtyping",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "68--81",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p68-crary/p68-crary.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p68-crary/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Trifonov:2000:FRI,
  author =       "Valery Trifonov and Bratin Saha and Zhong Shao",
  title =        "Fully reflexive intensional type analysis",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "82--93",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p82-trifonov/p82-trifonov.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p82-trifonov/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chakravarty:2000:MTN,
  author =       "Manuel M. T. Chakravarty and Gabriele Keller",
  title =        "More types for nested data parallel programming",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "94--105",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p94-chakravarty/p94-chakravarty.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p94-chakravarty/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sage:2000:FDG,
  author =       "Meurig Sage",
  title =        "{FranTk} --- a declarative {GUI} language for
                 {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "106--117",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p106-sage/p106-sage.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p106-sage/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McNamara:2000:FPC,
  author =       "Brian McNamara and Yannis Smaragdakis",
  title =        "Functional programming in {C++}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "118--129",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p118-mcnamara/p118-mcnamara.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p118-mcnamara/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Harper:2000:AMS,
  author =       "Robert Harper and Benjamin C. Pierce",
  title =        "Advanced module systems (invited talk): a guide for
                 the perplexed",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "130--130",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p130-harper/p130-harper.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p130-harper/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Okasaki:2000:BFN,
  author =       "Chris Okasaki",
  title =        "Breadth-first numbering: lessons from a small exercise
                 in algorithm design",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "131--136",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p131-okasaki/p131-okasaki.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p131-okasaki/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sasano:2000:MIP,
  author =       "Isao Sasano and Zhenjiang Hu and Masato Takeichi and
                 Mizuhito Ogawa",
  title =        "Make it practical: a generic linear-time algorithm for
                 solving maximum-weightsum problems",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "137--149",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p137-sasano/p137-sasano.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p137-sasano/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Faxen:2000:CES,
  author =       "Karl-Filip Fax{\'e}n",
  title =        "Cheap eagerness: speculative evaluation in a lazy
                 functional language",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "150--161",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p150-faxen/p150-faxen.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p150-faxen/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Baker-Finch:2000:OSP,
  author =       "Clem Baker-Finch and David J. King and Phil Trinder",
  title =        "An operational semantics for parallel lazy
                 evaluation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "162--173",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/fp/351240/p162-baker-finch/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Erkok:2000:RMB,
  author =       "Levent Erk{\"o}k and John Launchbury",
  title =        "Recursive monadic bindings",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "174--185",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p174-erkok/p174-erkok.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p174-erkok/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hinze:2000:DBM,
  author =       "Ralf Hinze",
  title =        "Deriving backtracking monad transformers",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "186--197",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p186-hinze/p186-hinze.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p186-hinze/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Davies:2000:ITC,
  author =       "Rowan Davies and Frank Pfenning",
  title =        "Intersection types and computational effects",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "198--208",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p198-davies/p198-davies.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p198-davies/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Damian:2000:SAP,
  author =       "Daniel Damian and Olivier Danvy",
  title =        "Syntactic accidents in program analysis: on the impact
                 of the {CPS} transformation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "209--220",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/fp/351240/p209-damian/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gapeyev:2000:RSR,
  author =       "Vladimir Gapeyev and Michael Y. Levin and Benjamin C.
                 Pierce",
  title =        "Recursive subtyping revealed: (functional pearl)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "221--231",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p221-gapeyev/p221-gapeyev.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p221-gapeyev/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Curien:2000:DC,
  author =       "Pierre-Louis Curien and Hugo Herbelin",
  title =        "The duality of computation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "233--243",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p233-curien/p233-curien.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p233-curien/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Seger:2000:CFP,
  author =       "Carl Seger",
  title =        "Combining functional programming and hardware
                 verification (invited talk)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "244--244",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p244-seger/p244-seger.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p244-seger/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Serrano:2000:UMA,
  author =       "Manuel Serrano and Hans-J. Boehm",
  title =        "Understanding memory allocation of scheme programs",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "245--256",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p245-serrano/p245-serrano.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p245-serrano/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cheadle:2000:NSH,
  author =       "A. M. Cheadle and A. J. Field and S. Marlow and S. L.
                 Peyton Jones and R. L. While",
  title =        "Non-stop {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "257--267",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p257-cheadle/p257-cheadle.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p257-cheadle/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Claessen:2000:QLT,
  author =       "Koen Claessen and John Hughes",
  title =        "{QuickCheck}: a lightweight tool for random testing of
                 {Haskell} programs",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "268--279",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p268-claessen/p268-claessen.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p268-claessen/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jones:2000:CCA,
  author =       "Simon Peyton Jones and Jean-Marc Eber and Julian
                 Seward",
  title =        "Composing contracts: an adventure in financial
                 engineering (functional pearl)",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "280--292",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p280-jones/p280-jones.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p280-jones/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Maessen:2000:IJM,
  author =       "Jan-Willem Maessen and Xiaowei Shen",
  title =        "Improving the {Java} memory model using {CRF}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "1--12",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p1-maessen/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Noble:2000:ECO,
  author =       "James Noble and David Holmes and John Potter",
  title =        "Exclusion for composite objects",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "13--28",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p13-noble/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Buhr:2000:OOR,
  author =       "Peter A. Buhr and Ashif S. Harji and Philipp E. Lim
                 and Jiongxiong Chen",
  title =        "Object-oriented real-time concurrency",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "29--46",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p29-buhr/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Arnold:2000:AOJ,
  author =       "Matthew Arnold and Stephen Fink and David Grove and
                 Michael Hind and Peter F. Sweeney",
  title =        "Adaptive optimization in the {Jalape{\~n}o} {JVM}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "47--65",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p47-arnold/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Serrano:2000:QQS,
  author =       "Mauricio Serrano and Rajesh Bordawekar and Sam Midkiff
                 and Manish Gupta",
  title =        "{Quicksilver}: a quasi-static compiler for {Java}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "66--82",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p66-serrano/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zaks:2000:SCJ,
  author =       "Ayal Zaks and Vitaly Feldman and Nava Aizikowitz",
  title =        "Sealed calls in {Java} packages",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "83--92",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p83-zaks/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lee:2000:RWO,
  author =       "Ji Y. Lee and Hye J. Kim and Kyo C. Kang",
  title =        "A real world object modeling method for creating
                 simulation environment of real-time systems",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "93--104",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p93-lee/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bastide:2000:FSC,
  author =       "R{\'e}mi Bastide and Philippe Palanque and Ousmane Sy
                 and David Navarre",
  title =        "Formal specification of {CORBA} services: experience
                 and lessons learned",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "105--117",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p105-bastide/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kiernan:2000:MOQ,
  author =       "Jerry Kiernan and Michael J. Carey",
  title =        "Middleware object query processing with deferred
                 updates and autonomous sources",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "118--129",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p118-kiernan/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clifton:2000:MMO,
  author =       "Curtis Clifton and Gary T. Leavens and Craig Chambers
                 and Todd Millstein",
  title =        "{MultiJava}: modular open classes and symmetric
                 multiple dispatch for {Java}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "130--145",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p130-clifton/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Viroli:2000:PPJ,
  author =       "Mirko Viroli and Antonio Natali",
  title =        "Parametric polymorphism in {Java}: an approach to
                 translation based on reflective features",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "146--165",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p146-viroli/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Demeyer:2000:FRC,
  author =       "Serge Demeyer and St{\'e}phane Ducasse and Oscar
                 Nierstrasz",
  title =        "Finding refactorings via change metrics",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "166--177",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p166-demeyer/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Harrison:2000:MUD,
  author =       "William Harrison and Charles Barton and Mukund
                 Raghavachari",
  title =        "Mapping {UML} designs to {Java}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "178--187",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p178-harrison/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Herrmann:2000:PCS,
  author =       "Stephan Herrmann and Mira Mezini",
  title =        "{PIROL}: a case study for multidimensional separation
                 of concerns in software engineering environments",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "188--207",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p188-herrmann/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ruby:2000:SCC,
  author =       "Clyde Ruby and Gary T. Leavens",
  title =        "Safely creating correct subclasses without seeing
                 superclass code",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "208--228",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p208-ruby/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lujan:2000:OOO,
  author =       "Mikel Luj{\'a}n and T. L. Freeman and John R. Gurd",
  title =        "{OoLALA}: an object oriented analysis and design of
                 numerical linear algebra",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "229--252",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p229-lujan/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Fortran BLAS; Java",
}

@Article{Ortigosa:2000:TAO,
  author =       "Alvaro Ortigosa and Marcelo Campo and Roberto
                 Moriy{\'o}n",
  title =        "Towards agent-oriented assistance for framework
                 instantiation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "253--263",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p253-ortigosa/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sundaresan:2000:PVM,
  author =       "Vijay Sundaresan and Laurie Hendren and Chrislain
                 Razafimahefa and Raja Vall{\'e}e-Rai and Patrick Lam
                 and Etienne Gagnon and Charles Godin",
  title =        "Practical virtual method call resolution for {Java}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "264--280",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p264-sundaresan/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tip:2000:SPB,
  author =       "Frank Tip and Jens Palsberg",
  title =        "Scalable propagation-based call graph construction
                 algorithms",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "281--293",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p281-tip/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ishizaki:2000:SDT,
  author =       "Kazuaki Ishizaki and Motohiro Kawahito and Toshiaki
                 Yasue and Hideaki Komatsu and Toshio Nakatani",
  title =        "A study of devirtualization techniques for a
                 {Java$^{TM}$} {Just-In-Time} compiler",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "294--310",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p294-ishizaki/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Glew:2000:ECO,
  author =       "Neal Glew",
  title =        "An efficient class and object encoding",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "311--324",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p311-glew/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Qian:2000:FSJ,
  author =       "Zhenyu Qian and Allen Goldberg and Alessandro Coglio",
  title =        "A formal specification of {Java$^{TM}$} class
                 loading",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "325--336",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p325-qian/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rayside:2000:AUO,
  author =       "Derek Rayside and Gerard T. Campbell",
  title =        "An {Aristotelian} understanding of object-oriented
                 programming",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "337--353",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p337-rayside/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Czajkowski:2000:AIJ,
  author =       "Grzegorz Czajkowski",
  title =        "Application isolation in the {Java$^{TM}$} {Virtual}
                 {Machine}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "354--366",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p354-czajkowski/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bryce:2000:ASO,
  author =       "Ciar{\'a}n Bryce and Chrislain Razafimahefa",
  title =        "An approach to safe object sharing",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "367--381",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p367-bryce/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bacon:2000:GDJ,
  author =       "David F. Bacon and Robert E. Strom and Ashis
                 Tarafdar",
  title =        "{Guava}: a dialect of {Java} without data races",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "10",
  pages =        "382--400",
  month =        oct,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/oopsla/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/oops/353171/p382-bacon/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nagle:2000:DCS,
  author =       "David Nagle and Steven Schlosser and John Linwood
                 Griffin and Gregory Ganger",
  title =        "Designing Computer Systems with {MEMS}-based Storage",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "1--12",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Schlosser:2000:DCS,
  author =       "Steven W. Schlosser and John Linwood Griffin and David
                 F. Nagle and Gregory R. Ganger",
  title =        "Designing computer systems with {MEMS}-based storage",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "1--12",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gharachorloo:2000:ADA,
  author =       "Kourosh Gharachorloo and Madhu Sharma and Simon Steely
                 and Stephen {Van Doren}",
  title =        "Architecture and Design of {AlphaServer GS320}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "13--24",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Martin:2000:TSA,
  author =       "Milo M. K. Martin and Daniel J. Sorin and Anastassia
                 Ailamaki and Alaa R. Alameldeen and Ross M. Dickson and
                 Carl J. Mauer and Kevin E. Moore and Manoj Plakal and
                 Mark D. Hill and David A. Wood",
  title =        "Timestamp Snooping: An Approach for Extending {SMPs}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "25--36",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nanda:2000:MPR,
  author =       "Ashwini Nanda and Kwok-Ken Mak and Krishnan Sugavanam
                 and Ramendra K. Sahoo and Vijayaraghavan Soundararajan
                 and T. Basil Smith",
  title =        "{MemorIES}: {A} Programmable, Real-Time Hardware
                 Emulation Tool for Multiprocessor Server Design",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "37--48",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gibson:2000:FVS,
  author =       "Jeff Gibson and Robert Kunz and David Ofelt and Mark
                 Horowitz and John Hennessy and Mark Heinrich",
  title =        "{FLASH} vs. (simulated) {FLASH}: closing the
                 simulation loop",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "49--58",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Heinrich:2000:SAA,
  author =       "Mark Heinrich and Jeff Givson and Robert Kunz and
                 David Ofelt and Mark Horowitz and John Hennessy",
  title =        "{FLASH} vs. (Simulated) {FLASH}: Closing the
                 Simulation Loop",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "49--58",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chou:2000:UML,
  author =       "Andy Chou and Benjamin Chelf and Dawson Engler and
                 Mark Heinrich",
  title =        "Using Meta-level Compilation to Check {FLASH} Protocol
                 Code",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "59--70",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bhoedjang:2000:EDA,
  author =       "Raoul A. F. Bhoedjang and Kees Verstoep and Tim
                 R{\"u}hl and Henri E. Bal and Rutger F. H. Hofman",
  title =        "Evaluating Design Alternatives for Reliable
                 Communication on High-Speed Networks",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "71--81",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mattson:2000:CS,
  author =       "Peter Mattson and William J. Dally and Scott W. Rixner
                 and Ujval J. Kapasi and John D. Owens",
  title =        "Communication Scheduling",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "82--92",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hill:2000:SAD,
  author =       "Jason Hill and Robert Szewczyk and Alec Woo and Seth
                 Hollar and David Culler and Kristofer Pister",
  title =        "System Architecture Directions for Networked Sensors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "93--104",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lebeck:2000:PAP,
  author =       "Alvin R. Lebeck and Xiaobo Fan and Heng Zeng and Carla
                 Ellis",
  title =        "Power Aware Page Allocation",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "105--116",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Berger:2000:HSM,
  author =       "Emery D. Berger and Kathryn S. McKinley and Robert D.
                 Blumofe and Paul R. Wilson",
  title =        "{Hoard}: {A} Scalable Memory Allocator for
                 Multithreaded Applications",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "117--128",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flautner:2000:TLP,
  author =       "Kriszti{\'a}n Flautner and Rich Uhlig and Steve
                 Reinhardt and Trevor Mudge",
  title =        "Thread Level Parallelism and Interactive Performance
                 of Desktop Applications",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "129--138",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145.357001",
  ISBN =         "1-58113-317-0",
  ISBN-13 =      "978-1-58113-317-2",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://delivery.acm.org/10.1145/360000/357001/p129-flautner.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "IA-64",
}

@Article{Kawahito:2000:ENP,
  author =       "Motohiro Kawahito and Hideaki Komatsu and Toshio
                 Nakatani",
  title =        "Effective Null Pointer Check Elimination Utilizing
                 Hardware Trap",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "139--149",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "IBM Java Virtual Machine (JVM)",
}

@Article{Zhang:2000:FVL,
  author =       "Youtao Zhang and Jun Yang and Rajiv Gupta",
  title =        "Frequent Value Locality and Value-Centric Data Cache
                 Design",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "150--159",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Burrows:2000:EFV,
  author =       "Michael Burrows and Ulfar Erlingson and Shun-Tak Leung
                 and Mark Vandevoorde and Carl Waldspurger and Kip
                 Walker and Bill Weihl",
  title =        "Efficient and Flexible Value Sampling",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "160--167",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lie:2000:ASC,
  author =       "David Lie and Chandramohan Thekkath and Mark Mitchell
                 and Patrick Lincoln and Dan Boneh and John Mitchell and
                 Mark Horowitz",
  title =        "Architectural Support for Copy and Tamper Resistant
                 Software",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "168--177",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Although there have been attempts to develop code
                 transformations that yield tamper-resistant software,
                 no reliable software-only methods are known. This paper
                 studies the hardware implementation of a form of
                 execute-only memory (XOM) that allows instructions
                 stored in memory to be executed there but not otherwise
                 manipulated. To support XOM code we use a machine that
                 supports internal compartments --- a process in one
                 compartment cannot read data from another compartment.
                 All data that leaves the machine is encrypted, since we
                 assume external memory is not secure. The design of
                 this machine poses some interesting tradeoffs between
                 security, efficient, and flexibility. We explore some
                 of the potential security issues as one pushes the
                 machine to become more efficient and flexible. Although
                 security carries a performance penalty, our analysis
                 indicates that it is possible to create a normal
                 multi-tasking machine where nearly all applications can
                 be run in XOM mode. While a virtual XOM machine is
                 possible, the underlying hardware needs to support a
                 unique private key, private memory, and traps on cache
                 misses. For efficient operation, hardware assist to
                 provide fast symmetric ciphers is also required.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cryptography",
}

@Article{Austin:2000:ASF,
  author =       "Todd Austin and Jerome Burke and John McDonald",
  title =        "Architectural Support for Fast Symmetric-Key
                 Cryptography",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "178--189",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Burke:2000:ASF,
  author =       "Jerome Burke and John McDonald and Todd Austin",
  title =        "Architectural support for fast symmetric-key
                 cryptography",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "178--189",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kubiatowicz:2000:OAG,
  author =       "John Kubiatowicz and David Bindel and Yan Chen and
                 Steven Czerwinski and Patrick Eaton and Dennis Geels
                 and Ramakrishan Gummadi and Sean Rhea and Hakim
                 Weatherspoon and Westley Weimer and Chris Wells and Ben
                 Zhao",
  title =        "{OceanStore}: An Architecture for Global-Scale
                 Persistent Storage",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "190--201",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Duesterwald:2000:SPH,
  author =       "Evelyn Duesterwald and Vasanth Bala",
  title =        "Software Profiling for Hot Path Prediction: Less is
                 More",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "202--211",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zahir:2000:CCD,
  author =       "Rumi Zahir and Jonathan Ross and Dale Morris and Drew
                 Hess",
  title =        "{OS} and Compiler Considerations in the Design of the
                 {IA-64} Architecture",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "212--221",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://devresource.hp.com/devresource/Docs/TechPapers/IA64/IA64oscompilercon.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Connors:2000:HSD,
  author =       "Daniel A. Connors and Hillery C. Hunter and Ben-Chung
                 Cheng and Wen-Mei W. Hwu",
  title =        "Hardware Support for Dynamic Activation of
                 Compiler-Directed Computation Reuse",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "222--233",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Snavely:2000:SJS,
  author =       "Allan Snavely and Dean M. Tullsen",
  title =        "Symbiotic Jobscheduling for a Simultaneous
                 Multithreading Processor",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "234--244",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Redstone:2000:AOS,
  author =       "Joshua A. Redstone and Susan J. Eggers and Henry M.
                 Levy",
  title =        "An Analysis of Operating System Behavior on a
                 Simultaneous Multithreaded Architecture",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "245--256",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sundaramoorthy:2000:SPI,
  author =       "Karthik Sundaramoorthy and Zachary Purser and Eric
                 Rotenberg",
  title =        "Slipstream Processors: Improving both Performance and
                 Fault Tolerance",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "257--268",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2000:AI,
  author =       "Anonymous",
  title =        "Author Index",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "269--271",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergmann:2000:CCCe,
  author =       "Seth Bergmann",
  title =        "Conference Corner: Calendar",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "1--12",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 03 19:00:52 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2000:CCL,
  author =       "Anonymous",
  title =        "Conference Corner: {LCTES '01} Call for Papers",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "13--13",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 03 19:00:52 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Benson:2000:JR,
  author =       "Brent W. {Benson, Jr.}",
  title =        "{Java} reflections",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "14--18",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:21 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Benson:2000:JRJ,
  author =       "Brent W. {Benson, Jr.}",
  title =        "{Java} Reflections: {Java} Server Pages: Servlets,
                 Inside Out",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "14--18",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 03 19:00:52 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jakeman:2000:FR,
  author =       "Chris Jakeman",
  title =        "{Forth} report",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "19--21",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:21 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jakeman:2000:FU,
  author =       "Chris Jakeman",
  title =        "{Forth} in the {UK}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "19--21",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 03 19:00:52 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2000:IAc,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "22--22",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 03 19:00:52 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2000:IPAb,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Past Authors",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "23--23",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 03 19:00:52 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Corchuelo:2000:MCA,
  author =       "Rafael Corchuelo and Jos{\'e} A. P{\'e}rez and Miguel
                 Toro",
  title =        "A Multiparty Coordination Aspect Language",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "24--32",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:21 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kuhl:2000:OOL,
  author =       "Bernd K{\"u}hl and Axel-Tobias Schreiner",
  title =        "An object-oriented {LL(1)} parser generator",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "33--40",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:21 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gutierrez:2000:IQC,
  author =       "David Basanta Guti{\'e}rrez and C{\'a}ndida Luengo
                 D{\'\i}ez and Raul Izquierdo Castanedo and Jose Emilio
                 Labra Gayo and Juan Manuel Cueva Lovelle",
  title =        "Improving the quality of compiler construction with
                 object-oriented techniques",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "41--50",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:21 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Knutson:2000:MDS,
  author =       "Charles D. Knutson and Timothy A. Budd and Hugh
                 Vidos",
  title =        "Multiparadigm Design of a Simple Relational Database",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "12",
  pages =        "51--61",
  month =        dec,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:21 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hirzel:2001:TAG,
  author =       "Martin Hirzel and Amer Diwan",
  title =        "On the Type Accuracy of Garbage Collection",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "1--11",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Shaham:2001:EGJ,
  author =       "Ran Shaham and Elliot K. Kolodner and Mooly Sagiv",
  title =        "On the Effectiveness of {GC} in {Java}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "12--17",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Steensgaard:2001:TSH,
  author =       "Bjarne Steensgaard",
  title =        "Thread-Specific Heaps for Multi-Threaded Programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "18--24",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Makholm:2001:RBM,
  author =       "Henning Makholm",
  title =        "A Region-Based Memory Manager for {Prolog}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "25--34",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Chilimbi:2001:DTF,
  author =       "Trishul Chilimbi and Richard Jones and Benjamin Zorn",
  title =        "Designing a Trace Format for Heap Allocation Events",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "35--49",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Tarditi:2001:CGC,
  author =       "David Tarditi",
  title =        "Compact Garbage Collection Tables",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "50--58",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Boehm:2001:RGC,
  author =       "Hans-J. Boehm",
  title =        "Reducing Garbage Collector Cache Misses",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "59--64",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Chung:2001:MAL,
  author =       "Yoo C. Chung and Soo-Mook Moon",
  title =        "Memory Allocation with Lazy Fits",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "65--70",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Rodriguez-Rivera:2001:CGC,
  author =       "Gustavo Rodriguez-Rivera and Mike Spertus and Charles
                 Fiterman",
  title =        "Conservative Garbage Collection for General Memory
                 Allocators",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "71--79",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Heil:2001:CGC,
  author =       "Timothy H. Heil and James E. Smith",
  title =        "Concurrent Garbage Collection Using Hardware-Assisted
                 Profiling",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "80--93",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Plakal:2001:CGC,
  author =       "Manoj Plakal and Charles N. Fischer",
  title =        "Concurrent Garbage Collection Using Program Slices on
                 Multithreaded Processors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "94--100",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Hudson:2001:CRG,
  author =       "Richard L. Hudson and J. Eliot B. Moss and Sreenivas
                 Subramoney and Weldon Washburn",
  title =        "Cycles to Recycle: Garbage Collection on the {IA-64}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "101--110",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Fitzgerald:2001:CPD,
  author =       "Robert Fitzgerald and David Tarditi",
  title =        "The Case for Profile-Directed Selection of Garbage
                 Collectors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "111--120",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Agesen:2001:EOS,
  author =       "Ole Agesen and Alex Garthwaite",
  title =        "Efficient Object Sampling via Weak References",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "121--126",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Harris:2001:DAP,
  author =       "Timothy L. Harris",
  title =        "Dynamic Adaptive Pre-Tenuring",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "127--136",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Stefanovic:2001:MOL,
  author =       "Darko Stefanovi{\'c} and Kathryn S. McKinley and J.
                 Eliot B. Moss",
  title =        "On models for object lifetime distributions",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "137--142",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Printezis:2001:GMC,
  author =       "Tony Printezis and David Detlefs",
  title =        "A Generational Mostly-Concurrent Garbage Collector",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "143--154",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Domani:2001:IFG,
  author =       "Tamar Domani and Elliot K. Kolodner and Ethan Lewis
                 and Eliot E. Salant and Katherine Barabash and Itai
                 Lahan and Yossi Levanoni and Erez Petrank and Igor
                 Yanorer",
  title =        "Implementing an On-the-Fly Garbage Collector for
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "155--166",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

@Article{Dickman:2001:DTR,
  author =       "Peter Dickman",
  title =        "Diffusion Tree Restructuring for Indirect Reference
                 Counting",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "1",
  pages =        "167--177",
  month =        jan,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:22 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ACM SIGPLAN International Symposium on Memory
                 Management (ISMM'00)",
}

%%% Unread: volume 36 number 2 [my issue never arrived]
@Article{Frenger:2001:EF,
  author =       "Paul Frenger",
  title =        "{Forth}: Extreme {Forth}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "2",
  pages =        "20--23",
  month =        feb,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 16:24:55 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

%%% Page gap: volume 36 number 2 pages 24--25 ??
@Article{Kumar:2001:NNC,
  author =       "Rajeev Kumar",
  title =        "A neural net compiler system for hierarchical
                 organization",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "2",
  pages =        "26--36",
  month =        feb,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 16:24:55 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sunik:2001:DOL,
  author =       "Boris Sunik",
  title =        "Definition of open language",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "2",
  pages =        "37--46",
  month =        feb,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 16:24:55 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2001:SGI,
  author =       "Yukong Zhang and Young-Jun Kwon and Hyuk Jae Lee",
  title =        "A systematic generation of initial register-reuse
                 chains for dependence minimization",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "2",
  pages =        "47--54",
  month =        feb,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 16:24:55 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mitchell:2001:PLM,
  author =       "John C. Mitchell",
  title =        "Programming language methods in computer security",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "1--3",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p1-mitchell/p1-mitchell.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p1-mitchell/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sangiorgi:2001:EIA,
  author =       "Davide Sangiorgi",
  title =        "Extensionality and Intensionality of the Ambient
                 Logics",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "4--13",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ishtiaq:2001:BAL,
  author =       "Samin S. Ishtiaq and Peter W. O'Hearn",
  title =        "{BI} as an Assertion Language for Mutable Data
                 Structures",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "14--26",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yahav:2001:VSP,
  author =       "Eran Yahav",
  title =        "Verifying safety properties of concurrent {Java}
                 programs using $3$-valued logic",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "27--40",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p27-yahav/p27-yahav.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p27-yahav/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Odersky:2001:CLT,
  author =       "Martin Odersky and Christoph Zenger and Matthias
                 Zenger",
  title =        "Colored local type inference",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "41--53",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p41-odersky/p41-odersky.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p41-odersky/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rehof:2001:TBF,
  author =       "Jakob Rehof and Manuel F{\"a}hndrich",
  title =        "Type-base flow analysis: from polymorphic subtyping to
                 {CFL}-reachability",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "54--66",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p54-rehof/p54-rehof.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p54-rehof/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hosoya:2001:REP,
  author =       "Haruo Hosoya and Benjamin Pierce",
  title =        "Regular expression pattern matching for {XML}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "67--80",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p67-hosoya/p67-hosoya.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p67-hosoya/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lee:2001:SCP,
  author =       "Chin Soon Lee and Neil D. Jones and Amir M.
                 Ben-Amram",
  title =        "The size-change principle for program termination",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "81--92",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p81-lee/p81-lee.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p81-lee/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Monniaux:2001:AMC,
  author =       "David Monniaux",
  title =        "An abstract {Monte-Carlo} method for the analysis of
                 probabilistic programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "93--101",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p93-monniaux/p93-monniaux.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p93-monniaux/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ganzinger:2001:EDM,
  author =       "Harald Ganzinger",
  title =        "Efficient deductive methods for program analysis",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "102--103",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p102-ganzinger/p102-ganzinger.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p102-ganzinger/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Abadi:2001:MVN,
  author =       "Mart{\'\i}n Abadi and C{\'e}dric Fournet",
  title =        "Mobile values, new names, and secure communication",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "104--115",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p104-abadi/p104-abadi.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p104-abadi/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Unyapoth:2001:NPC,
  author =       "Asis Unyapoth and Peter Sewell",
  title =        "Nomadic pict: correct communication infrastructure for
                 mobile computation",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "116--127",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p116-unyapoth/p116-unyapoth.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p116-unyapoth/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Igarashi:2001:GTS,
  author =       "Atsushi Igarashi and Naoki Kobayashi",
  title =        "A generic type system for the {Pi-calculus}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "128--141",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p128-igarashi/p128-igarashi.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p128-igarashi/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Necula:2001:OBC,
  author =       "George C. Necula and S. P. Rahul",
  title =        "Oracle-based checking of untrusted software",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "142--154",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p142-necula/p142-necula.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p142-necula/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Calcagno:2001:SOS,
  author =       "Cristiano Calcagno",
  title =        "Stratified operational semantics for safety and
                 correctness of the region calculus",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "155--165",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p155-calcagno/p155-calcagno.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p155-calcagno/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wang:2001:TPG,
  author =       "Daniel C. Wang and Andrew W. Appel",
  title =        "Type-preserving garbage collectors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "166--178",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p166-wang/p166-wang.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p166-wang/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kandemir:2001:CTI,
  author =       "Mahmut Taylan Kandemir",
  title =        "A compiler technique for improving whole-program
                 locality",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "179--192",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p179-kandemir/p179-kandemir.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p179-kandemir/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2001:AEE,
  author =       "Cormac Flanagan and James B. Saxe",
  title =        "Avoiding exponential explosion: generating compact
                 verification conditions",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "193--205",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p193-flanagan/p193-flanagan.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p193-flanagan/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bhargavan:2001:WPM,
  author =       "Karthikeyan Bhargavan and Satish Chandra and Peter J.
                 McCann and Carl A. Gunter",
  title =        "What packets may come: automata for network
                 monitoring",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "206--219",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p206-bhargavan/p206-bhargavan.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p206-bhargavan/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Milner:2001:CF,
  author =       "Robin Milner",
  title =        "Computational flux",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "220--221",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p220-milner/p220-milner.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p220-milner/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bugliesi:2001:SSA,
  author =       "Michele Bugliesi and Giuseppe Castagna",
  title =        "Secure safe ambients",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "222--235",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p222-bugliesi/p222-bugliesi.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p222-bugliesi/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sewell:2001:MAT,
  author =       "Peter Sewell",
  title =        "Modules, abstract types, and distributed versioning",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "236--247",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p236-sewell/p236-sewell.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p236-sewell/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gordon:2001:TML,
  author =       "Andrew D. Gordon and Don Syme",
  title =        "Typing a multi-language intermediate code",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "248--260",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p248-gordon/p248-gordon.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p248-gordon/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shields:2001:TIR,
  author =       "Mark Shields and Erik Meijer",
  title =        "Type-indexed rows",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "261--275",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p261-shields/p261-shields.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p261-shields/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gil:2001:SAT,
  author =       "Joseph (Yossi) Gil",
  title =        "Subtyping arithmetical types",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "276--289",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p276-gil/p276-gil.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p276-gil/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vouillon:2001:CSB,
  author =       "J{\'e}r{\^o}me Vouillon",
  title =        "Combining subsumption and binary methods: an object
                 calculus with views",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "290--303",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p290-vouillon/p290-vouillon.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p290-vouillon/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ball:2001:MPS,
  author =       "Thomas Ball and Hans Boehm",
  title =        "A modest proposal for {SIGPLAN} in the {21st
                 Century}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "1--2",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:24 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ball:2001:S,
  author =       "Thomas Ball and Hans Boehm",
  title =        "{SIGPLANet}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "1--2",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 28 08:49:32 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/sigplan/sigplanet/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cytron:2001:CCD,
  author =       "Ron Cytron and Matthias Felleisen",
  title =        "Computing Curricula 2001 Draft: {SIGPLAN} Response to
                 the {Ironman Draft} of the Computing Curricula 2001",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "3--4",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 28 08:49:32 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2001:CCD,
  author =       "Jay Fenwick and Cindy Norris and Ron Cytron and
                 Matthias Felleisen",
  title =        "{Computing Curricula 2001} draft",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "3--4",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:24 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergmann:2001:CCC,
  author =       "Seth Bergmann",
  title =        "Conference Corner: Calendar",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "5--20",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 28 08:49:32 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2001:CEF,
  author =       "Paul Frenger",
  title =        "Close encounters of the {Forth} kind",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "21--24",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:24 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McNamara:2001:FPC,
  author =       "Brian McNamara and Yannis Smaragdakis",
  title =        "Functional programming in {C++} using the {FC++}
                 library",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "25--30",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:24 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McNamara:2001:FPI,
  author =       "Brian McNamara and Yannis Smaragdakis",
  title =        "Functional Programming in {C++} using the {FC++}
                 Library",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "25--30",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 28 08:49:32 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2001:IAa,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "31--31",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 28 08:49:32 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2001:IPAa,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Past Authors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "32--32",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 28 08:49:32 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2001:SOO,
  author =       "Zhenqiang Chen and Baowen Xu",
  title =        "Slicing Object-Oriented {Java} Programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "33--40",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:24 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2001:SCJ,
  author =       "Zhenqiang Chen and Baowen Xu",
  title =        "Slicing Concurrent {Java} Programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "41--47",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:24 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shaofeng:2001:SIT,
  author =       "Wang Shaofeng and Yang Fuquing and Sun Jiaguang",
  title =        "Some issues on the translator of {Smalltalk} to
                 {C++}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "48--55",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:24 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wang:2001:SIT,
  author =       "Shaofeng Wang and Fuqing Yang and Jiaguang Sun",
  title =        "Some issues on the translator of {Smalltalk} to
                 {C++}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "4",
  pages =        "48--55",
  month =        apr,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 28 08:49:32 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kennedy:2001:DIG,
  author =       "Andrew Kennedy and Don Syme",
  title =        "Design and Implementation of Generics for the {.NET}
                 Common Language Runtime",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "1--12",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hicks:2001:DSU,
  author =       "Michael Hicks and Jonathan T. Moore and Scott
                 Nettles",
  title =        "Dynamic Software Updating",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "13--23",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Heintze:2001:DDP,
  author =       "Nevin Heintze and Olivier Tardieu",
  title =        "Demand-Driven Pointer Analysis",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "24--34",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vivien:2001:IPE,
  author =       "Fr{\'e}d{\'e}ric Vivien and Martin Rinard",
  title =        "Incrementalized pointer and escape analysis",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "35--46",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vivient:2001:IPE,
  author =       "Frederic Vivient and Martin Rinard",
  title =        "Incrementalized Pointer and Escape Analysis",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "35--46",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jul 11 12:48:53 2001",
  bibsource =    "http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ghiya:2001:IPA,
  author =       "Rakesh Ghiya and Daniel Lavery and David Sehr",
  title =        "On the Importance of Points-to Analysis and Other
                 Memory Disambiguation Methods for {C} Programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "47--58",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{DeLine:2001:EHL,
  author =       "Robert DeLine and Manuel F{\"a}hndrich",
  title =        "Enforcing High-Level Protocols in Low-Level Software",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "59--69",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gay:2001:LSR,
  author =       "David Gay and Alex Aiken",
  title =        "Language Support for Regions",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "70--80",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Monnier:2001:PS,
  author =       "Stefan Monnier and Bratin Saha and Zhong Shao",
  title =        "Principled Scavenging",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "81--91",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bacon:2001:JCB,
  author =       "David F. Bacon and Clement R. Attanasio and Han B. Lee
                 and V. T. Rajan and Stephen Smith",
  title =        "{Java} without the coffee breaks: a nonintrusive
                 multiprocessor garbage collector",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "92--103",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shaham:2001:HPS,
  author =       "Ran Shaham and Elliot K. Kolodner and Mooly Sagiv",
  title =        "Heap Profiling for Space-Efficient {Java}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "104--113",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Berger:2001:CHP,
  author =       "Emery D. Berger and Benjamin G. Zorn and Kathryn S.
                 McKinley",
  title =        "Composing High-Performance Memory Allocators",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "114--124",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cheng:2001:PRT,
  author =       "Perry Cheng and Guy E. Blelloch",
  title =        "A Parallel, Real-Time Garbage Collector",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "125--136",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Amme:2001:STS,
  author =       "Wolfram Amme and Niall Dalton and Jeffery von Ronne
                 and Michael Franz",
  title =        "{SafeTSA}: {A} Type Safe and Referentially Secure
                 Mobile-Code Representation Based on Static Single
                 Assignment Form",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "137--147",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Evans:2001:BCP,
  author =       "William S. Evans and Christopher W. Fraser",
  title =        "Bytecode Compression via Profiled Grammar Rewriting",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "148--155",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Krintz:2001:UAR,
  author =       "Chandra Krintz and Brad Calder",
  title =        "Using annotations to reduce dynamic optimization
                 time",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "156--167",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Arnold:2001:FRC,
  author =       "Matthew Arnold and Barbara G. Ryder",
  title =        "A Framework for Reducing the Cost of Instrumented
                 Code",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "168--179",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2001:TWP,
  author =       "Youtao Zhang and Rajiv Gupta",
  title =        "Timestamped Whole Program Path Representation and its
                 Applications",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "180--190",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chilimbi:2001:ERA,
  author =       "Trishul M. Chilimbi",
  title =        "Efficient Representations and Abstractions for
                 Quantifying and Exploiting Data Reference Locality",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "191--202",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ball:2001:APA,
  author =       "Thomas Ball and Rupak Majumdar and Todd Millstein and
                 Sriram K. Rajamani",
  title =        "Automatic Predicate Abstraction of {C} Programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "203--213",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Aggarwal:2001:RFA,
  author =       "Aneesh Aggarwal and Keith H. Randall",
  title =        "Related Field Analysis",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "214--220",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Moller:2001:PAL,
  author =       "Anders M{\o}ller and Michael I. Schwartzbach",
  title =        "The Pointer Assertion Logic Engine",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "221--231",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Thies:2001:UFS,
  author =       "William Thies and Fr{\'e}d{\'e}ric Vivien and Jeffrey
                 Sheldon and Saman Amarasinghe",
  title =        "A Unified Framework for Schedule and Storage
                 Optimization",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "232--242",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Appel:2001:OSC,
  author =       "Andrew W. Appel and Lal George",
  title =        "Optimal Spilling for {CISC} Machines with Few
                 Registers",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "243--253",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Heintze:2001:UFA,
  author =       "Nevin Heintze and Olivier Tardieu",
  title =        "Ultra-fast Aliasing Analysis using {CLA}: {A} Million
                 Lines of {C} Code in a Second",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "254--263",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hanson:2001:DV,
  author =       "David R. Hanson and Todd A. Proebsting",
  title =        "Dynamic Variables",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "264--273",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Marlow:2001:AEH,
  author =       "Simon Marlow and Simon Peyton Jones and Andrew Moran
                 and John Reppy",
  title =        "Asynchronous Exceptions in {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "274--285",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chatterjee:2001:EAC,
  author =       "Siddhartha Chatterjee and Erin Parker and Philip J.
                 Hanlon and Alvin R. Lebeck",
  title =        "Exact Analysis of the Cache Behavior of Nested Loops",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "286--297",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xiong:2001:SLC,
  author =       "Jianxin Xiong and Jeremy Johnson and Robert Johnson
                 and David Padua",
  title =        "{SPL}: {A} Language and Compiler for {DSP}
                 algorithms",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "298--308",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kumar:2001:ELP,
  author =       "Sanjeev Kumar and Yitzhak Mandelbaum and Xiang Yu and
                 Kai Li",
  title =        "{ESP}: {A} Language for Programmable Devices",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "309--320",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Schnarr:2001:FLC,
  author =       "Eric C. Schnarr and Mark D. Hill and James R. Larus",
  title =        "{Facile}: {A} Language and Compiler for
                 High-Performance Processor Simulators",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "321--331",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:26 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:AIa,
  author =       "Anonymous",
  title =        "Author Index",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "5",
  pages =        "333--333",
  month =        may,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jul 11 12:48:53 2001",
  bibsource =    "http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Knobe:2001:ECN,
  author =       "Kathleen Knobe and Wilson Hsieh and Uli Kremer",
  title =        "Executive Committee News: {SIGPLAN}'s {Professional
                 Activities Committee}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "1--2",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jul 11 13:05:06 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:CCCa,
  author =       "Anonymous",
  title =        "Conference Corner: Calendar",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "3--18",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jul 11 13:05:06 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Thiemann:2001:CPP,
  author =       "Pieter Thiemann",
  title =        "Call for Papers --- {PEPM'02: 2002 ACM Sigplan
                 Workshop on Partial Evaluation and Semantics-Based
                 Program Manipulation, Portland, Oregon, USA, January
                 14--15, 2002, Preceding POPL'02}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "19--19",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jul 11 13:05:06 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergin:2001:CPU,
  author =       "Joe Bergin",
  title =        "Curricular Patterns: The Undergraduate Language
                 Course: What To Do?",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "20--22",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jul 11 13:05:06 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergin:2001:ULC,
  author =       "Joe Bergin",
  title =        "The undergraduate language course: what to do?",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "20--22",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:27 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2001:FD,
  author =       "Paul Frenger",
  title =        "Is {Forth} dead?",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "23--25",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:27 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2001:FRF,
  author =       "Paul Frenger",
  title =        "{Forth} Report: Is {Forth} Dead?",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "23--25",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jul 11 13:05:06 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2001:IAb,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "26--26",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jul 11 13:05:06 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2001:IPAb,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Past Authors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "27--27",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jul 11 13:05:06 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2001:DSN,
  author =       "Tao Li and XiaoJie Liu",
  title =        "The Denotational Semantics of {NIPL}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "28--37",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:27 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gofen:2001:PDO,
  author =       "Alexander Gofen",
  title =        "From {Pascal} to {Delphi} to {Object Pascal-2000}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "38--49",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:27 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yu:2001:CTI,
  author =       "Sheng Yu",
  title =        "Class-is-type is inadequate for object reuse",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "6",
  pages =        "50--59",
  month =        jun,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:27 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Foster:2001:PCO,
  author =       "Ian Foster",
  title =        "Parallel computing in 2010: opportunities and
                 challenges in a networked world",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "1--1",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p1-foster/p1-foster.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p1-foster/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kim:2001:RIA,
  author =       "Seon Wook Kim and Chong-liang Ooi and Rudolf Eigenmann
                 and Babak Falsafi and T. N. Vijaykumar",
  title =        "Reference idempotency analysis: a framework for
                 optimizing speculative execution",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "2--11",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p2-kim/p2-kim.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p2-kim/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Salcianu:2001:PEA,
  author =       "Alexandru Salcianu and Martin Rinard",
  title =        "Pointer and escape analysis for multithreaded
                 programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "12--23",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p12-salcianu/p12-salcianu.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p12-salcianu/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wise:2001:LSM,
  author =       "David S. Wise and Jeremy D. Frens and Yuhong Gu and
                 Gregory A. Alexander",
  title =        "Language support for {Morton}-order matrices",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "24--33",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p24-wise/p24-wise.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p24-wise/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{vanNieuwpoort:2001:ELB,
  author =       "Rob V. van Nieuwpoort and Thilo Kielmann and Henri E.
                 Bal",
  title =        "Efficient load balancing for wide-area
                 divide-and-conquer applications",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "34--43",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p34-van_nieuwpoort/p34-van_nieuwpoort.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p34-van_nieuwpoort/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Scott:2001:SQB,
  author =       "Michael L. Scott and William N. Scherer",
  title =        "Scalable queue-based spin locks with timeout",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "44--52",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p44-scott/p44-scott.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p44-scott/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lu:2001:CER,
  author =       "Honghui Lu and Alan L. Cox and Willy Zwaenepoel",
  title =        "Contention elimination by replication of sequential
                 sections in distributed shared memory programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "53--61",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p53-lu/p53-lu.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p53-lu/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Morris:2001:ADR,
  author =       "Donald G. Morris and David K. Lowenthal",
  title =        "Accurate data redistribution cost estimation in
                 software distributed shared memory systems",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "62--71",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p62-morris/p62-morris.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p62-morris/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rencuzogullari:2001:DAA,
  author =       "Umit Rencuzogullari and Sandhya Dwardadas",
  title =        "Dynamic adaptation to available resources for parallel
                 computing in an autonomous network of workstations",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "72--81",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p72-rencuzogullari/p72-rencuzogullari.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p72-rencuzogullari/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chien:2001:PPC,
  author =       "Andrew A. Chien",
  title =        "Parallel programming challenges for {Internet}-scale
                 computing (entropia)",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "82--82",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p82-chien/p82-chien.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p82-chien/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Veldema:2001:SLG,
  author =       "R. Veldema and R. F. H. Hofman and R. A. F. Bhoedjang
                 and C. J. H. Jacobs and H. E. Bal",
  title =        "Source-level global optimizations for fine-grain
                 distributed shared memory systems",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "83--92",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p83-veldema/p83-veldema.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p83-veldema/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Voss:2001:HLA,
  author =       "Michael J. Voss and Rudolf Eigemann",
  title =        "High-level adaptive program optimization with
                 {ADAPT}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "93--102",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p93-voss/p93-voss.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p93-voss/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lim:2001:BAC,
  author =       "Amy W. Lim and Shih-Wei Liao and Monica S. Lam",
  title =        "Blocking and array contraction across arbitrarily
                 nested loops using affine partitioning",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "103--112",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p103-lim/p103-lim.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p103-lim/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Carrera:2001:EVP,
  author =       "Enrique V. Carrera and Ricardo Bianchini",
  title =        "Efficiency vs. portability in cluster-based network
                 servers",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "113--122",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p113-carrera/p113-carrera.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p113-carrera/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vetter:2001:SSA,
  author =       "Jeffrey S. Vetter and Michael O. McCracken",
  title =        "Statistical scalability analysis of communication
                 operations in distributed applications",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "123--132",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p123-vetter/p123-vetter.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p123-vetter/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ino:2001:LPC,
  author =       "Fumihiko Ino and Noriyuki Fujimoto and Kenichi
                 Hagihara",
  title =        "{LogGPS}: a parallel computational model for
                 synchronization analysis",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "133--142",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p133-ino/p133-ino.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p133-ino/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kuck:2001:PPD,
  author =       "David Kuck",
  title =        "Peer to peer and distributed computing",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "7",
  pages =        "143--143",
  month =        jul,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:28 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/ppopp/379539/p143-kuck/p143-kuck.pdf;
                 http://www.acm.org/pubs/citations/proceedings/ppopp/379539/p143-kuck/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lee:2001:AIL,
  author =       "Sheayun Lee and Andreas Ermedahl and Sang Lyul Min and
                 Naehyuck Chang",
  title =        "An {Accurate Instruction-Level Energy Consumption
                 Model} for {Embedded RISC Processors}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "1--10",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kim:2001:HRT,
  author =       "Minyoung Kim and Soonhoi Ha",
  title =        "Hybrid {Run-time Power Management Technique} for
                 {Real-time Embedded System} with {Voltage Scalable
                 Processor}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "11--19",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kang:2001:PAD,
  author =       "Dong-In Kang and Stephen Crago and Jinwoo Suh",
  title =        "Power-Aware {Design Synthesis Techniques} for
                 {Distributed Real-Time Systems}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "20--28",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{DeSutter:2001:CGC,
  author =       "Bjorn {De Sutter} and Bruno {De Bus} and Koen {De
                 Bosschere} and Saumya Debray",
  title =        "Combining Global Code and Data Compaction",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "29--38",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Park:2001:RAB,
  author =       "Jinpyo Park and Je-Hyung Lee and Soo-Mook Moon",
  title =        "Register Allocation for Banked Register File",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "39--47",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Huang:2001:LTA,
  author =       "Xianglong Huang and Steve Carr and Philip Sweany",
  title =        "Loop {Transformations} for {Architectures} with
                 {Partitioned Register Banks}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "48--55",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cadot:2001:ECL,
  author =       "Sidney Cadot and Frits Kuijlman and Koen Langendoen
                 and Kees van Reeuwijk and Henk Sips",
  title =        "{ENSEMBLE}: {A} Communication Layer for Embedded
                 Multi-Processor Systems",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "56--63",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Henzinger:2001:ECS,
  author =       "Thomas A. Henzinger and Benjamin Horowitz and
                 Christoph Meyer Kirsch",
  title =        "Embedded {Control Systems Development} with {Giotto}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "64--72",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Palopoli:2001:TSF,
  author =       "Luigi Palopoli and Giuseppe Lipari and Luca Abeni and
                 Marco Di Natale and Paolo Ancilotti and Fabio
                 Conticelli",
  title =        "A tool for simulation and fast prototyping of embedded
                 control systems",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "73--81",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bakshi:2001:MMB,
  author =       "A. Bakshi and V. K. Prasanna and A. Ledeczi",
  title =        "{MILAN}: {A} Model Based Integrated Simulation
                 Framework for Design of Embedded Systems",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "82--87",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vivancos:2001:PTA,
  author =       "Emilio Vivancos and Christopher Healy and Frank
                 Mueller and David Whalley",
  title =        "Parametric {Timing Analysis}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "88--93",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ziegenbein:2001:IBA,
  author =       "Dirk Ziegenbein and Fabian Wolf and Kai Richter and
                 Marek Jersak and Rolf Ernst",
  title =        "Interval-Based {Analysis} of {Software Processes}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "94--101",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Unnikrishnan:2001:AAL,
  author =       "Leena Unnikrishnan and Scott D. Stoller and Yanhong A.
                 Liu",
  title =        "Automatic {Accurate Live Memory Analysis} for
                 {Garbage-Collected Languages}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "102--111",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Theiling:2001:GDT,
  author =       "Henrik Theiling",
  title =        "Generating {Decision Trees} for {Decoding Binaries}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "112--120",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Merillion:2001:DHE,
  author =       "Fabrice M{\'e}rillion and Gilles Muller",
  title =        "Dealing with {Hardware} in {Embedded Software}: {A
                 General Framework Based} on the {Devil Language}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "121--127",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Merillon:2001:DHE,
  author =       "Fabrice Merillon and Gilles Muller",
  title =        "Dealing with Hardware in Embedded Software: {A}
                 General Framework Based on the {Devil} Language",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "121--127",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 06:59:29 2001",
  bibsource =    "http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kadayif:2001:MCA,
  author =       "Ismail Kadayif and Mahmut Taylan Kandemir and
                 Narayanan Vijaykrishnan and Mary Jane Irwin and
                 Jagannathan Ramanujam",
  title =        "Morphable {Cache Architectures}: {Potential
                 Benefits}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "128--137",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Granston:2001:SPI,
  author =       "Elana Granston and Eric Stotzer and Joe Zbiciak",
  title =        "Software Pipelining Irregular Loops On the
                 {TMS320C6000 VLIW DSP} Architecture",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "138--144",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kastner:2001:IBI,
  author =       "Daniel K{\"a}stner and Sebastian Winkel",
  title =        "{ILP}-based Instruction Scheduling for {IA-64}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "145--154",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
}

@Article{Wagner:2001:CCD,
  author =       "Jens Wagner and Rainer Leupers",
  title =        "{C} Compiler Design for an Industrial Network
                 Processor",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "155--164",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kessler:2001:DPA,
  author =       "Christoph Ke{\ss}ler and Andrzej Bednarski",
  title =        "A {Dynamic Programming Approach} to {Optimal
                 Integrated Code Generation}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "165--174",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yellin:2001:SMC,
  author =       "Daniel M. Yellin",
  title =        "Stuck in the {Middle}: {Challenges} and {Trends} in
                 {Optimizing Middleware}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "175--180",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.cs.wisc.edu/~bodik/om2001/danny-abstract.html",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hogstedt:2001:OCI,
  author =       "Karin H{\"o}gstedt and Doug Kimelman and Nan Wang",
  title =        "Optimizing {Component Interaction}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "181--181",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wegman:2001:OCI,
  author =       "Mark Wegman",
  title =        "Optimizing Component Interaction",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "181--181",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 06:59:29 2001",
  bibsource =    "http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.cs.wisc.edu/~bodik/om2001/mark-abstract.html",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Larus:2001:UCS,
  author =       "James R. Larus and Michael Parkes",
  title =        "Using Cohort Scheduling to Enhance Server Performance
                 (Extended Abstract)",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "182--187",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.cs.wisc.edu/~bodik/om2001/mark-abstract.html",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Narain:2001:MBA,
  author =       "Sanjai Narain and Ravichander Vaidyanathan and Stanley
                 Moyer and William Stephens and Kirthika Parmeswaran and
                 Abdul Rahim Shareef",
  title =        "Middleware for Building Adaptive Systems via
                 Configuration",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "188--195",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gore:2001:DOS,
  author =       "Pradeep Gore and Ron Cytron and Douglas Schmidt and
                 Carlos O'Ryan",
  title =        "Designing and Optimizing a Scalable {CORBA}
                 Notification Service",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "196--204",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Othman:2001:IDA,
  author =       "Ossama Othman and Douglas C. Schmidt",
  title =        "Issues in the {Design} of {Adaptive Middleware Load
                 Balancing}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "205--213",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pyarali:2001:EOT,
  author =       "Irfan Pyarali and Marina Spivak and Ron Cytron and
                 Douglas C. Schmidt",
  title =        "Evaluating and Optimizing Thread Pool Strategies for
                 Real-Time {CORBA}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "214--222",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Brunsch:2001:DES,
  author =       "Darrell Brunsch and Carlos O'Ryan and Douglas C.
                 Schmidt",
  title =        "Designing an Efficient and Scalable Server-side
                 Asynchrony Model for {CORBA}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "223--229",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Krishnamurthy:2001:IQE,
  author =       "Yamuna Krishnamurthy and Vishal Kachroo and David A.
                 Karr and Craig Rodrigues and Joseph P. Loyall and
                 Richard Schantz and Douglas C. Schmidt",
  title =        "Integration of {QoS}-Enabled Distributed Object
                 Computing Middleware for Developing Next-Generation
                 Distributed Applications",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "230--237",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Adve:2001:LCS,
  author =       "Vikram Adve and Vinh Vi Lam and Brian Ensink",
  title =        "Language and Compiler Support for Adaptive Distributed
                 Applications",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "238--246",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:29 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.cs.wisc.edu/~bodik/om2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "OM'01: The First Workshop on Optimization of
                 Middleware and Distributed Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lee:2001:ESC,
  author =       "Edward A. Lee",
  title =        "Embedded Software from Concurrent Component Models",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "??--??",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 06:59:29 2001",
  bibsource =    "http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Invited paper; not in conference proceedings.",
  URL =          "http://redwood.snu.ac.kr/lctes2001/edward-abstract.html",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Palem:2001:WCW,
  author =       "Krishna V. Palem",
  title =        "What is a compiler when the architecture is not
                 hard?",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "8",
  pages =        "??--??",
  month =        aug,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 06:59:29 2001",
  bibsource =    "http://redwood.snu.ac.kr/lctes2001/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Listed in conference program, but did not appear in
                 conference proceedings.",
  acknowledgement = ack-nhfb,
  annote =       "LCTES'01: The Workshop on Languages, Compilers and
                 Tools for Embedded Systems",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boehm:2001:LNE,
  author =       "Hans Boehm",
  title =        "Letter from the Newly Elected {Chair}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "1--2",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 07:54:10 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Whalley:2001:LLS,
  author =       "Dave Whalley",
  title =        "Letter from the {LCTES Steering Committee}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "3--3",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 07:54:10 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:C,
  author =       "Anonymous",
  title =        "Calendar",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "4--16",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 07:54:10 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:P,
  author =       "Anonymous",
  title =        "In parallel",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "17--17",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  xxtitle =      "{PLDI'02}",
}

@Article{Anonymous:2001:LS,
  author =       "Anonymous",
  title =        "{LCTES'02} and {SCOPES'02}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "18--18",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 07:54:10 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Page:2001:FPW,
  author =       "Rex Page",
  title =        "Functional programming, and where you can put it",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "19--24",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:AOC,
  author =       "Anonymous",
  title =        "{ASTs} for optimizing compilers",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "25--30",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clark:2001:AOC,
  author =       "Chris Clark",
  title =        "{ASTs} for Optimizing Compilers",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "25--30",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 07:54:10 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Christopher:2001:TPO,
  author =       "Thomas W. Christopher",
  title =        "Test Programs to Observe Parallelism",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "31--36",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "37--37",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 07:54:10 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:IPA,
  author =       "Anonymous",
  title =        "Information for Past Authors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "38--38",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 07:54:10 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhu:2001:DSP,
  author =       "Ming-Yuan Zhu",
  title =        "Denotational Semantics of Programming Languages and
                 Compiler Generation in {PowerEpsilon}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "39--53",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhu:2001:FSD,
  author =       "Ming-Yuan Zhu",
  title =        "Formal specifications of debuggers",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "54--63",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kienle:2001:USR,
  author =       "Holger M. Kienle",
  title =        "Using {{\tt smgn}} for Rapid Prototyping of Small
                 Domain-Specific Languages",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "64--73",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Moore:2001:SSH,
  author =       "David L. Moore",
  title =        "{{\tt smgn}}: Some historical remarks",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "74--76",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gassanenko:2001:ACL,
  author =       "Michael L. Gassanenko",
  title =        "About Code Layout for {Lisp}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "77--80",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lu:2001:DZA,
  author =       "Lunjin Lu",
  title =        "On {Dart-Zobel} Algorithm for Testing Regular Type
                 Inclusion",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "81--85",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shaofeng:2001:FDW,
  author =       "Wang Shaofeng and Sun Jiaguang",
  title =        "A framework design of workflow management system with
                 {Java RMI}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "86--93",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wang:2001:FDW,
  author =       "Shaofeng Wang and Jiaguang Sun",
  title =        "A Framework Design for Workflow Management System with
                 {Java RMI}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "86--93",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Nov 24 07:54:10 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:FP,
  author =       "Anonymous",
  title =        "Functional programming",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "??--??",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:PPP,
  author =       "Anonymous",
  title =        "Practical parsing patterns",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "??--??",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:TCa,
  author =       "Anonymous",
  title =        "Technical correspondence",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "9",
  pages =        "??--??",
  month =        sep,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pitts:2001:FAR,
  author =       "Andrew M. Pitts",
  title =        "A Fresh Approach to Representing Syntax with Static
                 Binders in Functional Programming",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "1--1",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Invited talk; abstract only.",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/pitts.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fluet:2001:CUD,
  author =       "Matthew Fluet and Stephen Weeks",
  title =        "Contification using Dominators",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "2--13",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/48.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dimock:2001:FCT,
  author =       "Allyn Dimock and Ian Westmacott and Robert Muller and
                 Franklyn Turbak and J. B. Wells",
  title =        "Functioning without Closure: Type-Safe Customized
                 Function Representations for {Standard ML}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "14--25",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/55.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{LeFessant:2001:OPM,
  author =       "Fabrice {Le Fessant} and Luc Maranget",
  title =        "Optimizing Pattern Matching",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "26--37",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/8.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Neubauer:2001:ELD,
  author =       "Matthias Neubauer and Michael Sperber",
  title =        "Down with {Emacs Lisp}: Dynamic Scope Analysis",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "38--49",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/50.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Russo:2001:RSS,
  author =       "Claudio V. Russo",
  title =        "Recursive Structures for {Standard ML}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "50--61",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/28.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Duggan:2001:TBH,
  author =       "Dominic Duggan",
  title =        "Type-based hot swapping of running modules (extended
                 abstract)",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "62--73",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/21.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ganz:2001:MMS,
  author =       "Steven E. Ganz and Amr Sabry and Walid Taha",
  title =        "Macros as Multi-Stage Computations: Type-Safe,
                 Generative, Binding Macros in {MacroML}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "74--85",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/42.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sheard:2001:GUT,
  author =       "Tim Sheard",
  title =        "Generic Unification via Two-Level Types and
                 Parameterized Modules",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "86--97",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/13.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chuang:2001:GVS,
  author =       "Tyng-Ruey Chuang",
  title =        "Generic Validation of Structural Content with
                 Parametric Modules",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "98--109",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/22.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hinze:2001:SIT,
  author =       "Ralf Hinze",
  title =        "A Simple Implementation Technique for Priority Search
                 Queues",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "110--121",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/23.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sperber:2001:DSL,
  author =       "Michael Sperber",
  title =        "Developing a Stage Lighting System from Scratch",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "122--133",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/32.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anand:2001:CPP,
  author =       "Saswat Anand and Wei-Ngan Chin and Siau-Cheng Khoo",
  title =        "Charting Patterns on Price History",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "134--145",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/64.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wan:2001:RTF,
  author =       "Zhanyong Wan and Walid Taha and Paul Hudak",
  title =        "Real-time {FRP}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "146--156",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/43.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Russell:2001:EHH,
  author =       "George Russell",
  title =        "Events in {Haskell}, and How to Implement Them",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "157--168",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/24.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hongwei:2001:DTA,
  author =       "Hongwei Xi and Robert Harper",
  title =        "A Dependently Typed Assembly Language",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "169--180",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Nov 23 18:54:42 2001",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/27.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xi:2001:DTA,
  author =       "Hongwei Xi and Robert Harper",
  title =        "A dependently typed assembly language",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "169--180",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Walker:2001:RLT,
  author =       "David Walker and Kevin Watkins",
  title =        "On regions and linear types (extended abstract)",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "181--192",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/36.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chitil:2001:CET,
  author =       "Olaf Chitil",
  title =        "Compositional Explanation of Types and Algorithmic
                 Debugging of Type Errors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "193--204",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/40.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chakravarty:2001:FAF,
  author =       "Manuel M. T. Chakravarty and Gabriele Keller",
  title =        "Functional Array Fusion",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "205--216",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/38.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nanevski:2001:AGS,
  author =       "Aleksandar Nanevski and Guy Blelloch and Robert
                 Harper",
  title =        "Automatic Generation of Staged Geometric Predicates",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "217--228",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/14.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Paterson:2001:NNA,
  author =       "Ross Paterson",
  title =        "A New Notation for Arrows",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "229--240",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/49.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zenger:2001:EAD,
  author =       "Matthias Zenger and Martin Odersky",
  title =        "Extensible Algebraic Datatypes with Defaults",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "241--252",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/34.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Grobauer:2001:CRD,
  author =       "Bernd Grobauer",
  title =        "Cost Recurrences for {DML} Programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "253--264",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/45.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gustavsson:2001:PLC,
  author =       "J{\"o}rgen Gustavsson and David Sands",
  title =        "Possibilities and Limitations of Call-by-Need Space
                 Improvement",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "265--276",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/60.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:AIc,
  author =       "Anonymous",
  title =        "Author Index",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "277--277",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Nov 23 18:54:42 2001",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:IT,
  author =       "Anonymous",
  title =        "Invited talk 1",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:Sa,
  author =       "Anonymous",
  title =        "Session 1",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:Sb,
  author =       "Anonymous",
  title =        "Session 2",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:Sc,
  author =       "Anonymous",
  title =        "Session 3",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:Sd,
  author =       "Anonymous",
  title =        "Session 4",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:Se,
  author =       "Anonymous",
  title =        "Session 5",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:Sf,
  author =       "Anonymous",
  title =        "Session 6",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:Sg,
  author =       "Anonymous",
  title =        "Session 7",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Augustsson:2001:BHD,
  author =       "Lennart Augustsson",
  title =        "{Bluespec} --- a hardware description language",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Nov 23 18:54:42 2001",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Invited talk; no abstract or article in volume.",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frigo:2001:FFT,
  author =       "Matteo Frigo",
  title =        "The {Fastest Fourier Transform in the West}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Nov 23 18:54:42 2001",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Invited talk; no abstract or article in volume.",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/frigo.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Findler:2001:CSO,
  author =       "Robert Bruce Findler and Matthias Felleisen",
  title =        "Contract soundness for object-oriented languages",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "1--15",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ancona:2001:CCJ,
  author =       "D. Ancona and G. Lagorio and E. Zucca",
  title =        "A core calculus for {Java} exceptions",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "16--30",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bachrach:2001:JSE,
  author =       "Jonthan Bachrach and Keith Playford",
  title =        "The {Java Syntactic Extender} ({JSE})",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "31--42",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rountev:2001:PAJ,
  author =       "Atanas Rountev and Ana Milanova and Barbara G. Ryder",
  title =        "Points-to analysis for {Java} using annotated
                 constraints",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "43--55",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boyapati:2001:PTS,
  author =       "Chandrasekhar Boyapati and Martin Rinard",
  title =        "A parameterized type system for race-free {Java}
                 programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "56--69",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{vonPraun:2001:ORD,
  author =       "Christoph von Praun and Thomas R. Gross",
  title =        "Object race detection",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "70--82",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ogasawara:2001:SEH,
  author =       "Takeshi Ogasawara and Hideaki Komatsu and Toshio
                 Nakatani",
  title =        "A study of exception handling and its dynamic
                 optimization in {Java}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "83--95",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zibin:2001:EST,
  author =       "Yoav Zibin and Joseph Yossi Gil",
  title =        "Efficient subtyping tests with {PQ}-encoding",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "96--107",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Alpern:2001:EIJ,
  author =       "Bowen Alpern and Anthony Cocchi and Stephen Fink and
                 David Grove",
  title =        "Efficient implementation of {Java} interfaces:
                 {Invokeinterface} considered harmless",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "108--124",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Czajkowski:2001:MCV,
  author =       "Grzegorz Czajkowski and Laurent Dayn{\'e}s",
  title =        "Multitasking without compromise: a virtual machine
                 evolution",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "125--138",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Binder:2001:PRC,
  author =       "Walter Binder and Jane G. Hulaas and Alex
                 Villaz{\'o}n",
  title =        "Portable resource control in {Java}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "139--155",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nakamura:2001:ICC,
  author =       "Hiroaki Nakamura",
  title =        "Incremental computation of complex object queries",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "156--165",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Whaley:2001:PMC,
  author =       "John Whaley",
  title =        "Partial method compilation using dynamic profile
                 information",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "166--179",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Suganuma:2001:DOF,
  author =       "Toshio Suganuma and Toshiaki Yasue and Motohiro
                 Kawahito and Hideaki Komatsu and Toshio Nakatani",
  title =        "A dynamic optimization framework for a {Java}
                 just-in-time compiler",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "180--195",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pechtchanski:2001:DOI,
  author =       "Igor Pechtchanski and Vivek Sarkar",
  title =        "Dynamic optimistic interprocedural analysis: a
                 framework and an application",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "195--210",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McDirmid:2001:JNA,
  author =       "Sean McDirmid and Matthew Flatt and Wilson C. Hsieh",
  title =        "{Jiazzi}: new-age components for old-fashioned
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "211--222",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Duggan:2001:MMB,
  author =       "Dominic Duggan and Ching-Ching Techaubol",
  title =        "Modular mixin-based inheritance for application
                 frameworks",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "223--240",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Grothoff:2001:EOC,
  author =       "Christian Grothoff and Jens Palsberg and Jan Vitek",
  title =        "Encapsulating objects with confined types",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "241--253",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Eugster:2001:OE,
  author =       "Patrick Th. Eugster and Rachid Guerraoui and Christian
                 Heide Damm",
  title =        "On objects and events",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "254--269",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Visser:2001:VCT,
  author =       "Joost Visser",
  title =        "Visitor combination and traversal control",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "270--282",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ostermann:2001:OOC,
  author =       "Klaus Ostermann and Mira Mezini",
  title =        "Object-oriented composition untangled",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "283--299",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lanza:2001:CCB,
  author =       "Michele Lanza and St{\'e}phane Ducasse",
  title =        "A categorization of classes based on the visualization
                 of their internal structure: the class blueprint",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "300--311",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Harrold:2001:RTS,
  author =       "Mary Jean Harrold and James A. Jones and Tongyu Li and
                 Donglin Liang and Ashish Gujarathi",
  title =        "Regression test selection for {Java} software",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "312--326",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Riehle:2001:AUV,
  author =       "Dirk Riehle and Steven Fraleigh and Dirk Bucka-Lassen
                 and Nosa Omorogbe",
  title =        "The architecture of a {UML} virtual machine",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "327--341",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Blackburn:2001:PJ,
  author =       "Stephen M. Blackburn and Sharad Singhai and Matthew
                 Hertz and Kathryn S. McKinely and J. Eliot B. Moss",
  title =        "Pretenuring for {Java}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "342--352",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Brecht:2001:CGC,
  author =       "Tim Brecht and Eshrat Arjomandi and Chang Li and Hang
                 Pham",
  title =        "Controlling garbage collection and heap growth to
                 reduce the execution time of {Java} applications",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "353--366",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Levanoni:2001:FRC,
  author =       "Yossi Levanoni and Erez Petrank",
  title =        "An on-the-fly reference counting garbage collector for
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "11",
  pages =        "367--380",
  month =        nov,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 9 14:44:52 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2001 ACM SIGPLAN Conference on
                 Object Oriented Programming, Systems, Languages and
                 Applications (OOPSLA'01).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vlissides:2001:IIS,
  author =       "John Vlissides and Doug Lea",
  title =        "Introduction to this issue's special section on
                 {Intriguing Technology from OOPSLA}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "1--1",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jan 31 18:23:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:CCCb,
  author =       "Anonymous",
  title =        "Conference Corner: Calendar",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "2--11",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jan 31 18:23:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:CCIa,
  author =       "Anonymous",
  title =        "Conference Corner: {International Corner on Software
                 Engineering (ICSE)}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "12--12",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jan 31 18:23:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:CCF,
  author =       "Anonymous",
  title =        "Conference Corner: {Foundations of Software
                 Engineering (FSE)}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "13--13",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jan 31 18:23:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:CCP,
  author =       "Anonymous",
  title =        "Conference Corner: {Program Analysis for System Tools
                 and Engineering (PASTE)}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "14--14",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jan 31 18:23:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:CCIb,
  author =       "Anonymous",
  title =        "Conference Corner: {International Symposium on Memory
                 Management (ISMM)}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "15--15",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jan 31 18:23:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2001:FM,
  author =       "Paul Frenger",
  title =        "{Forth} mindstorms",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "16--19",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Varela:2001:PDR,
  author =       "Carlos Varela and Gul Agha",
  title =        "Programming Dynamically Reconfigurable Open Systems
                 with {SALSA}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "20--34",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nolte:2001:TPH,
  author =       "J{\"o}rg Nolte and Yutaka Ishikawa and Mitsuhisa
                 Sato",
  title =        "{TACO} --- Prototyping High-Level Object-Oriented
                 Programming Constructs by Means of Template Based
                 Programming Techniques",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "35--49",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yoder:2001:ADA,
  author =       "Joseph W. Yoder and Federico Balaguer and Ralph
                 Johnson",
  title =        "Architecture and Design of Adaptive Object-Models",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "50--60",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pawson:2001:NOT,
  author =       "Richard Pawson and Robert Matthews",
  title =        "Naked objects: a technique for designing more
                 expressive systems",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "61--67",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2001:IAc,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "68--68",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jan 31 18:23:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2001:IPAc,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Past Authors",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "69--69",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jan 31 18:23:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xu:2001:DAR,
  author =       "Baowen Xu and Zhenqiang Chen",
  title =        "Dependence Analysis for Recursive {Java} Programs",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "70--76",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dolog:2001:RCA,
  author =       "Peter Dolog and Valentino Vrani{\'c} and M{\'a}ria
                 Bielikov{\'a}",
  title =        "Representing Change By Aspect",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "77--83",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Avdicausevic:2001:AED,
  author =       "Enis Avdi{\v{c}}au{\v{s}}evi{\'c} and Mitja
                 Leni{\v{c}} and Marjan Mernik and Viljem {\v{Z}}umer",
  title =        "{AspectCOOL}: An experiment in design and
                 implementation of aspect-oriented language",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "84--94",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:F,
  author =       "Anonymous",
  title =        "{Forth}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "??--??",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:ITO,
  author =       "Anonymous",
  title =        "Intriguing technology from {OOPSLA}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "??--??",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2001:TCb,
  author =       "Anonymous",
  title =        "Technical correspondence",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "12",
  pages =        "??--??",
  month =        dec,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ball:2002:SPD,
  author =       "Thomas Ball and Sriram K. Rajamani",
  title =        "The {{\sc Slam}} project: debugging system software
                 via static analysis",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "1--3",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ammons:2002:MS,
  author =       "Glenn Ammons and Rastislav Bod{\'\i}k and James R.
                 Larus",
  title =        "Mining specifications",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "4--16",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kuncak:2002:RA,
  author =       "Viktor Kuncak and Patrick Lam and Martin Rinard",
  title =        "Role analysis",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "17--32",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Abadi:2002:ASP,
  author =       "Mart{\'\i}n Abadi and Bruno Blanchet",
  title =        "Analyzing security protocols with secrecy types and
                 logic programs",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "33--44",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chaki:2002:TMM,
  author =       "Sagar Chaki and Sriram K. Rajamani and Jakob Rehof",
  title =        "Types as models: model checking message-passing
                 programs",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "45--57",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Henzinger:2002:LA,
  author =       "Thomas A. Henzinger and Ranjit Jhala and Rupak
                 Majumdar and Gr{\'e}goire Sutre",
  title =        "Lazy abstraction",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "58--70",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Merro:2002:BCS,
  author =       "Massimo Merro and Matthew Hennessy",
  title =        "Bisimulation congruences in safe ambients",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "71--80",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Honda:2002:UTS,
  author =       "Kohei Honda and Nobuko Yoshida",
  title =        "A uniform type structure for secure information flow",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "81--92",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boehm:2002:BSU,
  author =       "Hans-J. Boehm",
  title =        "Bounding space usage of conservative garbage
                 collectors",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "93--100",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Petrank:2002:HCC,
  author =       "Erez Petrank and Dror Rawitz",
  title =        "The hardness of cache conscious data placement",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "101--112",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Philipose:2002:TAC,
  author =       "Matthai Philipose and Craig Chambers and Susan J.
                 Eggers",
  title =        "Towards automatic construction of staged compilers",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "113--125",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Felleisen:2002:PCB,
  author =       "Matthias Felleisen",
  title =        "From {POPL} to the classroom and back",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "126--127",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Necula:2002:CTS,
  author =       "George C. Necula and Scott McPeak and Westley Weimer",
  title =        "{CCured}: type-safe retrofitting of legacy code",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "128--139",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rubin:2002:EPA,
  author =       "Shai Rubin and Rastislav Bod{\'\i}k and Trishul
                 Chilimbi",
  title =        "An efficient profile-analysis framework for
                 data-layout optimizations",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "140--153",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramsey:2002:SLC,
  author =       "Norman Ramsey and Avi Pfeffer",
  title =        "Stochastic lambda calculus and monads of probability
                 distributions",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "154--165",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Banerjee:2002:RIC,
  author =       "Anindya Banerjee and David A. Naumann",
  title =        "Representation independence, confinement and access
                 control [extended abstract]",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "166--177",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cousot:2002:SDP,
  author =       "Patrick Cousot and Radhia Cousot",
  title =        "Systematic design of program transformation frameworks
                 by abstract interpretation",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "178--190",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2002:PAS,
  author =       "Cormac Flanagan and Shaz Qadeer",
  title =        "Predicate abstraction for software verification",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "191--202",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Su:2002:FOT,
  author =       "Zhendong Su and Alexander Aiken and Joachim Niehren
                 and Tim Priesnitz and Ralf Treinen",
  title =        "The first-order theory of subtyping constraints",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "203--216",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shao:2002:TSC,
  author =       "Zhong Shao and Bratin Saha and Valery Trifonov and
                 Nikolaos Papaspyrou",
  title =        "A type system for certified binaries",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "217--232",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Neubauer:2002:FLO,
  author =       "Matthias Neubauer and Peter Thiemann and Martin
                 Gasbichler and Michael Sperber",
  title =        "Functional logic overloading",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "233--244",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Manohar:2002:SFD,
  author =       "Rajit Manohar",
  title =        "Scalable formal design methods for asynchronous
                 {VLSI}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "245--246",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Acar:2002:AFP,
  author =       "Umut A. Acar and Guy E. Blelloch and Robert Harper",
  title =        "Adaptive functional programming",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "247--259",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hofmann:2002:SNS,
  author =       "Martin Hofmann",
  title =        "The strength of non-size increasing computation",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "260--269",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lerner:2002:CDA,
  author =       "Sorin Lerner and David Grove and Craig Chambers",
  title =        "Composing dataflow analyses and transformations",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "270--282",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lacey:2002:PCC,
  author =       "David Lacey and Neil D. Jones and Eric {Van Wyk} and
                 Carl Christian Frederiksen",
  title =        "Proving correctness of compiler optimizations by
                 temporal logic",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "283--294",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shuf:2002:EPT,
  author =       "Yefim Shuf and Manish Gupta and Rajesh Bordawekar and
                 Jaswinder Pal Singh",
  title =        "Exploiting prolific types for memory management and
                 optimizations",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "295--306",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fournet:2002:SIT,
  author =       "C{\'e}dric Fournet and Andrew D. Gordon",
  title =        "Stack inspection: theory and variants",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "307--318",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pottier:2002:IFI,
  author =       "Fran{\c{c}}ois Pottier and Vincent Simonet",
  title =        "Information flow inference for {ML}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "319--330",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Igarashi:2002:RUA,
  author =       "Atsushi Igarashi and Naoki Kobayashi",
  title =        "Resource usage analysis",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "1",
  pages =        "331--342",
  month =        jan,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:58 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "Proceedings of the 29th ACM SIGPLAN-SIGACT symposium
                 on Principles of Programming Languages (POPL'02).",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

%%% Unread: volume 37 number 2 February 2002 [my issue never arrived]
@Article{Noble:2002:FRJ,
  author =       "Julian V. Noble",
  title =        "{Forth} report: jump tables and state machines",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "14--19",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Christopher:2002:PFP,
  author =       "Thomas W. Christopher",
  title =        "In parallel: Facilities for parallelism: what should
                 be in a parallel library",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "20--22",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Creak:2002:HTWa,
  author =       "Alan Creak",
  title =        "How things were: Programming lessons from days gone
                 by: backward ran sentences until reeled the mind",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "23--26",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Singh:2002:ADC,
  author =       "Prabhat K. Singh and Arun Lakhotia",
  title =        "Analysis and detection of computer viruses and worms:
                 an annotated bibliography",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "29--35",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rashid:2002:WAP,
  author =       "Awais Rashid",
  title =        "Weaving aspects in a persistent environment",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "36--44",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kuhl:2002:OLA,
  author =       "Bernd K{\"u}hl and Axel-Tobias Schreiner",
  title =        "Objects for lexical analysis",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "45--52",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Siegfried:2002:SLH,
  author =       "Robert M. Siegfried",
  title =        "A scripting language to help the blind to program
                 visually",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "53--56",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nedjah:2002:ECD,
  author =       "Nadia Nedjah and Luiza de Macedo Mourelle",
  title =        "Efficient concise deterministic pattern-matching
                 automata for ambiguous patterns",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "57--67",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zongyan:2002:BVE,
  author =       "Qiu Zongyan",
  title =        "Bit-vector encoding of $n$-queen problem",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "68--70",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chambers:2002:SC,
  author =       "Craig Chambers",
  title =        "Staged compilation (invited talk)",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "1--8",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Meur:2002:TBG,
  author =       "Anne-Fran{\c{c}}oise Le Meur and Julia L. Lawall and
                 Charles Consel",
  title =        "Towards bridging the gap between programming languages
                 and partial evaluation",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "9--18",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Asai:2002:OPE,
  author =       "Kenichi Asai",
  title =        "Online partial evaluation for shift and reset",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "19--30",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Brabrand:2002:GLM,
  author =       "Claus Brabrand and Michael I. Schwartzbach",
  title =        "Growing languages with metamorphic syntax macros",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "31--40",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Secher:2002:CID,
  author =       "Jens Peter Secher and Morten Heine S{\o}rensen",
  title =        "From checking to inference via driving and dag
                 grammars",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "41--51",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vidal:2002:CAN,
  author =       "Germ{\'a}n Vidal",
  title =        "Cost-augmented narrowing-driven specialization",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "52--62",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lu:2002:PDA,
  author =       "Lunjin Lu",
  title =        "Path dependent analysis of logic programs",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "63--74",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gomez:2002:ATB,
  author =       "Gustavo G{\'o}mez and Yanhong A. Liu",
  title =        "Automatic time-bound analysis for a higher-order
                 language",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "75--86",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Giacobazzi:2002:CPS,
  author =       "Roberto Giacobazzi and Isabella Mastroeni",
  title =        "Compositionality in the puzzle of semantics",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "87--97",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bischof:2002:IAD,
  author =       "Christian H. Bischof and Paul D. Hovland and Boyana
                 Norris",
  title =        "Implementation of automatic differentiation tools
                 (invited talk)",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "98--107",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liu:2002:POU,
  author =       "Yanhong A. Liu and Scott D. Stoller",
  title =        "Program optimization using indexed and recursive data
                 structures",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "108--118",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramakrishnan:2002:MII,
  author =       "Naren Ramakrishnan and Robert Capra and Manuel A.
                 P{\'e}rez-Qui{\~n}ones",
  title =        "Mixed-initiative interaction = mixed computation",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "119--130",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Barthe:2002:CTI,
  author =       "Gilles Barthe and Tarmo Uustalu",
  title =        "{CPS} translating inductive and coinductive types",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "3",
  pages =        "131--142",
  month =        mar,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramsey:2002:LSP,
  author =       "Normal Ramsey",
  title =        "{{\LaTeX}} Support for Proceedings",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "1--3",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 20 09:28:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cytron:2002:SAA,
  author =       "Ron Cytron",
  title =        "{SIGPLAN Awards}: The {2001 Award Winners}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "4--4",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 20 09:28:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2002:CCC,
  author =       "Jay Fenwick",
  title =        "Conference Corner: Calendar",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "5--14",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 20 09:28:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2002:CPF,
  author =       "Anonymous",
  title =        "Call for Participation: {First International
                 IFIP\slash ACM Working Conference on Component
                 Deployment, June 20--21, 2002, Berlin Germany}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "15--15",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 20 09:28:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2002:CPI,
  author =       "Anonymous",
  title =        "Call for Participation: {ISSTA 2002: International
                 Symposium on Software Testing and Analysis}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "16--16",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 20 09:28:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2002:FRS,
  author =       "Paul Frenger",
  title =        "{Forth} Report: Strap-On {Forth}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "17--20",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:01 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Creak:2002:HTWb,
  author =       "Alan Creak",
  title =        "How things were: Programming lessons from days gone
                 by: {Cobol}, stewed for students",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "21--26",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:01 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Christopher:2002:PCR,
  author =       "Thomas W. Christopher",
  title =        "In Parallel: Communicating Reactive Objects:
                 Message-Driven Parallelism",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "27--28",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:01 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2002:IAa,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "29--29",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 20 09:28:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2002:IPAa,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Past Authors",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "30--30",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 20 09:28:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Weisert:2002:IYO,
  author =       "Conrad Weisert",
  title =        "If your only tool is a hammer, everything looks like a
                 nail: Pseudo Object-Oriented Programming Considered
                 Harmful",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "31--31",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 20 09:28:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zee:2002:WBRa,
  author =       "Karen Zee and Martin Rinard",
  title =        "Write Barrier Removal by Static Analysis",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "32--41",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:01 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2002:EGR,
  author =       "Yumin Zhang and Xiaobo (Sharon) Hu and Danny Z. Chen",
  title =        "Efficient Global Register Allocation for Minimizing
                 Energy Consumption",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "42--53",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:01 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Spinellis:2002:MPC,
  author =       "Diomidis Spinellis",
  title =        "A Modest Proposal for Curing the Public Field Phobia",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "54--56",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:01 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ledru:2002:SPJ,
  author =       "Pascal Ledru",
  title =        "Smart Proxies for {Jini} Services",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "57--61",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:01 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Acebal:2002:GDP,
  author =       "C{\'e}sar F. Acebal and Ra{\'u}l Izquierdo Castanedo
                 and Juan M. Cueva Lovelle",
  title =        "Good Design Principles in a Compiler University
                 Course",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "62--73",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:01 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wells:2002:HMA,
  author =       "Paul Damian Wells",
  title =        "The {HSSM} macro-architecture, {Virtual Machine} and
                 {H} languages",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "4",
  pages =        "74--82",
  month =        apr,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:01 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Hierarchical Simultaneous Set Membership (HSSM)",
}

@Article{Foster:2002:FST,
  author =       "Jeffrey S. Foster and Tachio Terauchi and Alex Aiken",
  title =        "Flow-sensitive type qualifiers",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "1--12",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fahndrich:2002:AFP,
  author =       "Manuel Fahndrich and Robert DeLine",
  title =        "Adoption and focus: practical linear types for
                 imperative programming",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "13--24",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Budimlic:2002:FCC,
  author =       "Zoran Budimlic and Keith D. Cooper and Timothy J.
                 Harvey and Ken Kennedy and Timothy S. Oberg and Steven
                 W. Reeves",
  title =        "Fast copy coalescing and live-range identification",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "25--32",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Koseki:2002:PDG,
  author =       "Akira Koseki and Hideaki Komatsu and Toshio Nakatani",
  title =        "Preference-directed graph coloring",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "33--44",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gargi:2002:SAP,
  author =       "Karthik Gargi",
  title =        "A sparse algorithm for predicated global value
                 numbering",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "45--56",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Das:2002:EPS,
  author =       "Manuvir Das and Sorin Lerner and Mark Seigle",
  title =        "{ESP}: path-sensitive program verification in
                 polynomial time",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "57--68",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hallem:2002:SLB,
  author =       "Seth Hallem and Benjamin Chelf and Yichen Xie and
                 Dawson Engler",
  title =        "A system and language for building system-specific,
                 static analyses",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "69--82",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramalingam:2002:DSP,
  author =       "G. Ramalingam and Alex Warshavsky and John Field and
                 Deepak Goyal and Mooly Sagiv",
  title =        "Deriving specialized program analyses for certifying
                 component-client conformance",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "83--94",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Debray:2002:PGC,
  author =       "Saumya Debray and William Evans",
  title =        "Profile-guided code compression",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "95--105",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rajagopalan:2002:PDO,
  author =       "Mohan Rajagopalan and Saumya K. Debray and Matti A.
                 Hiltunen and Richard D. Schlichting",
  title =        "Profile-directed optimization of event-based
                 programs",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "106--116",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liao:2002:PPB,
  author =       "Steve S. W. Liao and Perry H. Wang and Hong Wang and
                 Gerolf Hoflehner and Daniel Lavery and John P. Shen",
  title =        "Post-pass binary adaptation for software-based
                 speculative precomputation",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "117--128",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ossia:2002:PIC,
  author =       "Yoav Ossia and Ori Ben-Yitzhak and Irit Goft and
                 Elliot K. Kolodner and Victor Leikehman and Avi
                 Owshanko",
  title =        "A parallel, incremental and concurrent {GC} for
                 servers",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "129--140",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hallenberg:2002:CRI,
  author =       "Niels Hallenberg and Martin Elsman and Mads Tofte",
  title =        "Combining region inference and garbage collection",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "141--152",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Blackburn:2002:BGA,
  author =       "Stephen M. Blackburn and Richard Jones and Kathryn S.
                 McKinley and J. Eliot B. Moss",
  title =        "{Beltway}: getting around garbage collection
                 gridlock",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "153--164",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{So:2002:CAF,
  author =       "Byoungro So and Mary W. Hall and Pedro C. Diniz",
  title =        "A compiler approach to fast hardware design space
                 exploration in {FPGA}-based systems",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "165--176",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cociorva:2002:STT,
  author =       "Daniel Cociorva and Gerald Baumgartner and Chi-Chung
                 Lam and P. Sadayappan and J. Ramanujam and Marcel
                 Nooijen and David E. Bernholdt and Robert Harrison",
  title =        "Space-time trade-off optimization for a class of
                 electronic structure calculations",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "177--186",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kawahito:2002:ESE,
  author =       "Motohiro Kawahito and Hideaki Komatsu and Toshio
                 Nakatani",
  title =        "Effective sign extension elimination",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "187--198",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chilimbi:2002:DHD,
  author =       "Trishul M. Chilimbi and Martin Hirzel",
  title =        "Dynamic hot data stream prefetching for
                 general-purpose programs",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "199--209",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wu:2002:EDR,
  author =       "Youfeng Wu",
  title =        "Efficient discovery of regular stride patterns in
                 irregular programs and its use in compiler
                 prefetching",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "210--221",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Burtscher:2002:SLC,
  author =       "Martin Burtscher and Amer Diwan and Matthias
                 Hauswirth",
  title =        "Static load classification for improving the value
                 predictability of data-cache misses",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "222--233",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2002:ESC,
  author =       "Cormac Flanagan and K. Rustan M. Leino and Mark
                 Lillibridge and Greg Nelson and James B. Saxe and
                 Raymie Stata",
  title =        "Extended static checking for {Java}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "234--245",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Leino:2002:UDG,
  author =       "K. Rustan M. Leino and Arnd Poetzsch-Heffter and
                 Yunhong Zhou",
  title =        "Using data groups to specify and check side effects",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "246--257",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Choi:2002:EPD,
  author =       "Jong-Deok Choi and Keunwoo Lee and Alexey Loginov and
                 Robert O'Callahan and Vivek Sarkar and Manu Sridharan",
  title =        "Efficient and precise datarace detection for
                 multithreaded object-oriented programs",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "258--269",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Baker:2002:MMD,
  author =       "Jason Baker and Wilson C. Hsieh",
  title =        "{Maya}: multiple-dispatch syntax extension in {Java}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "270--281",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Grossman:2002:RBM,
  author =       "Dan Grossman and Greg Morrisett and Trevor Jim and
                 Michael Hicks and Yanling Wang and James Cheney",
  title =        "Region-based memory management in cyclone",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "282--293",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Almasi:2002:MCM,
  author =       "George Alm{\'a}si and David Padua",
  title =        "{MaJIC}: compiling {MATLAB} for speed and
                 responsiveness",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "294--303",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Joshi:2002:DGD,
  author =       "Rajeev Joshi and Greg Nelson and Keith Randall",
  title =        "{Denali}: a goal-directed superoptimizer",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "304--314",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Henzinger:2002:EMP,
  author =       "Thomas A. Henzinger and Christoph M. Kirsch",
  title =        "The embedded machine: predictable, portable real-time
                 code",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "5",
  pages =        "315--326",
  month =        may,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2002:FRF,
  author =       "Paul Frenger",
  title =        "{Forth} report: {Forth}'s {DOOM}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "14--17",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergin:2002:UOO,
  author =       "Joseph Bergin and Russel Winder",
  title =        "Understanding object-oriented programming",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "18--25",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2002:IAb,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "26--26",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2002:IPAb,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Past Authors",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "27--27",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2002:YAM,
  author =       "Haiming Chen and Yunmei Dong",
  title =        "Yet another meta-language for programming language
                 processing",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "28--37",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Guilan:2002:RCC,
  author =       "Dai Guilan and Tian Jinlan and Zhang Suqin and Jiang
                 Weidu and Dai Jun",
  title =        "Retargetable cross compilation techniques: comparison
                 and analysis of {GCC} and {Zephyr}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "38--44",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Guilan:2002:SCT,
  author =       "Dai Guilan and Zhang Suqing and Tian Jinlan and Jiang
                 Weidu",
  title =        "A study of compiler techniques for multiple targets in
                 compiler infrastructures",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "45--51",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kiselyov:2002:SS,
  author =       "Oleg Kiselyov",
  title =        "{SXML} specification",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "52--58",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cockshott:2002:VPR,
  author =       "Paul Cockshott",
  title =        "{Vector Pascal} reference manual",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "59--81",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lee:2002:AOI,
  author =       "Ji-Hyun Lee and Cheol-Jung Yoo and Ok-Bae Chang",
  title =        "Analysis of object interaction during the enterprise
                 {JavaBeans} lifecycle using formal specification
                 technique",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "6",
  pages =        "82--92",
  month =        jun,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Magarshack:2002:SCN,
  author =       "Philippe Magarshack",
  title =        "Systems-on-chip needs for embedded software
                 development: an industrial perspective",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "1--1",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Saputra:2002:ECC,
  author =       "H. Saputra and M. Kandemir and N. Vijaykrishnan and M.
                 J. Irwin and J. S. Hu and C-H. Hsu and U. Kremer",
  title =        "Energy-conscious compilation based on voltage
                 scaling",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "2--11",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Oh:2002:FRD,
  author =       "Hyunok Oh and Soonhoi Ha",
  title =        "Fractional rate dataflow model and efficient code
                 synthesis for multimedia applications",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "12--17",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mohanty:2002:RDS,
  author =       "S. Mohanty and V. K. Prasanna and S. Neema and J.
                 Davis",
  title =        "Rapid design space exploration of heterogeneous
                 embedded systems using symbolic search and
                 multi-granular simulation",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "18--27",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Palem:2002:DSO,
  author =       "Krishna V. Palem and Rodric M. Rabbah and Vincent J.
                 {Mooney III} and Pinar Korkmaz and Kiran Puttaswamy",
  title =        "Design space optimization of embedded memory systems
                 via data remapping",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "28--37",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hunleth:2002:FFM,
  author =       "Frank Hunleth and Ron K. Cytron",
  title =        "Footprint and feature management using aspect-oriented
                 programming techniques",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "38--45",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kastner:2002:GCF,
  author =       "Daniel K{\"a}stner and Stephan Wilhelm",
  title =        "Generic control flow reconstruction from assembly
                 code",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "46--55",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Krishnaswamy:2002:PGS,
  author =       "Arvind Krishnaswamy and Rajiv Gupta",
  title =        "Profile guided selection of {ARM} and thumb
                 instructions",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "56--64",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wakabayashi:2002:SAI,
  author =       "Takayuki Wakabayashi and Hiroaki Takada",
  title =        "Standardization approach of {ITRON} debugging
                 interface specification and evaluation of its
                 adaptability",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "65--74",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jhumka:2002:SDG,
  author =       "Arshad Jhumka and Martin Hiller and Vilgot Claesson
                 and Neeraj Suri",
  title =        "On systematic design of globally consistent executable
                 assertions in embedded software",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "75--84",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Feng:2002:AFV,
  author =       "Xiushan Feng and Alan J. Hu",
  title =        "Automatic formal verification for scheduled {VLIW}
                 code",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "85--92",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fettweis:2002:DWD,
  author =       "Gerhard Fettweis",
  title =        "{DSPs}: why don't they just go away!",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "93--93",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lorenz:2002:EAC,
  author =       "Markus Lorenz and Lars Wehmeyer and Thorsten
                 Dr{\"a}ger",
  title =        "Energy aware compilation for {DSPs} with {SIMD}
                 instructions",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "94--101",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kessler:2002:OIC,
  author =       "Christoph Kessler and Andrzej Bednarski",
  title =        "Optimal integrated code generation for clustered
                 {VLIW} architectures",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "102--111",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Qian:2002:LFC,
  author =       "Yi Qian and Steve Carr and Philip Sweany",
  title =        "Loop fusion for clustered {VLIW} architectures",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "112--119",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Naik:2002:CCS,
  author =       "Mayur Naik and Jens Palsberg",
  title =        "Compiling with code-size constraints",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "120--129",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cho:2002:ERM,
  author =       "Jeonghun Cho and Yunheung Paek and David Whalley",
  title =        "Efficient register and memory assignment for
                 non-orthogonal architectures via graph coloring and
                 {MST} algorithms",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "130--138",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Scholz:2002:RAI,
  author =       "Bernhard Scholz and Erik Eckstein",
  title =        "Register allocation for irregular architectures",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "139--148",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Barthelmann:2002:ITR,
  author =       "Volker Barthelmann",
  title =        "Inter-task register-allocation for static operating
                 systems",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "149--154",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhao:2002:VSI,
  author =       "Wankang Zhao and Baosheng Cai and David Whalley and
                 Mark W. Bailey and Robert van Engelen and Xin Yuan and
                 Jason D. Hiser and Jack W. Davidson and Kyle Gallivan
                 and Douglas L. Jones",
  title =        "{VISTA}: a system for interactive code improvement",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "155--164",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hu:2002:CDC,
  author =       "J. S. Hu and M. Kandemir and N. Vijaykrishnan and M.
                 J. Irwin and H. Saputra and W. Zhang",
  title =        "Compiler-directed cache polymorphism",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "165--174",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Milner:2002:QPF,
  author =       "Christopher W. Milner and Jack W. Davidson",
  title =        "{\em {Quick} piping\/}: a fast, high-level model for
                 describing processor pipelines",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "175--184",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wahlen:2002:ASC,
  author =       "Oliver Wahlen and Tilman Gl{\"o}kler and Achim Nohl
                 and Andreas Hoffmann and Rainer Leupers and Heinrich
                 Meyr",
  title =        "Application specific compiler\slash architecture
                 codesign: a case study",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "185--193",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Palm:2002:WUC,
  author =       "Jeffrey Palm and Han Lee and Amer Diwan and J. Eliot
                 B. Moss",
  title =        "When to use a compilation service?",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "194--203",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Newsome:2002:PCD,
  author =       "Matt Newsome and Des Watson",
  title =        "Proxy compilation of dynamically loaded {Java} classes
                 with {MoJo}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "204--212",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dudani:2002:ECF,
  author =       "Ajay Dudani and Frank Mueller and Yifan Zhu",
  title =        "Energy-conserving feedback {EDF} scheduling for
                 embedded systems with real-time constraints",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "213--222",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kim:2002:PPT,
  author =       "Saehwa Kim and Seongsoo Hong and Tae-Hyung Kim",
  title =        "Perfecting preemption threshold scheduling for
                 object-oriented real-time system design: from the
                 perspective of real-time synchronization",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "7",
  pages =        "223--232",
  month =        jul,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2002:FRQ,
  author =       "Paul Frenger",
  title =        "{Forth} report: {Quartus Forth} for the {Palm Pilot}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "6--8",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clark:2002:PPP,
  author =       "Chris Clark",
  title =        "Practical parsing patterns: Conflicts",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "9--14",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Christopher:2002:PHS,
  author =       "Thomas W. Christopher",
  title =        "In parallel: {HPC} is a strange land",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "15--16",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2002:IAc,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "17--17",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2002:IPAc,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Past Authors",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "18--18",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:04 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hughes:2002:HMT,
  author =       "Elliott Hughes",
  title =        "How many trivial getter methods does {Java} have?",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "19--24",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jeon:2002:EBT,
  author =       "Taewoong Jeon and Hyon Woo Seung and Sungyoung Lee",
  title =        "Embedding built-in tests in hot spots of an
                 object-oriented framework",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "25--34",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ortin:2002:IRC,
  author =       "Francisco Ort{\'\i}n and Juan Manuel Cueva",
  title =        "Implementing a real computational-environment jump in
                 order to develop a runtime-adaptable reflective
                 platform",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "35--44",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2002:OMD,
  author =       "Zhenqiang Chen and Baowen Xu and Jianjun Zhao",
  title =        "An overview of methods for dependence analysis of
                 concurrent programs",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "45--52",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dhamdhere:2002:PPR,
  author =       "Dhananjay M. Dhamdhere",
  title =        "{E-path\_PRE}: partial redundancy elimination made
                 easy",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "53--65",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Doh:2002:DIL,
  author =       "Kyung Goo Doh and Seung Cheol Shin",
  title =        "Detection of information leak by data flow analysis",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "8",
  pages =        "66--71",
  month =        aug,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Myers:2002:TMN,
  author =       "Brad A. Myers",
  title =        "Towards more natural functional programming
                 languages",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "1--1",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hinze:2002:BOS,
  author =       "Ralf Hinze",
  title =        "Bootstrapping one-sided flexible arrays",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "2--13",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Voigtlander:2002:CRM,
  author =       "Janis Voigtl{\"a}nder",
  title =        "Concatenate, reverse and map vanish for free",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "14--25",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Carlsson:2002:MIC,
  author =       "Magnus Carlsson",
  title =        "Monads for incremental computing",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "26--35",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ford:2002:PPS,
  author =       "Bryan Ford",
  title =        "Packrat parsing: simple, powerful, lazy, linear time,
                 functional pearl",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "36--47",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Findler:2002:CHO,
  author =       "Robert Bruce Findler and Matthias Felleisen",
  title =        "Contracts for higher-order functions",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "48--59",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ohori:2002:ICE,
  author =       "Atsushi Ohori and Kiyoshi Yamatodani",
  title =        "An interoperable calculus for external object access",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "60--71",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flatt:2002:CCM,
  author =       "Matthew Flatt",
  title =        "Composable and compilable macros: you want it when?",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "72--83",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dube:2002:DDA,
  author =       "Danny Dub{\'e} and Marc Feeley",
  title =        "A demand-driven adaptive type analysis",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "84--97",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Glynn:2002:EAN,
  author =       "Kevin Glynn and Peter J. Stuckey and Martin Sulzmann
                 and Harald S{\o}ndergaard",
  title =        "Exception analysis for non-strict languages",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "98--109",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Millstein:2002:MTH,
  author =       "Todd Millstein and Colin Bleckner and Craig Chambers",
  title =        "Modular typechecking for hierarchically extensible
                 datatypes and functions",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "110--122",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Moore:2002:FFM,
  author =       "J. Strother Moore",
  title =        "Functional formal methods",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "123--123",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Svenningsson:2002:SFA,
  author =       "Josef Svenningsson",
  title =        "Shortcut fusion for accumulating parameters {\&}
                 zip-like functions",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "124--132",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Luth:2002:CMU,
  author =       "Christoph L{\"u}th and Neil Ghani",
  title =        "Composing monads using coproducts",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "133--144",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hanna:2002:IVF,
  author =       "Keith Hanna",
  title =        "Interactive visual functional programming",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "145--156",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Baars:2002:TDT,
  author =       "Arthur I. Baars and S. Doaitse Swierstra",
  title =        "Typing dynamic typing",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "157--166",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Stuckey:2002:TO,
  author =       "Peter J. Stuckey and Martin Sulzmann",
  title =        "A theory of overloading",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "167--178",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Neubauer:2002:TCM,
  author =       "Matthias Neubauer and Peter Thiemann",
  title =        "Type classes with more higher-order polymorphism",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "179--190",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Crary:2002:EST,
  author =       "Karl Crary and Joseph C. Vanderwaart",
  title =        "An expressive, scalable type theory for certified
                 code",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "191--205",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

%%% Page gap: volume 37 number 2 pages 27--28
@Article{Nanevski:2002:MPN,
  author =       "Aleksandar Nanevski",
  title =        "Meta-programming with names and necessity",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "206--217",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pasalic:2002:TSI,
  author =       "Emir Pa{\v{s}}ali{\'c} and Walid Taha and Tim Sheard",
  title =        "Tagless staged interpreters for typed languages",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "218--229",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Danvy:2002:TBA,
  author =       "Olivier Danvy and Mayer Goldberg",
  title =        "There and back again",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "230--234",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gregoire:2002:CIS,
  author =       "Benjamin Gr{\'e}goire and Xavier Leroy",
  title =        "A compiled implementation of strong reduction",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "235--246",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hansen:2002:ESR,
  author =       "Lars T. Hansen and William D. Clinger",
  title =        "An experimental study of renewal-older-first garbage
                 collection",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "247--258",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Serpette:2002:CSJ,
  author =       "Bernard Paul Serpette and Manuel Serrano",
  title =        "Compiling scheme to {JVM} bytecode: a performance
                 study",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "259--270",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gasbichler:2002:FSC,
  author =       "Martin Gasbichler and Michael Sperber",
  title =        "Final shift for {\tt call/cc}: direct implementation
                 of shift and reset",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "271--282",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jones:2002:PGT,
  author =       "Neil D. Jones and Arne J. Glenstrup",
  title =        "Program generation, termination, and binding-time
                 analysis",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "9",
  pages =        "283--283",
  month =        sep,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:07 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

%%% NB: Page gaps in volume 37 number 10 (2--4, 42--44, 81--84, 121--122,
%%% 156--158, 197--198, 235--238, 277--278) are due to sectional headings
@Article{Estrin:2002:SNR,
  author =       "Deborah Estrin",
  title =        "Sensor Network Research: Emerging Challenges for
                 Architecture, Systems, and Languages",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "1--1",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  annote =       "No article text published.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rajwar:2002:TLF,
  author =       "Ravi Rajwar and James R. Goodman",
  title =        "Transactional lock-free execution of lock-based
                 programs",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "5--17",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Martinez:2002:SSA,
  author =       "Jos{\'e} F. Mart{\'\i}nez and Josep Torrellas",
  title =        "Speculative synchronization: applying thread-level
                 speculation to explicitly parallel applications",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "18--29",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lepak:2002:TSS,
  author =       "Kevin M. Lepak and Mikko H. Lipasti",
  title =        "Temporally silent stores",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "30--41",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sherwood:2002:ACL,
  author =       "Timothy Sherwood and Erez Perelman and Greg Hamerly
                 and Brad Calder",
  title =        "Automatically characterizing large scale program
                 behavior",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "45--57",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ogata:2002:BFO,
  author =       "Kazunori Ogata and Hideaki Komatsu and Toshio
                 Nakatani",
  title =        "Bytecode fetch optimization for a {Java} interpreter",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "58--67",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2002:UIO,
  author =       "Tao Li and Lizy Kurian John and Anand Sivasubramaniam
                 and N. Vijaykrishnan and Juan Rubio",
  title =        "Understanding and improving operating system effects
                 in control flow prediction",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "68--80",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Levis:2002:MTV,
  author =       "Philip Levis and David Culler",
  title =        "{Mat{\'e}}: a tiny virtual machine for sensor
                 networks",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "85--95",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Juang:2002:EEC,
  author =       "Philo Juang and Hidekazu Oki and Yong Wang and
                 Margaret Martonosi and Li Shiuan Peh and Daniel
                 Rubenstein",
  title =        "Energy-efficient computing for wildlife tracking:
                 design tradeoffs and early experiences with
                 {ZebraNet}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "96--107",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kirovski:2002:ETS,
  author =       "Darko Kirovski and Milenko Drini{\'c} and Miodrag
                 Potkonjak",
  title =        "Enabling trusted software integrity",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "108--120",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zeng:2002:EME,
  author =       "Heng Zeng and Carla S. Ellis and Alvin R. Lebeck and
                 Amin Vahdat",
  title =        "{ECOSystem}: managing energy as a first class
                 operating system resource",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "123--132",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ashok:2002:CMC,
  author =       "Raksit Ashok and Saurabh Chheda and Csaba Andras
                 Moritz",
  title =        "{Cool-Mem}: combining statically speculative memory
                 accessing with selective address translation for energy
                 efficiency",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "133--143",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sasanka:2002:JLG,
  author =       "Ruchira Sasanka and Christopher J. Hughes and Sarita
                 V. Adve",
  title =        "Joint local and global hardware adaptations for
                 energy",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "144--155",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kim:2002:DEC,
  author =       "Dongkeun Kim and Donald Yeung",
  title =        "Design and evaluation of compiler algorithms for
                 pre-execution",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "159--170",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhai:2002:COS,
  author =       "Antonia Zhai and Christopher B. Colohan and J. Gregory
                 Steffan and Todd C. Mowry",
  title =        "Compiler optimization of scalar value communication
                 between speculative threads",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "171--183",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Oplinger:2002:ESR,
  author =       "Jeffrey Oplinger and Monica S. Lam",
  title =        "Enhancing software reliability with speculative
                 threads",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "184--196",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Butts:2002:DDI,
  author =       "J. Adam Butts and Guri Sohi",
  title =        "Dynamic dead-instruction detection and elimination",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "199--210",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kim:2002:ANU,
  author =       "Changkyu Kim and Doug Burger and Stephen W. Keckler",
  title =        "An adaptive, non-uniform cache structure for
                 wire-delay dominated on-chip caches",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "211--222",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mukherjee:2002:CSA,
  author =       "Shubhendu S. Mukherjee and Federico Silla and Peter
                 Bannon and Joel Emer and Steve Lang and David Webb",
  title =        "A comparative study of arbitration algorithms for the
                 {Alpha 21364} pipelined router",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "223--234",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kim:2002:IWS,
  author =       "Hyong-youb Kim and Vijay S. Pai and Scott Rixner",
  title =        "Increasing {Web} server throughput with network
                 interface data caching",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "239--250",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kohler:2002:PLO,
  author =       "Eddie Kohler and Robert Morris and Benjie Chen",
  title =        "Programming language optimizations for modular router
                 configurations",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "251--263",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sivathanu:2002:ERA,
  author =       "Muthian Sivathanu and Andrea C. Arpaci-Dusseau and
                 Remzi H. Arpaci-Dusseau",
  title =        "Evolving {RPC} for active storage",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "264--276",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cooksey:2002:SCD,
  author =       "Robert Cooksey and Stephan Jourdan and Dirk Grunwald",
  title =        "A stateless, content-directed data prefetching
                 mechanism",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "279--290",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gordon:2002:SCC,
  author =       "Michael I. Gordon and William Thies and Michal
                 Karczmarek and Jasper Lin and Ali S. Meli and Andrew A.
                 Lamb and Chris Leger and Jeremy Wong and Henry Hoffmann
                 and David Maze and Saman Amarasinghe",
  title =        "A stream compiler for communication-exposed
                 architectures",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "291--303",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Witchel:2002:MMP,
  author =       "Emmett Witchel and Josh Cates and Krste Asanovi{\'c}",
  title =        "{Mondrian} memory protection",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "10",
  pages =        "304--316",
  month =        oct,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:09 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Berger:2002:RCM,
  author =       "Emery D. Berger and Benjamin G. Zorn and Kathryn S.
                 McKinley",
  title =        "Reconsidering custom memory allocation",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "1--12",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shuf:2002:CPL,
  author =       "Yefim Shuf and Manish Gupta and Hubertus Franke and
                 Andrew Appel and Jaswinder Pal Singh",
  title =        "Creating and preserving locality of {Java}
                 applications at allocation and garbage collection
                 times",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "13--25",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bjornsson:2002:BHP,
  author =       "Magnus E. Bjornsson and Liuba Shrira",
  title =        "{BuddyCache}: high-performance object storage for
                 collaborative strong-consistency applications in a
                 {WAN}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "26--39",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Manolescu:2002:WEC,
  author =       "Dragos A. Manolescu",
  title =        "Workflow enactment with continuation and future
                 objects",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "40--51",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mezini:2002:IIC,
  author =       "Mira Mezini and Klaus Ostermann",
  title =        "Integrating independent components with on-demand
                 remodularization",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "52--67",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Killijian:2002:PSC,
  author =       "Marc-Olivier Killijian and Juan-Carlos Ruiz and
                 Jean-Charles Fabre",
  title =        "Portable serialization of {CORBA} objects: a
                 reflective approach",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "68--82",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Marelly:2002:MIS,
  author =       "Rami Marelly and David Harel and Hillel Kugler",
  title =        "Multiple instances and symbolic variables in
                 executable sequence charts",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "83--100",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Michel:2002:CBA,
  author =       "Laurent Michel and Pascal {Van Hentenryck}",
  title =        "A constraint-based architecture for local search",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "101--110",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Arnold:2002:OFD,
  author =       "Matthew Arnold and Michael Hind and Barbara G. Ryder",
  title =        "Online feedback-directed optimization of {Java}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "111--129",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kawachiya:2002:LRJ,
  author =       "Kiyokuni Kawachiya and Akira Koseki and Tamiya
                 Onodera",
  title =        "Lock reservation: {Java} locks can mostly do without
                 atomic operations",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "130--141",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zibin:2002:FAC,
  author =       "Yoav Zibin and Joseph Yossi Gil",
  title =        "Fast algorithm for creating space efficient
                 dispatching tables with application to
                 multi-dispatching",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "142--160",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hannemann:2002:DPI,
  author =       "Jan Hannemann and Gregor Kiczales",
  title =        "Design pattern implementation in {Java} and
                 {aspectJ}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "161--173",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Soares:2002:IDP,
  author =       "Sergio Soares and Eduardo Laureano and Paulo Borba",
  title =        "Implementing distribution and persistence aspects with
                 {aspectJ}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "174--190",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zee:2002:WBRb,
  author =       "Karen Zee and Martin Rinard",
  title =        "Write barrier removal by static analysis",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "191--210",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boyapati:2002:OTS,
  author =       "Chandrasekhar Boyapati and Robert Lee and Martin
                 Rinard",
  title =        "Ownership types for safe programming: preventing data
                 races and deadlocks",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "211--230",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Khurshid:2002:AAL,
  author =       "Sarfraz Khurshid and Darko Marinov and Daniel
                 Jackson",
  title =        "An analyzable annotation language",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "231--245",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cecchet:2002:PSE,
  author =       "Emmanuel Cecchet and Julie Marguerite and Willy
                 Zwaenepoel",
  title =        "Performance and scalability of {EJB} applications",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "246--261",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Palacz:2002:IEC,
  author =       "Krzysztof Palacz and Jan Vitek and Grzegorz Czajkowski
                 and Laurent Daynas",
  title =        "{Incommunicado}: efficient communication for
                 isolates",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "262--274",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{DeSutter:2002:SML,
  author =       "Bjorn {De Sutter} and Bruno {De Bus} and Koen {De
                 Bosschere}",
  title =        "Sifting out the mud: low level {C++} code reuse",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "275--291",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clarke:2002:OED,
  author =       "Dave Clarke and Sophia Drossopoulou",
  title =        "Ownership, encapsulation and the disjointness of type
                 and effect",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "292--310",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Aldrich:2002:AAP,
  author =       "Jonathan Aldrich and Valentin Kostadinov and Craig
                 Chambers",
  title =        "Alias annotations for program understanding",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "311--330",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pucella:2002:TFC,
  author =       "Riccardo Pucella",
  title =        "Towards a formalization for {COM}. {Part I}: {The}
                 primitive calculus",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "331--342",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Printezis:2002:GAH,
  author =       "Tony Printezis and Richard Jones",
  title =        "{GCspy}: an adaptable heap visualisation framework",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "343--358",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Koved:2002:ARA,
  author =       "Larry Koved and Marco Pistoia and Aaron Kershenbaum",
  title =        "Access rights analysis for {Java}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "359--372",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dmitriev:2002:LSM,
  author =       "Mikhail Dmitriev",
  title =        "Language-specific make technology for the {Java}
                 programming language",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "11",
  pages =        "373--385",
  month =        nov,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:10 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2002:FRG,
  author =       "Paul Frenger",
  title =        "{Forth} report: Going {APE.FORTH} to {Mars}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "9--13",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Creak:2002:HTWc,
  author =       "Alan Creak",
  title =        "How things were: {Edsger W. Dijkstra}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "14--16",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Norris:2002:ISI,
  author =       "Cindy Norris",
  title =        "Introduction to special issue",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "17--17",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Arts:2002:TAE,
  author =       "Thomas Arts and Lars-{\AA}ke Fredlund",
  title =        "Trace analysis of {Erlang} programs",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "18--24",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wiger:2002:WCP,
  author =       "Ulf Wiger and G{\"o}sta Ask and Kent Boortz",
  title =        "World-class product certification using {Erlang}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "25--34",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Claessen:2002:ELA,
  author =       "Koen Claessen and Gordon J. Pace",
  title =        "An embedded language approach to teaching hardware
                 compilation",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "35--46",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Claessen:2002:TMC,
  author =       "Koen Claessen and John Hughes",
  title =        "Testing monadic code with {QuickCheck}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "47--59",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sheard:2002:TMP,
  author =       "Tim Sheard and Simon Peyton Jones",
  title =        "Template meta-programming for {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "60--75",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Giavitto:2002:PMR,
  author =       "Jean-Louis Giavitto and Olivier Michel and Julien
                 Cohen",
  title =        "Pattern-matching and rewriting rules for group indexed
                 data structures",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "76--87",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Erwig:2002:RBL,
  author =       "Martin Erwig and Delin Ren",
  title =        "A rule-based language for programming software
                 updates",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "88--97",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Groote:2002:CAM,
  author =       "Jan Friso Groote and Bert Lisser",
  title =        "Computer assisted manipulation of algebraic process
                 specifications",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "98--107",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hornos:2002:FMC,
  author =       "Miguel J. Hornos and Manuel I. Capel",
  title =        "On-the-fly model checking from interval logic
                 specifications",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "108--119",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Simeon:2003:EX,
  author =       "J{\'e}r{\^o}me Sim{\'e}on and Philip Wadler",
  title =        "The essence of {XML}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "1--13",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Acar:2003:SM,
  author =       "Umut A. A. Acar and Guy E. Blelloch and Robert
                 Harper",
  title =        "Selective memoization",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "14--25",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Taha:2003:EC,
  author =       "Walid Taha and Michael Florentin Nielsen",
  title =        "Environment classifiers",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "26--37",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jensen:2003:BT,
  author =       "Ole H{\o}gh Jensen and Robin Milner",
  title =        "Bigraphs and transitions",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "38--49",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Schmitt:2003:CHO,
  author =       "Alan Schmitt and Jean-Bernard Stefani",
  title =        "The $m$-calculus: a higher-order distributed process
                 calculus",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "50--61",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bouajjani:2003:GAS,
  author =       "Ahmed Bouajjani and Javier Esparza and Tayssir
                 Touili",
  title =        "A generic approach to the static analysis of
                 concurrent programs with procedures",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "62--73",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gulwani:2003:DAE,
  author =       "Sumit Gulwani and George C. Necula",
  title =        "Discovering affine equalities using random
                 interpretation",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "74--84",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tallam:2003:BAG,
  author =       "Sriraman Tallam and Rajiv Gupta",
  title =        "Bitwidth aware global register allocation",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "85--96",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ball:2003:SCL,
  author =       "Thomas Ball and Mayur Naik and Sriram K. Rajamani",
  title =        "From symptom to cause: localizing errors in
                 counterexample traces",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "97--105",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Carter:2003:FCR,
  author =       "Larry Carter and Jeanne Ferrante and Clark
                 Thomborson",
  title =        "Folklore confirmed: reducible flow graphs are
                 exponentially larger",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "106--114",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chakaravarthy:2003:NRC,
  author =       "Venkatesan T. Chakaravarthy",
  title =        "New results on the computability and complexity of
                 points--to analysis",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "115--125",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zibin:2003:IAD,
  author =       "Yoav Zibin and Joseph (Yossi) Gil",
  title =        "Incremental algorithms for dispatching in dynamically
                 typed languages",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "126--138",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Thielecke:2003:CET,
  author =       "Hayo Thielecke",
  title =        "From control effects to typed continuation passing",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "139--149",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2003:CSC,
  author =       "Gang Chen",
  title =        "Coercive subtyping for the calculus of constructions",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "150--159",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zibin:2003:EAI,
  author =       "Yoav Zibin and Joseph (Yossi) Gil and Jeffrey
                 Considine",
  title =        "Efficient algorithms for isomorphisms of simple
                 types",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "160--171",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Petersen:2003:TTM,
  author =       "Leaf Petersen and Robert Harper and Karl Crary and
                 Frank Pfenning",
  title =        "A type theory for memory allocation and data layout",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "172--184",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hofmann:2003:SPH,
  author =       "Martin Hofmann and Steffen Jost",
  title =        "Static prediction of heap space usage for first-order
                 functional programs",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "185--197",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Crary:2003:TFT,
  author =       "Karl Crary",
  title =        "Toward a foundational typed assembly language",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "198--212",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boyapati:2003:OTO,
  author =       "Chandrasekhar Boyapati and Barbara Liskov and Liuba
                 Shrira",
  title =        "Ownership types for object encapsulation",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "213--223",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xi:2003:GRD,
  author =       "Hongwei Xi and Chiyan Chen and Gang Chen",
  title =        "Guarded recursive datatype constructors",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "224--235",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dreyer:2003:TSH,
  author =       "Derek Dreyer and Karl Crary and Robert Harper",
  title =        "A type system for higher-order modules",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "236--249",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Barthe:2003:PPT,
  author =       "Gilles Barthe and Horatiu Cirstea and Claude Kirchner
                 and Luigi Liquori",
  title =        "Pure patterns type systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "250--261",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boehm:2003:DFS,
  author =       "Hans-J. Boehm",
  title =        "Destructors, finalizers, and synchronization",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "262--272",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gheorghioiu:2003:ICA,
  author =       "Ovidiu Gheorghioiu and Alexandru Salcianu and Martin
                 Rinard",
  title =        "Interprocedural compatibility analysis for static
                 object preallocation",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "273--284",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bacon:2003:RTG,
  author =       "David F. Bacon and Perry Cheng and V. T. Rajan",
  title =        "A real-time garbage collector with low overhead and
                 consistent utilization",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "1",
  pages =        "285--298",
  month =        jan,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:12 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ding:2003:CDR,
  author =       "Chen Ding and Yutao Zhong",
  title =        "Compiler-directed run-time monitoring of program data
                 access",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "1--12",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Guilan:2003:AIR,
  author =       "Dai Guilan and Tian Jinlan and Zhang Suqing and Jiang
                 Weidu",
  title =        "An abstract intermediate representation in compilation
                 systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2",
  pages =        "12--18",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lattner:2003:APA,
  author =       "Chris Lattner and Vikram Adve",
  title =        "Automatic pool allocation for disjoint data
                 structures",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "13--24",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hamilton:2003:LIC,
  author =       "Jennifer Hamilton",
  title =        "Language integration in the common language runtime",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2",
  pages =        "19--28",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Stefanovic:2003:OFG,
  author =       "Darko Stefanovi{\'c} and Matthew Hertz and Stephen M.
                 Blackburn and Kathryn S. McKinley and J. Eliot B.
                 Moss",
  title =        "Older-first garbage collection in practice: evaluation
                 in a {Java Virtual Machine}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "25--36",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jackson:2003:EFO,
  author =       "Quinn Tyler Jackson",
  title =        "Efficient formalism-only parsing of {XML\slash HTML}
                 using the {\S}-calculus",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2",
  pages =        "29--35",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Schilling:2003:SHM,
  author =       "Jonathan L. Schilling",
  title =        "The simplest heuristics may be the best in {Java JIT}
                 compilers",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2",
  pages =        "36--46",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Almasi:2003:CSD,
  author =       "George Alm{\'a}si and C{\u{a}}lin Ca{\c{s}}caval and
                 David A. Padua",
  title =        "Calculating stack distances efficiently",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "37--43",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nethercote:2003:CBL,
  author =       "Nicholas Nethercote and Alan Mycroft",
  title =        "The cache behaviour of large lazy functional programs
                 on stock hardware",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "44--55",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sinclair:2003:IMT,
  author =       "Robert Sinclair",
  title =        "Interactive mathematics textbooks",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2",
  pages =        "47--56",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lopes:2003:SPC,
  author =       "Ricardo Lopes and Lu{\'\i}s Fernando Castro and
                 V{\'\i}tor Santos Costa",
  title =        "From simulation to practice: cache performance study
                 of a {Prolog} system",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "56--64",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Queinnec:2003:IBI,
  author =       "Christian Queinnec",
  title =        "Inverting back the inversion of control or,
                 continuations versus page-centric programming",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2",
  pages =        "57--64",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ykman-Couvreur:2003:MOA,
  author =       "Ch. Ykman-Couvreur and J. Lambrecht and A. van der
                 Togt and F. Catthoor",
  title =        "Multi-objective {\em abstract data type refinement\/}
                 for mapping tables in telecom network applications",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "65--75",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Schulz:2003:PNH,
  author =       "Martin Schulz and Jie Tao and J{\"u}rgen Jeitner and
                 Wolfgang Karl",
  title =        "A proposal for a new hardware cache monitoring
                 architecture",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "76--85",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mahapatra:2003:PAA,
  author =       "Nihar R. Mahapatra and Jiangjiang Liu and Krishnan
                 Sundaresan",
  title =        "The performance advantage of applying compression to
                 the memory system",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "86--96",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cooper:2003:ESA,
  author =       "Keith D. Cooper and Li Xu",
  title =        "An efficient static analysis algorithm to detect
                 redundant memory operations",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "97--107",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Robertz:2003:APM,
  author =       "Sven G. Robertz",
  title =        "Applying priorities to memory allocation",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "108--118",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Endo:2003:RPT,
  author =       "Toshio Endo and Kenjiro Taura",
  title =        "Reducing pause time of conservative collectors",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "119--131",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Deters:2003:ADS,
  author =       "Morgan Deters and Ron K. Cytron",
  title =        "Automated discovery of scoped memory regions for
                 real-time {Java}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "132--142",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hirzel:2003:UCH,
  author =       "Martin Hirzel and Johannes Henkel and Amer Diwan and
                 Michael Hind",
  title =        "Understanding the connectivity of heap objects",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "143--156",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Printezis:2003:VTG,
  author =       "Tony Printezis and Alex Garthwaite",
  title =        "Visualising the train garbage collector",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "157--170",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shaham:2003:EIH,
  author =       "Ran Shaham and Elliot K. Kolodner and Mooly Sagiv",
  title =        "Estimating the impact of heap liveness information on
                 space consumption in {Java}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "171--182",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Domani:2003:TLH,
  author =       "Tamar Domani and Gal Goldshtein and Elliot K. Kolodner
                 and Ethan Lewis and Erez Petrank and Dafna Sheinwald",
  title =        "Thread-local heaps for {Java}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "183--194",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Johansson:2003:HAC,
  author =       "Erik Johansson and Konstantinos Sagonas and Jesper
                 Wilhelmsson",
  title =        "Heap architectures for concurrent languages using
                 message passing",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "195--206",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ben-Yitzhak:2003:API,
  author =       "Ori Ben-Yitzhak and Irit Goft and Elliot K. Kolodner
                 and Kean Kuiper and Victor Leikehman",
  title =        "An algorithm for parallel incremental compaction",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "207--212",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vardhan:2003:UPO,
  author =       "Abhay Vardhan and Gul Agha",
  title =        "Using passive object garbage collection algorithms for
                 garbage collection of active objects",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "213--220",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kaplan:2003:ACD,
  author =       "Scott F. Kaplan and Lyle A. McGeoch and Megan F.
                 Cole",
  title =        "Adaptive caching for demand prepaging",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "221--232",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Qian:2003:ARB,
  author =       "Feng Qian and Laurie Hendren",
  title =        "An adaptive, region-based allocator for {Java}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "233--244",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kumar:2003:DMM,
  author =       "Sanjeev Kumar and Kai Li",
  title =        "Dynamic memory management for programmable devices",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "245--255",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Henderson:2003:AGC,
  author =       "Fergus Henderson",
  title =        "Accurate garbage collection in an uncooperative
                 environment",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "256--262",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Aggarwal:2003:SCV,
  author =       "Aneesh Aggarwal",
  title =        "Software caching vs. prefetching",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "263--268",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dice:2003:MLF,
  author =       "Dave Dice and Alex Garthwaite",
  title =        "Mostly lock-free malloc",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "269--280",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Blackburn:2003:PWB,
  author =       "Stephen M. Blackburn and Kathryn S. McKinley",
  title =        "In or out?: putting write barriers in their place",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "2s",
  pages =        "281--290",
  month =        feb,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:14 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2003:TA,
  author =       "Cormac Flanagan and Shaz Qadeer",
  title =        "Types for atomicity",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "1--12",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Grossman:2003:TSM,
  author =       "Dan Grossman",
  title =        "Type-safe multithreading in cyclone",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "13--25",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lammel:2003:SYB,
  author =       "Ralf L{\"a}mmel and Simon Peyton Jones",
  title =        "Scrap your boilerplate: a practical design pattern for
                 generic programming",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "26--37",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Park:2003:CPL,
  author =       "Sungwoo Park",
  title =        "A calculus for probabilistic languages",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "38--49",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kobayashi:2003:TRE,
  author =       "Naoki Kobayashi",
  title =        "Time regions and effects for resource usage analysis",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "50--61",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Calcagno:2003:DVS,
  author =       "Cristiano Calcagno and Luca Cardelli and Andrew D.
                 Gordon",
  title =        "Deciding validity in a spatial logic for trees",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "62--73",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ahmed:2003:LAS,
  author =       "Amal Ahmed and David Walker",
  title =        "The logical approach to stack typing",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "74--85",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Amtoft:2003:IAT,
  author =       "Torben Amtoft and Robert Muller",
  title =        "Inferring annotated types for inter-procedural
                 register allocation with constructor flattening",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "86--97",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vanderwaart:2003:TCR,
  author =       "Joseph C. Vanderwaart and Derek Dreyer and Leaf
                 Petersen and Karl Crary and Robert Harper and Perry
                 Cheng",
  title =        "Typed compilation of recursive datatypes",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "98--108",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vanderwaart:2003:TIG,
  author =       "Joseph C. Vanderwaart and Karl Crary",
  title =        "A typed interface for garbage collection",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "109--122",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Elsman:2003:GCS,
  author =       "Martin Elsman",
  title =        "Garbage collection safety for region-based memory
                 management",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "3",
  pages =        "123--134",
  month =        mar,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:16 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Creak:2003:EFO,
  author =       "Alan Creak",
  title =        "Everything is {Fortran}, in its own way",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "4",
  pages =        "7--12",
  month =        apr,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:44:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2003:EFW,
  author =       "Paul Frenger",
  title =        "Evaluating {Forth} in the {Windows} environment",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "4",
  pages =        "13--15",
  month =        apr,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:44:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Das:2003:FIVa,
  author =       "Dibyendu Das",
  title =        "Function inlining versus function cloning",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "4",
  pages =        "18--24",
  month =        apr,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:44:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{deOliveiraGuimaraes:2003:EBC,
  author =       "Jos{\'e} {de Oliveira Guimar{\~a}es}",
  title =        "Experiences in building a compiler for an
                 object-oriented language",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "4",
  pages =        "25--33",
  month =        apr,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:44:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kwon:2003:AJP,
  author =       "Jagun Kwon and Andy Wellings and Steve King",
  title =        "Assessment of the {Java} programming language for use
                 in high integrity systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "4",
  pages =        "34--46",
  month =        apr,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:44:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Luo:2003:FSD,
  author =       "Lei Luo and Ming-Yuan Zhu and Qing-Li Zhang",
  title =        "A formal semantic definition of {DEVIL}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "4",
  pages =        "47--56",
  month =        apr,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:44:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhuge:2003:KKG,
  author =       "Hai Zhuge and Jie Liu",
  title =        "{KGOL}: a {Knowledge Grid} operating language",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "4",
  pages =        "57--66",
  month =        apr,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:44:59 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gay:2003:NLH,
  author =       "David Gay and Philip Levis and Robert von Behren and
                 Matt Welsh and Eric Brewer and David Culler",
  title =        "The {{\em nesC}} language: {A} holistic approach to
                 networked embedded systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "1--11",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lamb:2003:LAO,
  author =       "Andrew A. Lamb and William Thies and Saman
                 Amarasinghe",
  title =        "Linear analysis and optimization of stream programs",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "12--25",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{George:2003:TIN,
  author =       "Lal George and Matthias Blume",
  title =        "Taming the {IXP} network processor",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "26--37",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hsu:2003:DIE,
  author =       "Chung-Hsing Hsu and Ulrich Kremer",
  title =        "The design, implementation, and evaluation of a
                 compiler algorithm for {CPU} energy reduction",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "38--48",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xie:2003:CTD,
  author =       "Fen Xie and Margaret Martonosi and Sharad Malik",
  title =        "Compile-time dynamic voltage scaling settings:
                 opportunities and limits",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "49--62",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yotov:2003:CEM,
  author =       "Kamen Yotov and Xiaoming Li and Gang Ren and Michael
                 Cibulskis and Gerald DeJong and Maria Garzaran and
                 David Padua and Keshav Pingali and Paul Stodghill and
                 Peng Wu",
  title =        "A comparison of empirical and model-driven
                 optimization",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "63--76",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Stephenson:2003:MOI,
  author =       "Mark Stephenson and Saman Amarasinghe and Martin
                 Martin and Una-May O'Reilly",
  title =        "Meta optimization: improving compiler heuristics with
                 machine learning",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "77--90",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/780822.781141",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Strout:2003:CTC,
  author =       "Michelle Mills Strout and Larry Carter and Jeanne
                 Ferrante",
  title =        "Compile-time composition of run-time data and
                 iteration reorderings",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "91--102",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Berndl:2003:PAU,
  author =       "Marc Berndl and Ondrej Lhot{\'a}k and Feng Qian and
                 Laurie Hendren and Navindra Umanee",
  title =        "Points-to analysis using {BDDs}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "103--114",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{vonPraun:2003:SCA,
  author =       "Christoph von Praun and Thomas R. Gross",
  title =        "Static conflict analysis for multi-threaded
                 object-oriented programs",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "115--128",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Aiken:2003:CIL,
  author =       "Alex Aiken and Jeffrey S. Foster and John Kodumal and
                 Tachio Terauchi",
  title =        "Checking and inferring local non-aliasing",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "129--140",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liblit:2003:BIR,
  author =       "Ben Liblit and Alex Aiken and Alice X. Zheng and
                 Michael I. Jordan",
  title =        "Bug isolation via remote program sampling",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "141--154",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dor:2003:CTR,
  author =       "Nurit Dor and Michael Rodeh and Mooly Sagiv",
  title =        "{CSSV}: towards a realistic tool for statically
                 detecting all buffer overflows in {C}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "155--167",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Heine:2003:PFS,
  author =       "David L. Heine and Monica S. Lam",
  title =        "A practical flow-sensitive and context-sensitive {C}
                 and {C++} memory leak detector",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "168--181",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ammons:2003:DTS,
  author =       "Glenn Ammons and David Mandelin and Rastislav
                 Bod{\'\i}k and James R. Larus",
  title =        "Debugging temporal specifications with concept
                 analysis",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "182--195",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Blanchet:2003:SAL,
  author =       "Bruno Blanchet and Patrick Cousot and Radhia Cousot
                 and J{\'e}rome Feret and Laurent Mauborgne and Antoine
                 Min{\'e} and David Monniaux and Xavier Rival",
  title =        "A static analyzer for large safety-critical software",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "196--207",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2003:PST,
  author =       "Juan Chen and Dinghao Wu and Andrew W. Appel and Hai
                 Fang",
  title =        "A provably sound {TAL} for back-end optimization",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "208--219",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lerner:2003:APC,
  author =       "Sorin Lerner and Todd Millstein and Craig Chambers",
  title =        "Automatically proving the correctness of compiler
                 optimizations",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "220--231",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Condit:2003:CRW,
  author =       "Jeremy Condit and Matthew Harren and Scott McPeak and
                 George C. Necula and Westley Weimer",
  title =        "{CCured} in the real world",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "232--244",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ding:2003:PWP,
  author =       "Chen Ding and Yutao Zhong",
  title =        "Predicting whole-program locality through reuse
                 distance analysis",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "245--257",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Joisha:2003:SAS,
  author =       "Pramod G. Joisha and Prithviraj Banerjee",
  title =        "Static array storage optimization in {MATLAB}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "258--268",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Inagaki:2003:SPD,
  author =       "Tatsushi Inagaki and Tamiya Onodera and Hideaki
                 Komatsu and Toshio Nakatani",
  title =        "Stride prefetching by dynamically inspecting objects",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "269--277",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ertl:2003:OIB,
  author =       "M. Anton Ertl and David Gregg",
  title =        "Optimizing indirect branch prediction accuracy in
                 virtual machine interpreters",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "278--288",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lin:2003:CFS,
  author =       "Jin Lin and Tong Chen and Wei-Chung Hsu and Pen-Chung
                 Yew and Roy Dz-Ching Ju and Tin-Fook Ngai and Sun
                 Chan",
  title =        "A compiler framework for speculative analysis and
                 optimizations",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "289--299",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chu:2003:RBH,
  author =       "Michael Chu and Kevin Fan and Scott Mahlke",
  title =        "Region-based hierarchical operation partitioning for
                 multicluster processors",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "300--311",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Suganuma:2003:RBC,
  author =       "Toshio Suganuma and Toshiaki Yasue and Toshio
                 Nakatani",
  title =        "A region-based compilation technique for a {Java}
                 just-in-time compiler",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "312--323",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boyapati:2003:OTS,
  author =       "Chandrasekhar Boyapati and Alexandru Salcianu and
                 William {Beebee, Jr.} and Martin Rinard",
  title =        "Ownership types for safe region-based memory
                 management in real-time {Java}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "324--337",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2003:TES,
  author =       "Cormac Flanagan and Shaz Qadeer",
  title =        "A type and effect system for atomicity",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "5",
  pages =        "338--349",
  month =        may,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:00 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Christopher:2003:SPS,
  author =       "Thomas W. Christopher",
  title =        "A simple parallel system",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "6",
  pages =        "6--8",
  month =        jun,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergin:2003:SDC,
  author =       "Joe Bergin and Achla Agarwal and Krishna Agarwal",
  title =        "Some deficiencies of {C++} in teaching {CS1} and
                 {CS2}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "6",
  pages =        "9--13",
  month =        jun,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ryder:2003:IDE,
  author =       "Barbara G. Ryder and Mary Lou Soffa",
  title =        "Influences on the design of exception handling: {ACM
                 SIGSOFT} project on the impact of software engineering
                 research on programming language design",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "6",
  pages =        "16--22",
  month =        jun,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Das:2003:FIVb,
  author =       "Dibyendu Das",
  title =        "Function inlining versus function cloning",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "6",
  pages =        "23--29",
  month =        jun,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{ChunYan:2003:TEL,
  author =       "Yu ChunYan and Wu Minghui and Liu Nairuo and Zhuang
                 Yueting and Pan Yunhe",
  title =        "Translating {EXPRESS} language model into {C} language
                 model",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "6",
  pages =        "30--39",
  month =        jun,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ortin:2003:RNA,
  author =       "Francisco Ortin and Juan Manuel Cueva and Ana Belen
                 Martinez",
  title =        "The {reflective nitrO} abstract machine",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "6",
  pages =        "40--49",
  month =        jun,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sunik:2003:POC,
  author =       "Boris Sunik",
  title =        "The paradigm of open {C++}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "6",
  pages =        "50--59",
  month =        jun,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2003:AGD,
  author =       "Qing-Li Zhang and Ming-Yuan Zhu and Shuo-Ying Chen",
  title =        "Automatic generation of device drivers",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "6",
  pages =        "60--69",
  month =        jun,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:02 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhao:2003:PIO,
  author =       "Min Zhao and Bruce Childers and Mary Lou Soffa",
  title =        "Predicting the impact of optimizations for embedded
                 systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "1--11",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kulkarni:2003:FEO,
  author =       "Prasad Kulkarni and Wankang Zhao and Hwashin Moon and
                 Kyunghwan Cho and David Whalley and Jack Davidson and
                 Mark Bailey and Yunheung Paek and Kyle Gallivan",
  title =        "Finding effective optimization phase sequences",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "12--23",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vanbroekhoven:2003:ACP,
  author =       "Peter Vanbroekhoven and Gerda Janssens and Maurice
                 Bruynooghe and Henk Corporaal and Francky Catthoor",
  title =        "Advanced copy propagation for arrays",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "24--33",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shaylor:2003:JVM,
  author =       "Nik Shaylor and Douglas N. Simon and William R. Bush",
  title =        "A {Java Virtual Machine} architecture for very small
                 devices",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "34--41",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Schultz:2003:CJL,
  author =       "Ulrik Pagh Schultz and Kim Burgaard and Flemming Gram
                 Christensen and J{\o}rgen Lindskov Knudsen",
  title =        "Compiling {Java} for low-end embedded systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "42--50",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Corsaro:2003:EMR,
  author =       "Angelo Corsaro and Ron K. Cytron",
  title =        "Efficient memory-reference checks for real-time
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "51--58",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ananian:2003:DSO,
  author =       "C. Scott Ananian and Martin Rinard",
  title =        "Data size optimizations for {Java} programs",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "59--68",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dhurjati:2003:MSR,
  author =       "Dinakar Dhurjati and Sumant Kowshik and Vikram Adve
                 and Chris Lattner",
  title =        "Memory safety without runtime checks or garbage
                 collection",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "69--80",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bacon:2003:CFS,
  author =       "David F. Bacon and Perry Cheng and V. T. Rajan",
  title =        "Controlling fragmentation and space consumption in the
                 metronome, a real-time garbage collector for {Java}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "81--92",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Robertz:2003:TTG,
  author =       "Sven Gestegard Robertz and Roger Henriksson",
  title =        "Time-triggered garbage collection: robust and adaptive
                 real-time {GC} scheduling for embedded systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "93--102",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Karczmarek:2003:PSS,
  author =       "Michal Karczmarek and William Thies and Saman
                 Amarasinghe",
  title =        "Phased scheduling of stream programs",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "103--112",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pop:2003:SDF,
  author =       "Paul Pop and Petru Eles and Zebo Peng",
  title =        "Schedulability-driven frame packing for multi-cluster
                 distributed embedded systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "113--122",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ait-Ameur:2003:RAA,
  author =       "Y. Ait-Ameur and G. Bel and F. Boniol and S. Pairault
                 and V. Wiels",
  title =        "Robustness analysis of avionics embedded systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "123--132",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{deNiz:2003:TWS,
  author =       "Dionisio de Niz and Raj Rajkumar",
  title =        "{Time weaver}: a software-through-models framework for
                 embedded real-time systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "133--143",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pratap:2003:TLA,
  author =       "Ravi Pratap M. and Ron K. Cytron and David Sharp and
                 Edward Pla",
  title =        "Transport layer abstraction in event channels for
                 embedded systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "144--152",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Caspi:2003:SSL,
  author =       "Paul Caspi and Adrian Curic and Aude Maignan and
                 Christos Sofronis and Stavros Tripakis and Peter
                 Niebert",
  title =        "From {Simulink} to {SCADE\slash lustre} to {TTA}: a
                 layered approach for distributed embedded
                 applications",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "153--162",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wasowski:2003:EPS,
  author =       "Andrzej Wasowski",
  title =        "On efficient program synthesis from statecharts",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "163--170",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Alur:2003:GES,
  author =       "Rajeev Alur and Franjo Ivancic and Jesung Kim and
                 Insup Lee and Oleg Sokolsky",
  title =        "Generating embedded software from hierarchical hybrid
                 models",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "171--182",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lee:2003:AML,
  author =       "Jong-eun Lee and Kiyoung Choi and Nikil D. Dutt",
  title =        "An algorithm for mapping loops onto coarse-grained
                 reconfigurable architectures",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "183--188",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Suresh:2003:PTH,
  author =       "Dinesh C. Suresh and Walid A. Najjar and Frank Vahid
                 and Jason R. Villarreal and Greg Stitt",
  title =        "Profiling tools for hardware\slash software
                 partitioning of embedded applications",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "189--198",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Guo:2003:GCA,
  author =       "Yuanqing Guo and Gerard J. M. Smit and Hajo Broersma
                 and Paul M. Heysters",
  title =        "A graph covering algorithm for a coarse grain
                 reconfigurable system",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "199--208",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2003:TRW,
  author =       "Tao Zhang and Santosh Pande and Antonio Valverde",
  title =        "Tamper-resistant whole program partitioning",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "209--219",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhuang:2003:SAO,
  author =       "Xiaotong Zhuang and ChokSheak Lau and Santosh Pande",
  title =        "Storage assignment optimizations through variable
                 coalescence for embedded processors",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "220--231",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Corliss:2003:DID,
  author =       "Marc L. Corliss and E. Christopher Lewis and Amir
                 Roth",
  title =        "A {DISE} implementation of dynamic code
                 decompression",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "232--243",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{DeSutter:2003:SEC,
  author =       "Bjorn {De Sutter} and Hans Vandierendonck and Bruno
                 {De Bus} and Koen {De Bosschere}",
  title =        "On the side-effects of code abstraction",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "244--253",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Krishnaswamy:2003:EPB,
  author =       "Arvind Krishnaswamy",
  title =        "Enhancing the performance of 16-bit code using
                 augmenting instructions",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "254--264",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yu:2003:EBT,
  author =       "Yang Yu and Viktor K. Prasanna",
  title =        "Energy-balanced task allocation for collaborative
                 processing in networked embedded systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "265--274",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kim:2003:AIL,
  author =       "H. S. Kim and N. Vijaykrishnan and M. Kandemir and M.
                 J. Irwin",
  title =        "Adapting instruction level parallelism for optimizing
                 leakage in {VLIW} architectures",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "275--283",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{AbouGhazaleh:2003:EMR,
  author =       "Nevine AbouGhazaleh and Bruce Childers and Daniel
                 Mosse and Rami Melhem and Matthew Craven",
  title =        "Energy management for real-time embedded applications
                 with compiler support",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "7",
  pages =        "284--293",
  month =        jul,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Christopher:2003:DSP,
  author =       "Thomas W. Christopher",
  title =        "Details on a simple parallel system",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "8",
  pages =        "12--14",
  month =        aug,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2003:JF,
  author =       "Paul Frenger",
  title =        "The {JOY} of {Forth}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "8",
  pages =        "15--17",
  month =        aug,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pronk:2003:FDP,
  author =       "C. Pronk and M. Sch{\"o}nhacker",
  title =        "Formal definition of programming language standards",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "8",
  pages =        "20--21",
  month =        aug,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xu:2003:MEJ,
  author =       "Baomin Xu and Weimin Lian and Qiang Gao",
  title =        "Migration of enterprise {JavaBeans} with {ProActive
                 Interposition Objects}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "8",
  pages =        "22--28",
  month =        aug,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Costanza:2003:DSF,
  author =       "Pascal Costanza",
  title =        "Dynamically scoped functions as the essence of {AOP}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "8",
  pages =        "29--36",
  month =        aug,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Iliasov:2003:TBP,
  author =       "Alex Iliasov",
  title =        "Templates-based portable just-in-time compiler",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "8",
  pages =        "37--43",
  month =        aug,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hericko:2003:OSA,
  author =       "Marjan Hericko and Matjaz B. Juric and Ivan Rozman and
                 Simon Beloglavec and Ales Zivkovic",
  title =        "Object serialization analysis and comparison in {Java}
                 and {.NET}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "8",
  pages =        "44--54",
  month =        aug,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Stephens:2003:XCI,
  author =       "Kurt Stephens",
  title =        "{XVF}: {C++} introspection by extensible visitation",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "8",
  pages =        "55--59",
  month =        aug,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kumar:2003:VRO,
  author =       "K. V. Seshu Kumar",
  title =        "Value reuse optimization: reuse of evaluated math
                 library function calls through compiler generated
                 cache",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "8",
  pages =        "60--66",
  month =        aug,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:05 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Knight:2003:CIA,
  author =       "Thomas {Knight, Jr.}",
  title =        "Conservation of information: applications in
                 functional, reversible, and quantum computing",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "1--1",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Heeren:2003:STI,
  author =       "Bastiaan Heeren and Jurriaan Hage and S. Doaitse
                 Swierstra",
  title =        "Scripting the type inference process",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "3--13",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Neubauer:2003:DST,
  author =       "Matthias Neubauer and Peter Thiemann",
  title =        "Discriminative sum types locate the source of type
                 errors",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "15--26",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{LeBotlan:2003:MRM,
  author =       "Didier {Le Botlan} and Didier R{\'e}my",
  title =        "{ML}$^{F}$: raising {ML} to the power of system {F}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "27--38",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Simonet:2003:EHX,
  author =       "Vincent Simonet",
  title =        "An extension of {HM(X)} with bounded existential and
                 universal data-types",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "39--50",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Benzaken:2003:CXC,
  author =       "V{\'e}ronique Benzaken and Giuseppe Castagna and Alain
                 Frisch",
  title =        "{CDuce}: an {XML}-centric general-purpose language",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "51--63",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Levin:2003:CRP,
  author =       "Michael Y. Levin",
  title =        "Compiling regular patterns",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "65--77",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Page:2003:SDM,
  author =       "Rex L. Page",
  title =        "Software is discrete mathematics",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "79--86",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Leifer:2003:GAS,
  author =       "James J. Leifer and Gilles Peskine and Peter Sewell
                 and Keith Wansbrough",
  title =        "Global abstraction-safe marshalling with hash types",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "87--98",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bierman:2003:DRM,
  author =       "Gavin Bierman and Michael Hicks and Peter Sewell and
                 Gareth Stoyle and Keith Wansbrough",
  title =        "Dynamic Rebinding for Marshalling and Update, with
                 Destruct-time $\lambda$",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "99--110",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ogawa:2003:IFP,
  author =       "Mizuhito Ogawa and Zhenjiang Hu and Isao Sasano",
  title =        "Iterative-free program analysis",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "111--123",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mairson:2003:HSD,
  author =       "Harry G. Mairson",
  title =        "From {Hilbert} space to {Dilbert} space: context
                 semantics as a language for games and flow analysis",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "125--125",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Walker:2003:TA,
  author =       "David Walker and Steve Zdancewic and Jay Ligatti",
  title =        "A theory of aspects",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "127--139",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Loh:2003:DSG,
  author =       "Andres L{\"o}h and Dave Clarke and Johan Jeuring",
  title =        "Dependency-style generic {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "141--152",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nilsson:2003:FAD,
  author =       "Henrik Nilsson",
  title =        "Functional automatic differentiation with {Dirac}
                 impulses",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "153--164",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jones:2003:UCA,
  author =       "Simon Peyton Jones and Alan Blackwell and Margaret
                 Burnett",
  title =        "A user-centred approach to functions in {Excel}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "165--176",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kameyama:2003:SCA,
  author =       "Yukiyoshi Kameyama and Masahito Hasegawa",
  title =        "A sound and complete axiomatization of delimited
                 continuations",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "177--188",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wadler:2003:CVD,
  author =       "Philip Wadler",
  title =        "Call-by-value is dual to call-by-name",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "189--201",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Beffara:2003:DNF,
  author =       "Emmanuel Beffara and Vincent Danos",
  title =        "Disjunctive normal forms and local exceptions",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "203--211",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mandelbaum:2003:ETT,
  author =       "Yitzhak Mandelbaum and David Walker and Robert
                 Harper",
  title =        "An effective theory of type refinements",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "213--225",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Higuchi:2003:STS,
  author =       "Tomoyuki Higuchi and Atsushi Ohori",
  title =        "A static type system for {JVM} access control",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "227--237",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hughes:2003:PPS,
  author =       "R. John M. Hughes and S. Doaitse Swierstra",
  title =        "{Polish} parsers, step by step",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "239--248",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Washburn:2003:BGB,
  author =       "Geoffrey Washburn and Stephanie Weirich",
  title =        "Boxes go bananas: encoding higher-order abstract
                 syntax with parametric polymorphism",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "249--262",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shinwell:2003:FPB,
  author =       "Mark R. Shinwell and Andrew M. Pitts and Murdoch J.
                 Gabbay",
  title =        "{FreshML}: programming with binders made simple",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "263--274",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2003:MPT,
  author =       "Chiyan Chen and Hongwei Xi",
  title =        "Meta-programming through typeful code representation",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "275--286",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ennals:2003:OEA,
  author =       "Robert Ennals and Simon Peyton Jones",
  title =        "Optimistic evaluation: an adaptive evaluation strategy
                 for non-strict programs",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "287--298",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wand:2003:UAE,
  author =       "Mitchell Wand",
  title =        "Understanding aspects: extended abstract",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "9",
  pages =        "299--300",
  month =        sep,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 11 12:45:06 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

%%% There is serious confusion in the ACM Portal Database: publications
%%% from the Proceedings of the ninth ACM SIGPLAN symposium on
%%% Principles and practice of parallel programming 2003, San Diego,
%%% California, USA June 11--13, 2003 (PPoPP'2003) are claimed to appear
%%% in October 2003 SIGPLAN Notices Volume 38 Issue 10, yet entirely
%%% different contents are shown for that volume.  Until the confusion
%%% is resolved, we have labeled the PPoPP'2003 issue number as 10b.
@Article{Kazar:2003:HPS,
  author =       "Baris Kazar",
  title =        "High performance spatial data mining for very large
                 data-sets (citation only)",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "1--1",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  xxnumber =     "10b",
}

@Article{Puppin:2003:ACS,
  author =       "Diego Puppin",
  title =        "Adapting convergent scheduling using machine learning
                 (citation only)",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "1--1",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  xxnumber =     "10b",
}

@Article{Prabhu:2003:UTL,
  author =       "Manohar K. Prabhu and Kunle Olukotun",
  title =        "Using thread-level speculation to simplify manual
                 parallelization",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "1--12",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Coarfa:2003:ECA,
  author =       "Cristian Coarfa and Yuri Dotsenko",
  title =        "An emerging co-array {Fortran} compiler (citation
                 only)",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "2--2",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  xxnumber =     "10b",
}

@Article{Squyres:2003:CAL,
  author =       "Jeffrey M. Squyres",
  title =        "A component architecture for {LAM\slash MPI} (citation
                 only)",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "2--2",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  xxnumber =     "10b",
}

@Article{Lee:2003:PPA,
  author =       "Jaejin Lee",
  title =        "The {Pensieve Project}: automatic implementation of
                 programming language consistency models (citation
                 only)",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "3--3",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  xxnumber =     "10b",
}

@Article{Nienaltowski:2003:SIC,
  author =       "Piotr Nienaltowski",
  title =        "{SCOOP It} up! (citation only)",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "3--3",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  xxnumber =     "10b",
}

@Article{Cintra:2003:TER,
  author =       "Marcelo Cintra and Diego R. Llanos",
  title =        "Toward efficient and robust software speculative
                 parallelization on multiprocessors",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "13--24",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2003:CSS,
  author =       "Peng-Sheng Chen and Ming-Yu Hung and Yuan-Shin Hwang
                 and Roy Dz-Ching Ju and Jenq Kuen Lee",
  title =        "Compiler support for speculative multithreading
                 architecture with probabilistic points-to analysis",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "25--36",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McDowell:2003:ISS,
  author =       "Luke K. McDowell and Susan J. Eggers and Steven D.
                 Gribble",
  title =        "Improving server software support for simultaneous
                 multithreaded processors",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "37--48",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fraguela:2003:PFP,
  author =       "Basilio B. Fraguela and Jose Renau and Paul Feautrier
                 and David Padua and Josep Torrellas",
  title =        "Programming the {FlexRAM} parallel intelligent memory
                 system",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "49--60",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kim:2003:ETL,
  author =       "Hyong-youb Kim and Vijay S. Pai and Scott Rixner",
  title =        "Exploiting task-level concurrency in a programmable
                 network interface",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "61--72",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McCurdy:2003:UCC,
  author =       "Collin McCurdy and Charles Fischer",
  title =        "User-controllable coherence for high performance
                 shared memory multiprocessors",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "73--82",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bronevetsky:2003:AAL,
  author =       "Greg Bronevetsky and Daniel Marques and Keshav Pingali
                 and Paul Stodghill",
  title =        "Automated application-level checkpointing of {MPI}
                 programs",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "84--94",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Karwande:2003:CMC,
  author =       "Amit Karwande and Xin Yuan and David K. Lowenthal",
  title =        "{CC--MPI}: a compiled communication capable {MPI}
                 prototype for {Ethernet} switched clusters",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "95--106",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liu:2003:IMS,
  author =       "Ting Liu and Margaret Martonosi",
  title =        "{Impala}: a middleware system for managing autonomic,
                 parallel sensor systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "107--118",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chu:2003:ODA,
  author =       "Lingkun Chu and Hong Tang and Tao Yang and Kai Shen",
  title =        "Optimizing data aggregation for cluster-based
                 {Internet} services",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "119--130",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2003:EHL,
  author =       "DeQing Chen and Chunqiang Tang and Brandon Sanders and
                 Sandhya Dwarkadas and Michael L. Scott",
  title =        "Exploiting high-level coherence information to
                 optimize distributed shared state",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "131--142",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frens:2003:FMO,
  author =       "Jeremy D. Frens and David S. Wise",
  title =        "Factorization with {Morton}-ordered quadtree matrices
                 for memory re-use and parallelism",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "144--154",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:52:42 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frens:2003:QFM,
  author =       "Jeremy D. Frens and David S. Wise",
  title =        "{QR} factorization with {Morton}-ordered quadtree
                 matrices for memory re-use and parallelism",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "144--154",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Deitz:2003:DIP,
  author =       "Steven J. Deitz and Bradford L. Chamberlain and
                 Sung-Eun Choi and Lawrence Snyder",
  title =        "The design and implementation of a parallel array
                 operator for the arbitrary remapping of data",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "155--166",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{OCallahan:2003:HDD,
  author =       "Robert O'Callahan and Jong-Deok Choi",
  title =        "Hybrid dynamic data race detection",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "167--178",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pozniansky:2003:EFD,
  author =       "Eli Pozniansky and Assaf Schuster",
  title =        "Efficient on-the-fly data race detection in
                 multithreaded {C++} programs",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "179--190",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Goel:2003:CRP,
  author =       "Ankit Goel and Abhik Roychoudhury and Tulika Mitra",
  title =        "Compactly representing parallel program executions",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "191--202",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tan:2003:UGD,
  author =       "Kai Tan and Duane Szafron and Jonathan Schaeffer and
                 John Anvik and Steve MacDonald",
  title =        "Using generative design patterns to generate parallel
                 code for a distributed memory environment",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "203--215",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Taura:2003:PPP,
  author =       "Kenjiro Taura and Kenji Kaneda and Toshio Endo and
                 Akinori Yonezawa",
  title =        "{Phoenix}: a parallel programming model for
                 accommodating dynamically joining\slash leaving
                 resources",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "216--229",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Saunders:2003:AAP,
  author =       "Steven Saunders and Lawrence Rauchwerger",
  title =        "{ARMI}: an adaptive, platform independent
                 communication library",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "230--240",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 1 07:31:09 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hatcliff:2003:SPE,
  author =       "John Hatcliff and William Deng and Matthew B. Dwyer
                 and Georg Jung and Venkatesh Ranganath and Robby",
  title =        "Slicing and partial evaluation of {CORBA} component
                 model designs for avionics system",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "241--242",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/966049.777389",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ager:2003:FPE,
  author =       "Mads Sig Ager and Olivier Danvy and Henning Korsholm
                 Rohde",
  title =        "Fast partial evaluation of pattern matching in
                 strings",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "243--249",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gluck:2003:TII,
  author =       "Robert Gl{\"u}ck and Youhei Kawada and Takuya
                 Hashimoto",
  title =        "Transforming interpreters into inverse interpreters by
                 partial evaluation",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "250--259",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2003:ITP,
  author =       "Chiyan Chen and Hongwei Xi",
  title =        "Implementing typeful program transformations",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "260--268",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Puebla:2003:ASA,
  author =       "Germ{\'a}n Puebla and Manuel Hermenegildo",
  title =        "Abstract specialization and its applications",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "269--283",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Allen:2003:SJP,
  author =       "Matthew Allen and Susan Horwitz",
  title =        "Slicing {Java} programs that throw and catch
                 exceptions",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "284--294",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bozga:2003:SSA,
  author =       "Marius Bozga and Radu Iosif and Yassine Laknech",
  title =        "Storeless semantics and alias logic",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "295--305",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Attardi:2003:CCF,
  author =       "Giuseppe Attardi and Antonio Cisternino and Andrew
                 Kennedy",
  title =        "{CodeBricks}: code fragments as building blocks",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "306--314",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chin:2003:EST,
  author =       "Wei-Ngan Chin and Siau-Cheng Khoo and Dana N. Xu",
  title =        "Extending sized type with collection analysis",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "315--324",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liu:2003:OAF,
  author =       "Yanhong A. Liu and Scott D. Stoller",
  title =        "Optimizing {Ackermann}'s function by
                 incrementalization",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "325--331",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lafferty:2003:LIA,
  author =       "Donal Lafferty and Vinny Cahill",
  title =        "Language-independent aspect-oriented programming",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "1--12",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tip:2003:RGU,
  author =       "Frank Tip and Adam Kiezun and Dirk B{\"a}umer",
  title =        "Refactoring for generalization using type
                 constraints",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "13--26",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tanter:2003:PBR,
  author =       "{\'E}ric Tanter and Jacques Noy{\'e} and Denis Caromel
                 and Pierre Cointe",
  title =        "Partial behavioral reflection: spatial and temporal
                 selection of reification",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "27--46",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Black:2003:ATS,
  author =       "Andrew P. Black and Nathanael Sch{\"a}rli and
                 St{\'e}phane Ducasse",
  title =        "Applying traits to the {Smalltalk} collection
                 classes",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "47--64",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mougin:2003:OIA,
  author =       "Philippe Mougin and St{\'e}phane Ducasse",
  title =        "{OOPAL}: integrating array programming in
                 object-oriented programming",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "65--77",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Demsky:2003:ADR,
  author =       "Brian Demsky and Martin Rinard",
  title =        "Automatic detection and repair of errors in data
                 structures",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "78--95",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Allen:2003:FCA,
  author =       "Eric Allen and Jonathan Bannet and Robert Cartwright",
  title =        "A first-class approach to genericity",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "96--114",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Garcia:2003:CSL,
  author =       "Ronald Garcia and Jaakko Jarvi and Andrew Lumsdaine
                 and Jeremy Siek and Jeremiah Willcock",
  title =        "A comparative study of language support for generic
                 programming",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "115--134",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhao:2003:LCF,
  author =       "Tian Zhao and Jens Palsber and Jan Vite",
  title =        "Lightweight confinement for featherweight {Java}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "135--148",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dufour:2003:DMJ,
  author =       "Bruno Dufour and Karel Driesen and Laurie Hendren and
                 Clark Verbrugge",
  title =        "Dynamic metrics for {Java}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "149--168",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Eeckhout:2003:HJP,
  author =       "Lieven Eeckhout and Andy Georges and Koen {De
                 Bosschere}",
  title =        "How {Java} programs interact with virtual machines at
                 the microarchitectural level",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "169--186",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ishizaki:2003:ECP,
  author =       "Kazuaki Ishizaki and Mikio Takeuchi and Kiyokuni
                 Kawachiya and Toshio Suganuma and Osamu Gohda and
                 Tatsushi Inagaki and Akira Koseki and Kazunori Ogata
                 and Motohiro Kawahito and Toshiaki Yasue and Takeshi
                 Ogasawara and Tamiya Onodera and Hideaki Komatsu and
                 Toshio Nakatani",
  title =        "Effectiveness of cross-platform optimizations for a
                 {Java} just-in-time compiler",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "187--204",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lee:2003:HOO,
  author =       "Keunwoo Lee and Anthony LaMarca and Craig Chambers",
  title =        "{HydroJ}: object-oriented pattern matching for
                 evolvable distributed systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "205--223",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Millstein:2003:RMB,
  author =       "Todd Millstein and Mark Reay and Craig Chambers",
  title =        "Relaxed {MultiJava}: balancing extensibility and
                 modular typechecking",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "224--240",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Corwin:2003:MRM,
  author =       "John Corwin and David F. Bacon and David Grove and
                 Chet Murthy",
  title =        "{MJ}: a rational module system for {Java} and its
                 applications",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "241--254",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Barabash:2003:MCG,
  author =       "Katherine Barabash and Yoav Ossia and Erez Petrank",
  title =        "Mostly concurrent garbage collection revisited",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "255--268",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Azatchi:2003:FMS,
  author =       "Hezi Azatchi and Yossi Levanoni and Harel Paz and Erez
                 Petrank",
  title =        "An on-the-fly mark and sweep garbage collector based
                 on sliding views",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "269--281",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2003:HCM,
  author =       "G. Chen and M. Kandemir and N. Vijaykrishnan and M. J.
                 Irwin and B. Mathiske and M. Wolczko",
  title =        "Heap compression for memory-constrained {Java}
                 environments",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "282--301",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fahndrich:2003:DCN,
  author =       "Manuel F{\"a}hndrich and K. Rustan M. Leino",
  title =        "Declaring and checking non-null types in an
                 object-oriented language",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "302--312",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Marinov:2003:OEP,
  author =       "Darko Marinov and Robert O'Callahan",
  title =        "Object equality profiling",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "313--325",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sachindran:2003:MCF,
  author =       "Narendran Sachindran and J. Eliot and B. Moss",
  title =        "{Mark-copy}: fast copying {GC} with less space
                 overhead",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "326--343",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Blackburn:2003:URC,
  author =       "Stephen M. Blackburn and Kathryn S. McKinley",
  title =        "Ulterior reference counting: fast garbage collection
                 without a long wait",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "344--358",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hirzel:2003:CBG,
  author =       "Martin Hirzel and Amer Diwan and Matthew Hertz",
  title =        "Connectivity-based garbage collection",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "359--373",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clarke:2003:SWB,
  author =       "Dave Clarke and Michael Richmond and James Noble",
  title =        "Saving the world from bad beans: deployment-time
                 confinement checking",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "374--387",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Harris:2003:LSL,
  author =       "Tim Harris and Keir Fraser",
  title =        "Language support for lightweight transactions",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "388--402",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boyapati:2003:LMU,
  author =       "Chandrasekhar Boyapati and Barbara Liskov and Liuba
                 Shrira and Chuang-Hue Moh and Steven Richman",
  title =        "Lazy modular upgrades in persistent object stores",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "403--417",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Burke:2003:ECO,
  author =       "Michael G. Burke",
  title =        "{Executive Committee October 2003} Meeting Report",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "1--1",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2003:LE,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Letters from the {Editors}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "2--2",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wadler:2003:RIP,
  author =       "Philip Wadler and Krzysztof R. Apt and Matthias
                 Felleisen",
  title =        "Reminiscences on Influential Papers [Definitional
                 interpreters for higher-order programming languages;
                 Structured Programming; Call-by-name, Call-by-value,
                 and the $\lambda$-calculus]",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "2--2",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Creak:2003:PLD,
  author =       "Alan Creak",
  title =        "Programming lessons from days gone by: extreme
                 design",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "11--16",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenwick:2003:IA,
  author =       "Jay Fenwick and Cindy Norris",
  title =        "Information for Authors",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "17--17",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Griffith:2003:LES,
  author =       "Walter L. (Larry) Griffith",
  title =        "Letter to the {Editor}: Some Deficiencies of {C++} in
                 Teaching {CS1} and {CS2}",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "18--19",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Avvenuti:2003:JBV,
  author =       "Marco Avvenuti and Cinzia Bernardeschi and Nicoletta
                 De Francesco",
  title =        "{Java} bytecode verification for secure information
                 flow",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "20--27",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Aycock:2003:ACC,
  author =       "John Aycock",
  title =        "The {ART} of compiler construction projects",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "28--32",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lopes:2003:BAT,
  author =       "Cristina Videira Lopes and Paul Dourish and David H.
                 Lorenz and Karl Lieberherr",
  title =        "Beyond {AOP}: toward naturalistic programming",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "34--43",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kamin:2003:RRT,
  author =       "Sam Kamin",
  title =        "Routine run-time code generation",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "44--56",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rinard:2003:AOC,
  author =       "Martin Rinard",
  title =        "Acceptability-oriented computing",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "57--75",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Biddle:2003:NNJ,
  author =       "Robert Biddle and Angela Martin and James Noble",
  title =        "No name: just notes on software reuse",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "12",
  pages =        "76--96",
  month =        dec,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 2 14:16:14 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rival:2004:STF,
  author =       "Xavier Rival",
  title =        "Symbolic transfer function-based approaches to
                 certified compilation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "1--13",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Benton:2004:SRC,
  author =       "Nick Benton",
  title =        "Simple relational correctness proofs for static
                 analyses and program transformations",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "14--25",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sittampalam:2004:IET,
  author =       "Ganesh Sittampalam and Oege de Moor and Ken Friis
                 Larsen",
  title =        "Incremental execution of transformation
                 specifications",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "26--38",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yu:2004:FGN,
  author =       "Dachuan Yu and Andrew Kennedy and Don Syme",
  title =        "Formalization of generics for the {.NET} common
                 language runtime",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "39--51",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vouillon:2004:STF,
  author =       "Jerome Vouillon and Paul-Andr{\'e} Melli{\`e}s",
  title =        "Semantic types: a fresh look at the ideal model for
                 types",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "52--63",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Balat:2004:ENT,
  author =       "Vincent Balat and Roberto Di Cosmo and Marcelo Fiore",
  title =        "Extensional normalisation and type-directed partial
                 evaluation for typed lambda calculus with sums",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "64--76",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fiore:2004:IGR,
  author =       "Marcelo Fiore",
  title =        "Isomorphisms of generic recursive polynomial types",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "77--88",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pottier:2004:PTD,
  author =       "Fran{\c{c}}ois Pottier and Nadji Gauthier",
  title =        "Polymorphic typed defunctionalization",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "89--98",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Johann:2004:FTP,
  author =       "Patricia Johann and Janis Voigtl{\"a}nder",
  title =        "Free theorems in the presence of {\em seq\/}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "99--110",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ford:2004:PEG,
  author =       "Bryan Ford",
  title =        "Parsing expression grammars: a recognition-based
                 syntactic foundation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "111--122",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Caromel:2004:ADO,
  author =       "Denis Caromel and Ludovic Henrio and Bernard Paul
                 Serpette",
  title =        "Asynchronous and deterministic objects",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "123--134",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zilio:2004:LYC,
  author =       "Silvano Dal Zilio and Denis Lugiez and Charles
                 Meyssonnier",
  title =        "A logic you can count on",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "135--146",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yoshida:2004:CDT,
  author =       "Nobuko Yoshida",
  title =        "Channel dependent types for higher-order mobile
                 processes",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "147--160",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sumii:2004:BDS,
  author =       "Eijiro Sumii and Benjamin C. Pierce",
  title =        "A bisimulation for dynamic sealing",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "161--172",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cousot:2004:AIB,
  author =       "Patrick Cousot and Radhia Cousot",
  title =        "An abstract interpretation-based framework for
                 software watermarking",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "173--185",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Giacobazzi:2004:ANI,
  author =       "Roberto Giacobazzi and Isabella Mastroeni",
  title =        "Abstract non-interference: parameterizing
                 non-interference by abstract interpretation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "186--197",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bhargavan:2004:SWS,
  author =       "Karthikeyan Bhargavan and C{\'e}dric Fournet and
                 Andrew D. Gordon",
  title =        "A semantics for {Web} services authentication",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "198--209",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boehm:2004:SCL,
  author =       "Hans-J. Boehm",
  title =        "The space cost of lazy reference counting",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "210--219",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Birkedal:2004:LRA,
  author =       "Lars Birkedal and Noah Torp-Smith and John C.
                 Reynolds",
  title =        "Local reasoning about a copying garbage collector",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "220--231",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Henzinger:2004:AP,
  author =       "Thomas A. Henzinger and Ranjit Jhala and Rupak
                 Majumdar and Kenneth L. McMillan",
  title =        "Abstractions from proofs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "232--244",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Qadeer:2004:SPC,
  author =       "Shaz Qadeer and Sriram K. Rajamani and Jakob Rehof",
  title =        "Summarizing procedures in concurrent programs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "245--255",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2004:ADA,
  author =       "Cormac Flanagan and Stephen N. Freund",
  title =        "{Atomizer}: a dynamic atomicity checker for
                 multithreaded programs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "256--267",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{OHearn:2004:SIH,
  author =       "Peter W. O'Hearn and Hongseok Yang and John C.
                 Reynolds",
  title =        "Separation and information hiding",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "268--280",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dunfield:2004:TT,
  author =       "Joshua Dunfield and Frank Pfenning",
  title =        "Tridirectional typechecking",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "281--292",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dreyer:2004:TSW,
  author =       "Derek Dreyer",
  title =        "A type system for well-founded recursion",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "293--305",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ancona:2004:PTJ,
  author =       "Davide Ancona and Elena Zucca",
  title =        "Principal typings for {Java}-like languages",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "306--317",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sankaranarayanan:2004:NLL,
  author =       "Sriram Sankaranarayanan and Henny B. Sipma and Zohar
                 Manna",
  title =        "Non-linear loop invariant generation using
                 {Gr{\"o}bner} bases",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "318--329",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Muller-Olm:2004:PIA,
  author =       "Markus M{\"u}ller-Olm and Helmut Seidl",
  title =        "Precise interprocedural analysis through linear
                 algebra",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "330--341",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gulwani:2004:GVN,
  author =       "Sumit Gulwani and George C. Necula",
  title =        "Global value numbering using random interpretation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "1",
  pages =        "342--352",
  month =        jan,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

%%% Need to check volume 39 number 2 against printed journal
@Article{Frenger:2004:DT,
  author =       "Paul Frenger",
  title =        "{Dutch} treat",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "2",
  pages =        "7--10",
  month =        feb,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 9 09:10:13 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Singh:2004:ALO,
  author =       "Awadhesh Kumar Singh and Anup Kumar Bandyopadhyay",
  title =        "Adding the leads-to operator to {Dijkstra}'s
                 calculus",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "2",
  pages =        "12--17",
  month =        feb,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 9 09:10:13 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lu:2004:CTO,
  author =       "Hongmin Lu and Yuming Zhou and Jiangtao Lu and Baowen
                 Xu",
  title =        "A compile-time optimization framework for {Ada}
                 rendezvous",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "2",
  pages =        "18--25",
  month =        feb,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 9 09:10:13 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Song:2004:WCW,
  author =       "Litong Song and Krishna Kavi",
  title =        "What can we gain by unfolding loops?",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "2",
  pages =        "26--33",
  month =        feb,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 9 09:10:13 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liu:2004:PAM,
  author =       "Yuan Liu and Baowen Xu",
  title =        "Process algebra model of {Ada} protected objects",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "2",
  pages =        "34--39",
  month =        feb,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Feb 9 09:10:13 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2004:DEM,
  author =       "Paul Frenger",
  title =        "{Deus Ex Macintosh}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "3",
  pages =        "7--11",
  month =        mar,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2004:SSD,
  author =       "Yingzhou Zhang and Baowen Xu",
  title =        "A survey of semantic description frameworks for
                 programming languages",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "3",
  pages =        "14--30",
  month =        mar,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yavner:2004:BPK,
  author =       "Jonathan Yavner",
  title =        "Back-propagation of knowledge from syntax tree to {C}
                 source code",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "3",
  pages =        "31--37",
  month =        mar,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kumar:2004:WWC,
  author =       "K. V. Seshu Kumar",
  title =        "When and what to compile\slash optimize in a virtual
                 machine?",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "3",
  pages =        "38--45",
  month =        mar,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lam:2004:GTC,
  author =       "Patrick Lam and Viktor Kuncak and Martin Rinard",
  title =        "Generalized typestate checking using set interfaces
                 and pluggable analyses",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "3",
  pages =        "46--55",
  month =        mar,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:FRa,
  author =       "Anonymous",
  title =        "{Forth} report",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "3",
  pages =        "??--??",
  month =        mar,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:12 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cattell:2004:CGM,
  author =       "R. G. G. Cattell and Joseph M. Newcomer and Bruce W.
                 Leverett",
  title =        "Code generation in a machine-independent compiler",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "1--13",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pennello:2004:ECL,
  author =       "Thomas J. Pennello and Frank DeRemer",
  title =        "Efficient computation of {LALR(1)} look-ahead sets",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "14--27",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Minimair:2004:MMR,
  author =       "Manfred Minimair",
  title =        "{MR}: {Macaulay Resultant} package for {Maple}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "26--29",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Allen:2004:ASO,
  author =       "Frances E. Allen and Janet Fabri",
  title =        "Automatic storage optimization",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "28--37",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Auslander:2004:OPC,
  author =       "Marc Auslander and Martin Hopkins",
  title =        "An overview of the {PL.8} compiler",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "38--48",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Graham:2004:GCG,
  author =       "Susan L. Graham and Peter B. Kessler and Marshall K.
                 McKusick",
  title =        "{\tt gprof}: a call graph execution profiler",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "49--57",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "gcc; GNU profiler",
}

@Article{Markstein:2004:ORC,
  author =       "Victoria Markstein and Peter Markstein and John
                 Cocke",
  title =        "Optimization of range checking",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "58--65",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chaitin:2004:RAS,
  author =       "Gregory Chaitin",
  title =        "Register allocation and spilling via graph coloring",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "66--74",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Allen:2004:ALI,
  author =       "Randy Allen and Ken Kennedy",
  title =        "Automatic loop interchange",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "75--90",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chow:2004:RAP,
  author =       "Fred Chow and John Hennessy",
  title =        "Register allocation by priority-based coloring",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "91--103",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Davidson:2004:AGP,
  author =       "Jack W. Davidson and Christopher W. Fraser",
  title =        "Automatic generation of peephole optimizations",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "104--111",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fisher:2004:PPS,
  author =       "Joseph A. Fisher and John R. Ellis and John C.
                 Ruttenberg and Alexandru Nicolau",
  title =        "Parallel processing: a smart compiler and a dumb
                 machine",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "112--124",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Johnsson:2004:ECL,
  author =       "Thomas Johnsson",
  title =        "Efficient compilation of lazy evaluation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "125--138",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Burke:2004:IDA,
  author =       "Michael G. Burke and Ron K. Cytron",
  title =        "Interprocedural dependence analysis and
                 parallelization",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "139--154",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Callahan:2004:ICP,
  author =       "David Callahan and Keith D. Cooper and Ken Kennedy and
                 Linda Torczon",
  title =        "Interprocedural constant propagation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "155--166",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Muchnick:2004:EIS,
  author =       "Steven S. Muchnick and Phillip B. Gibbons",
  title =        "Efficient instruction scheduling for a pipelined
                 architecture",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "167--174",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kranz:2004:OOC,
  author =       "David Kranz and Richard Kelsey and Jonathan Rees and
                 Paul Hudak and James Philbin and Norman Adams",
  title =        "{Orbit}: an optimizing compiler for {Scheme}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "175--191",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wall:2004:GRA,
  author =       "David W. Wall",
  title =        "Global register allocation at link time",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "192--204",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Appel:2004:RTC,
  author =       "Andrew W. Appel",
  title =        "Real-time concurrent collection on stock
                 multiprocessors",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "205--216",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cooper:2004:ISE,
  author =       "Keith D. Cooper and Ken Kennedy",
  title =        "Interprocedural side-effect analysis in linear time",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "217--228",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Horwitz:2004:ISU,
  author =       "Susan Horwitz and Thomas Reps and David Binkley",
  title =        "Interprocedural slicing using dependence graphs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "229--243",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lam:2004:SPE,
  author =       "Monica S. Lam",
  title =        "Software pipelining: an effective scheduling technique
                 for {VLIW} machines",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "244--256",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shivers:2004:HOC,
  author =       "Olin Shivers",
  title =        "Higher-order control-flow analysis in retrospect:
                 lessons learned, lessons abandoned",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "257--269",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wall:2004:RWV,
  author =       "David W. Wall",
  title =        "Register windows vs. register allocation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "270--282",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Briggs:2004:CHR,
  author =       "Preston Briggs and Keith D. Cooper and Ken Kennedy and
                 Linda Torczon",
  title =        "Coloring heuristics for register allocation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "283--294",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chambers:2004:RCO,
  author =       "Craig Chambers and David Ungar",
  title =        "A retrospective on: {``Customization: Optimizing
                 Compiler Technology for Self, a Dynamically-Typed
                 Object-Oriented Programming Language''}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "295--312",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Schonberg:2004:FDA,
  author =       "Edith Schonberg",
  title =        "On-the-fly detection of access anomalies",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "313--327",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Callahan:2004:IRA,
  author =       "David Callahan and Steve Carr and Ken Kennedy",
  title =        "Improving register allocation for subscripted
                 variables",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "328--342",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chase:2004:APS,
  author =       "David Chase and Mark Wegman and F. Ken Zadeck",
  title =        "Analysis of pointers and structures",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "343--359",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clinger:2004:HRF,
  author =       "William D. Clinger",
  title =        "How to read floating point numbers accurately",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "360--371",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Clinger:2004:RHR,
  author =       "William D. Clinger",
  title =        "Retrospective: How to read floating point numbers
                 accurately",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "360--371",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/989393.989430",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed May 26 06:21:19 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Best of PLDI 1979--1999. Reprint of, and retrospective
                 on, \cite{Clinger:1990:HRF}.",
  abstract =     "Converting decimal scientific notation into binary
                 floating point is nontrivial, but this conversion can
                 be performed with the best possible accuracy without
                 sacrificing efficiency. Consider the problem of
                 converting decimal scientific notation for a number
                 into the best binary floating point approximation to
                 that number, for some fixed precision. This problem
                 cannot be solved using arithmetic of any fixed
                 precision. Hence the IEEE Standard for Binary
                 Floating-Point Arithmetic does not require the result
                 of such a conversion to be the best approximation. This
                 paper presents an efficient algorithm that always finds
                 the best approximation. The algorithm uses a few extra
                 bits of precision to compute an IEEE-conforming
                 approximation while testing an intermediate result to
                 determine whether the approximation could be other than
                 the best. If the approximation might not be the best,
                 then the best approximation is determined by a few
                 simple operations on multiple-precision integers, where
                 the precision is determined by the input. When using 64
                 bits of precision to compute IEEE double precision
                 results, the algorithm avoids higher-precision
                 arithmetic over 99\% of the time. The input problem
                 considered by this paper is the inverse of an output
                 problem considered by Steele and White: Given a binary
                 floating point number, print a correctly rounded
                 decimal representation of it using the smallest number
                 of digits that will allow the number to be read without
                 loss of accuracy. The Steele and White algorithm
                 assumes that the input problem is solved; an imperfect
                 solution to the input problem, as allowed by the IEEE
                 standard and ubiquitous in current practice, defeats
                 the purpose of their algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Steele:2004:RHP,
  author =       "Guy L. {Steele Jr.} and Jon L. White",
  title =        "Retrospective: How to Print Floating-Point Numbers
                 Accurately",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "372--389",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/989393.989431",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 15 10:00:43 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Best of PLDI 1979--1999. Reprint of, and retrospective
                 on, \cite{Steele:1990:HPF}.",
  abstract =     "We present algorithms for accurately converting
                 floating-point numbers to decimal representation. The
                 key idea is to carry along with the computation an
                 explicit representation of the required rounding
                 accuracy. We begin with the simpler problem of
                 converting fixed-point fractions. A modification of the
                 well-known algorithm for radix-conversion of
                 fixed-point fractions by multiplication explicitly
                 determines when to terminate the conversion process; a
                 variable number of digits are produced. The algorithm
                 has these properties: (*) No information is lost; the
                 original fraction can be recovered from the output by
                 rounding. (*) No ``garbage digits'' are produced. (*)
                 The output is correctly rounded. (*) It is never
                 necessary to propagate carries on rounding. We then
                 derive two algorithms for free-format out-put of
                 floating-point numbers. The first simply scales the
                 given floating-point number to an appropriate
                 fractional range and then applies the algorithm for
                 fractions. This is quite fast and simple to code but
                 has inaccuracies stemming from round-off errors and
                 oversimplification. The second algorithm guarantees
                 mathematical accuracy by using multiple-precision
                 integer arithmetic and handling special cases. Both
                 algorithms produce no more digits than necessary
                 (intuitively, the ``1.3 prints as 1.2999999'' problem
                 does not occur). Finally, we modify the free-format
                 conversion algorithm for use in fixed-format
                 applications. Information may be lost if the fixed
                 format provides too few digit positions, but the output
                 is always correctly rounded. On the other hand, no
                 ``garbage digits'' are ever produced, even if the fixed
                 format specifies too many digit positions (intuitively,
                 the ``4/3 prints as 1.333333328366279602'' problem does
                 not occur).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kessler:2004:FBD,
  author =       "Peter B. Kessler",
  title =        "Fast breakpoints: design and implementation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "390--397",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pettis:2004:PGC,
  author =       "Karl Pettis and Robert C. Hansen and Jack W.
                 Davidson",
  title =        "Profile guided code positioning",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "398--411",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cartwright:2004:ST,
  author =       "Robert Cartwright and Mike Fagan",
  title =        "Soft typing",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "412--428",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wall:2004:PPB,
  author =       "David W. Wall",
  title =        "Predicting program behavior using real or estimated
                 profiles",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "429--441",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lam:2004:DLO,
  author =       "Monica S. Lam and Michael E. Wolf",
  title =        "A data locality optimizing algorithm",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "442--459",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Knoop:2004:LCM,
  author =       "Jens Knoop and Oliver R{\"u}thing and Bernhard
                 Steffen",
  title =        "Lazy code motion",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "460--472",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Landi:2004:SAA,
  author =       "William Landi and Barbara G. Ryder",
  title =        "A safe approximate algorithm for interprocedural
                 pointer aliasing",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "473--489",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boehm:2004:SEC,
  author =       "Hans J. Boehm",
  title =        "Space efficient conservative garbage collection",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "490--501",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2004:ECC,
  author =       "Cormac Flanagan and Amr Sabry and Bruce F. Duba and
                 Matthias Felleisen",
  title =        "The essence of compiling with continuations",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "502--514",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kerns:2004:BSI,
  author =       "Daniel R. Kerns and Susan J. Eggers",
  title =        "Balanced scheduling: instruction scheduling when
                 memory latency is uncertain",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "515--527",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Srivastava:2004:ASB,
  author =       "Amitabh Srivastava and Alan Eustace",
  title =        "{ATOM}: a system for building customized program
                 analysis tools",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "528--539",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lee:2004:OMR,
  author =       "Peter Lee and Mark Leone",
  title =        "Optimizing {ML} with run-time code generation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "540--553",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tarditi:2004:TTD,
  author =       "David Tarditi and Greg Morrisett and Perry Cheng and
                 Chris Stone and Robert Harper and Peter Lee",
  title =        "{TIL}: a type-directed, optimizing compiler for {ML}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "554--567",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ammons:2004:IDF,
  author =       "Glenn Ammons and James R. Larus",
  title =        "Improving data-flow analysis with path profiles",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "568--582",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bacon:2004:TLF,
  author =       "David F. Bacon and Ravi Konuru and Chet Murthy and
                 Mauricio J. Serrano",
  title =        "Thin locks: featherweight synchronization for {Java}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "583--595",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bodik:2004:CRR,
  author =       "Rastislav Bod{\'\i}k and Rajiv Gupta and Mary Lou
                 Soffa",
  title =        "Complete removal of redundant expressions",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "596--611",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Necula:2004:DIC,
  author =       "George C. Necula and Peter Lee",
  title =        "The design and implementation of a certifying
                 compiler",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "612--625",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Blelloch:2004:BTS,
  author =       "Guy E. Blelloch and Perry Cheng",
  title =        "On bounding time and space for multiprocessor garbage
                 collection",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "626--641",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frigo:2004:FFT,
  author =       "Matteo Frigo",
  title =        "A fast {Fourier} transform compiler",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "642--655",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Grant:2004:RES,
  author =       "Brian Grant and Matthai Philipose and Markus Mock and
                 Craig Chambers and Susan J. Eggers",
  title =        "A retrospective on: ``an evaluation of staged run-time
                 optimizations in {DyC'}'",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "4",
  pages =        "656--669",
  month =        apr,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shan:2004:STA,
  author =       "Chung-chieh Shan",
  title =        "Sexy types in action",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "5",
  pages =        "15--22",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ghosh:2004:GJC,
  author =       "Debasish Ghosh",
  title =        "Generics in {Java} and {C++}: a comparative model",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "5",
  pages =        "40--47",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wells:2004:UIR,
  author =       "Paul Damian Wells",
  title =        "A universal intermediate representation for massively
                 parallel software development",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "5",
  pages =        "48--57",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Juric:2004:JRR,
  author =       "Matjaz B. Juric and Bostjan Kezmah and Marjan Hericko
                 and Ivan Rozman and Ivan Vezocnik",
  title =        "{Java RMI}, {RMI} tunneling and {Web} services
                 comparison and performance analysis",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "5",
  pages =        "58--65",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kantorovitz:2004:LAT,
  author =       "Isaiah Pinchas Kantorovitz",
  title =        "Lexical analysis tool",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "5",
  pages =        "66--74",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Henzinger:2004:RCC,
  author =       "Thomas A. Henzinger and Ranjit Jhala and Rupak
                 Majumdar",
  title =        "Race checking by context inference",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "1--13",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Qadeer:2004:KKI,
  author =       "Shaz Qadeer and Dinghao Wu",
  title =        "{KISS}: keep it simple and sequential",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "14--24",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yahav:2004:VSP,
  author =       "Eran Yahav and G. Ramalingam",
  title =        "Verifying safety properties using separation and
                 heterogeneous abstractions",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "25--34",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Michael:2004:SLF,
  author =       "Maged M. Michael",
  title =        "Scalable lock-free dynamic memory allocation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "35--46",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/996841.996848",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Dynamic memory allocators (malloc/free) rely on mutual
                 exclusion locks for protecting the consistency of their
                 shared data structures under multithreading. The use of
                 locking has many disadvantages with respect to
                 performance, availability, robustness, and programming
                 flexibility. A lock-free memory allocator guarantees
                 progress regardless of whether some threads are delayed
                 or even killed and regardless of scheduling policies.
                 This paper presents a completely lock-free memory
                 allocator. It uses only widely-available operating
                 system support and hardware atomic instructions. It
                 offers guaranteed availability even under arbitrary
                 thread termination and crash-failure, and it is immune
                 to deadlock regardless of scheduling policies, and
                 hence it can be used even in interrupt handlers and
                 real-time applications without requiring special
                 scheduler support. Also, by leveraging some high-level
                 structures from Hoard, our allocator is highly
                 scalable, limits space blowup to a constant factor, and
                 is capable of avoiding false sharing. In addition, our
                 allocator allows finer concurrency and much lower
                 latency than Hoard. We use PowerPC shared memory
                 multiprocessor systems to compare the performance of
                 our allocator with the default AIX 5.1 libc malloc, and
                 two widely-used multithread allocators, Hoard and
                 Ptmalloc. Our allocator outperforms the other
                 allocators in virtually all cases and often by
                 substantial margins, under various levels of
                 parallelism and allocation patterns. Furthermore, our
                 allocator also offers the lowest contention-free
                 latency among the allocators by significant margins.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flatt:2004:KSS,
  author =       "Matthew Flatt and Robert Bruce Findler",
  title =        "Kill-safe synchronization abstractions",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "47--58",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Johnson:2004:MCP,
  author =       "Troy A. Johnson and Rudolf Eigenmann and T. N.
                 Vijaykumar",
  title =        "Min-cut program decomposition for thread-level
                 speculation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "59--70",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Du:2004:CDC,
  author =       "Zhao-Hui Du and Chu-Cheow Lim and Xiao-Feng Li and
                 Chen Yang and Qingyu Zhao and Tin-Fook Ngai",
  title =        "A cost-driven compilation framework for speculative
                 parallelization of sequential programs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "71--81",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Eichenberger:2004:VSA,
  author =       "Alexandre E. Eichenberger and Peng Wu and Kevin
                 O'Brien",
  title =        "Vectorization for {SIMD} architectures with alignment
                 constraints",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "82--93",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2004:CED,
  author =       "Xiangyu Zhang and Rajiv Gupta",
  title =        "Cost effective dynamic program slicing",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "94--106",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Collberg:2004:DPB,
  author =       "C. Collberg and E. Carter and S. Debray and A.
                 Huntwork and J. Kececioglu and C. Linn and M. Stepp",
  title =        "Dynamic path-based software watermarking",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "107--118",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wang:2004:PAA,
  author =       "Cheng Wang and Zhiyuan Li",
  title =        "Parametric analysis for adaptive computation
                 offloading",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "119--130",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Whaley:2004:CBC,
  author =       "John Whaley and Monica S. Lam",
  title =        "Cloning-based context-sensitive pointer alias analysis
                 using binary decision diagrams",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "131--144",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhu:2004:SPA,
  author =       "Jianwen Zhu and Silvian Calman",
  title =        "Symbolic pointer analysis revisited",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "145--157",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lhotak:2004:JBB,
  author =       "Ond{\v{r}}ej Lhot{\'a}k and Laurie Hendren",
  title =        "{Jedd}: a {BDD}-based relational extension of {Java}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "158--169",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kulkarni:2004:FSE,
  author =       "Prasad Kulkarni and Stephen Hines and Jason Hiser and
                 David Whalley and Jack Davidson and Douglas Jones",
  title =        "Fast searches for effective optimization phase
                 sequences",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "171--182",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cavazos:2004:IHD,
  author =       "John Cavazos and J. Eliot and B. Moss",
  title =        "Inducing heuristics to decide whether to schedule",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "183--194",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vachharajani:2004:LSS,
  author =       "Manish Vachharajani and Neil Vachharajani and David I.
                 August",
  title =        "The liberty structural specification language: a
                 high-level modeling language for component reuse",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "195--206",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kodumal:2004:SCC,
  author =       "John Kodumal and Alex Aiken",
  title =        "The set constraint\slash {CFL} reachability connection
                 in practice",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "207--218",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liu:2004:PRP,
  author =       "Yanhong A. Liu and Tom Rothamel and Fuxiang Yu and
                 Scott D. Stoller and Nanjun Hu",
  title =        "Parametric regular path queries",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "219--230",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Venet:2004:PES,
  author =       "Arnaud Venet and Guillaume Brat",
  title =        "Precise and efficient static array bound checking for
                 large embedded {C} programs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "231--242",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chin:2004:RIO,
  author =       "Wei-Ngan Chin and Florin Craciun and Shengchao Qin and
                 Martin Rinard",
  title =        "Region inference for an object-oriented language",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "243--254",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhong:2004:ARS,
  author =       "Yutao Zhong and Maksim Orlovich and Xipeng Shen and
                 Chen Ding",
  title =        "Array regrouping and structure splitting using
                 whole-program reference affinity",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "255--266",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Adl-Tabatabai:2004:PIB,
  author =       "Ali-Reza Adl-Tabatabai and Richard L. Hudson and
                 Mauricio J. Serrano and Sreenivas Subramoney",
  title =        "Prefetch inection based on hardware monitoring and
                 object metadata",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "267--276",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Smith:2004:GAG,
  author =       "Michael D. Smith and Norman Ramsey and Glenn
                 Holloway",
  title =        "A generalized algorithm for graph-coloring register
                 allocation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "277--288",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhuang:2004:BRA,
  author =       "Xiaotong Zhuang and Santosh Pande",
  title =        "Balancing register allocation across threads for a
                 multithreaded network processor",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "6",
  pages =        "289--300",
  month =        may,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Antochi:2004:GGB,
  author =       "Iosif Antochi and Ben Juurlink and Stamatis
                 Vassiliadis and Petri Liuha",
  title =        "{GraalBench}: a {$3$D} graphics benchmark suite for
                 mobile phones",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "1--9",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Martin:2004:MSE,
  author =       "Thomas Martin and Mark Jones and Joshua Edmison and
                 Tanwir Sheikh and Zahi Nakad",
  title =        "Modeling and simulating electronic textile
                 applications",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "10--19",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Willmann:2004:SLB,
  author =       "Paul Willmann and Michael Brogioli and Vijay S. Pai",
  title =        "{Spinach}: a liberty-based simulator for programmable
                 network interface architectures",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "20--29",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Conway:2004:NDS,
  author =       "Christopher L. Conway and Stephen A. Edwards",
  title =        "{NDL}: a domain-specific language for device drivers",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "30--36",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kumar:2004:AST,
  author =       "Nagendra J. Kumar and Siddhartha Shivshankar and
                 Alexander G. Dean",
  title =        "Asynchronous software thread integration for efficient
                 software",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "37--46",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Qin:2004:FCM,
  author =       "Wei Qin and Subramanian Rajagopalan and Sharad Malik",
  title =        "A formal concurrency model based architecture
                 description language for synthesis of software
                 development tools",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "47--56",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jejurikar:2004:PSF,
  author =       "Ravindra Jejurikar and Rajesh Gupta",
  title =        "Procrastination scheduling in fixed priority real-time
                 systems",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "57--66",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhuang:2004:PEP,
  author =       "Xiaotong Zhuang and Santosh Pande",
  title =        "Power-efficient prefetching via bit-differential
                 offset assignment on embedded processors",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "67--77",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pokam:2004:SSM,
  author =       "Gilles Pokam and Olivier Rochecouste and Andr{\'e}
                 Seznec and Fran{\c{c}}ois Bodin",
  title =        "Speculative software management of datapath-width for
                 energy optimization",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "78--87",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Im:2004:DVS,
  author =       "Chaeseok Im and Soonhoi Ha",
  title =        "Dynamic voltage scaling for real-time multi-task
                 scheduling using buffers",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "88--94",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2004:TBB,
  author =       "Lian Li and Jingling Xue",
  title =        "A trace-based binary compilation framework for
                 energy-aware computing",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "95--106",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lapalme:2004:ENN,
  author =       "J. Lapalme and E. M. Aboulhamid and G. Nicolescu and
                 L. Charest and F. R. Boyer and J. P. David and G.
                 Bois",
  title =        "{ESys.Net}: a new solution for embedded systems
                 modeling and simulation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "107--114",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Contreras:2004:XPS,
  author =       "Gilberto Contreras and Margaret Martonosi and Jinzhan
                 Peng and Roy Ju and Guei-Yuan Lueh",
  title =        "{XTREM}: a power simulator for the {Intel
                 XScale\TM{}}; core",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "115--125",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kastens:2004:FDI,
  author =       "Uwe Kastens and Dinh Khoi Le and Adrian Slowik and
                 Michael Thies",
  title =        "Feedback driven instruction-set extension",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "126--135",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Patil:2004:CSI,
  author =       "Kaustubh Patil and Kiran Seth and Frank Mueller",
  title =        "Compositional static instruction cache simulation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "136--145",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Starner:2004:MCI,
  author =       "Johan St{\"a}rner and Lars Asplund",
  title =        "Measuring the cache interference cost in preemptive
                 real-time systems",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "146--154",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2004:ACU,
  author =       "Lingli Zhang and Chandra Krintz",
  title =        "Adaptive code unloading for resource-constrained
                 {JVMs}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "155--164",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2004:ACF,
  author =       "Peng Li and Steve Zdancewic",
  title =        "Advanced control flow in {Java} card programming",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "165--174",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zeng:2004:GFC,
  author =       "Jia Zeng and Cristian Soviani and Stephen A. Edwards",
  title =        "Generating fast code from concurrent program
                 dependence graphs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "175--181",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hiser:2004:EEM,
  author =       "Jason D. Hiser and Jack W. Davidson",
  title =        "{EMBARC}: an efficient memory bank assignment
                 algorithm for retargetable compilers",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "182--191",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhuang:2004:HMR,
  author =       "Xiaotong Zhuang and Tao Zhang and Santosh Pande",
  title =        "Hardware-managed register allocation for embedded
                 processors",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "192--201",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Daveau:2004:RRA,
  author =       "Jean-Marc Daveau and Thomas Thery and Thierry Lepley
                 and Miguel Santana",
  title =        "A retargetable register allocation framework for
                 embedded processors",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "202--210",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{DeBus:2004:LTO,
  author =       "Bruno {De Bus} and Bjorn {De Sutter} and Ludo {Van
                 Put} and Dominique Chanet and Koen {De Bosschere}",
  title =        "Link-time optimization of {ARM} binaries",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "211--220",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Scholz:2004:OST,
  author =       "Bernhard Scholz and Nigel Horspool and Jens Knoop",
  title =        "Optimizing for space and time usage with speculative
                 partial redundancy elimination",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "221--230",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Almagor:2004:FEC,
  author =       "L. Almagor and Keith D. Cooper and Alexander Grosul
                 and Timothy J. Harvey and Steven W. Reeves and Devika
                 Subramanian and Linda Torczon and Todd Waterman",
  title =        "Finding effective compilation sequences",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "231--239",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Saputra:2004:CPR,
  author =       "H. Saputra and G. Chen and R. Brooks and N.
                 Vijaykrishnan and M. Kandemir and M. J. Irwin",
  title =        "Code protection for resource-constrained embedded
                 devices",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "240--248",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Guo:2004:IDR,
  author =       "Zhi Guo and Betul Buyukkurt and Walid Najjar",
  title =        "Input data reuse in compiling window operations onto
                 reconfigurable hardware",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "249--256",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wasowski:2004:FSE,
  author =       "Andrzej Wasowski",
  title =        "Flattening statecharts without explosions",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "7",
  pages =        "257--266",
  month =        jul,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:55 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2004:EF,
  author =       "Paul Frenger",
  title =        "Embed with {Forth}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "8",
  pages =        "8--11",
  month =        aug,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Creak:2004:PNA,
  author =       "Alan Creak",
  title =        "Parsing by numbers and asparagus",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "8",
  pages =        "12--19",
  month =        aug,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Reid:2004:OF,
  author =       "John Reid",
  title =        "An overview of {Fortran 2003}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "8",
  pages =        "31--38",
  month =        aug,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wu:2004:SZS,
  author =       "Fangjun Wu and Tong Yi",
  title =        "Slicing {Z} specifications",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "8",
  pages =        "39--48",
  month =        aug,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bronnikov:2004:PAP,
  author =       "Dmitri Bronnikov",
  title =        "A practical adoption of partial redundancy
                 elimination",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "8",
  pages =        "49--53",
  month =        aug,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{deOliveiraGuimaraes:2004:CST,
  author =       "Jos{\'e} {de Oliveira Guimar{\~a}es}",
  title =        "Closures for statically-typed object-oriented
                 languages",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "8",
  pages =        "54--60",
  month =        aug,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Babu:2004:MDM,
  author =       "Chitra Babu and D. Janakiram",
  title =        "Method driven model: a unified model for an object
                 composition language",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "8",
  pages =        "61--71",
  month =        aug,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sandya:2004:JJL,
  author =       "S. M. Sandya",
  title =        "Jazzing up {JVMs} with off-line profile data: does it
                 pay?",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "8",
  pages =        "72--80",
  month =        aug,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramsey:2004:CCI,
  author =       "Norman Ramsey and Simon L. Peyton Jones",
  title =        "The {C}--compiler infrastructure",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "1--1",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Launchbury:2004:GHA,
  author =       "John Launchbury",
  title =        "{Galois}: high assurance software",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "3--3",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Marlow:2004:MFC,
  author =       "Simon Marlow and Simon Peyton Jones",
  title =        "Making a fast curry: push\slash enter vs. eval\slash
                 apply for higher-order languages",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "4--15",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Herman:2004:ISA,
  author =       "David Herman and Philippe Meunier",
  title =        "Improving the static analysis of embedded languages
                 via partial evaluation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "16--27",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Christiansen:2004:SDW,
  author =       "Jan Christiansen and Frank Huch",
  title =        "Searching for deadlocks while debugging {Concurrent
                 Haskell} programs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "28--39",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ariola:2004:TTF,
  author =       "Zena M. Ariola and Hugo Herbelin and Amr Sabry",
  title =        "A type-theoretic foundation of continuations and
                 prompts",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "40--53",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wand:2004:RMB,
  author =       "Mitchell Wand and Dale Vaillancourt",
  title =        "Relating models of backtracking",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "54--65",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Graham:2004:DMW,
  author =       "Paul Graham",
  title =        "Don't make the wrong mistakes: programming as
                 debugging",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "66--66",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Broberg:2004:REP,
  author =       "Niklas Broberg and Andreas Farre and Josef
                 Svenningsson",
  title =        "Regular expression patterns",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "67--78",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shivers:2004:MRF,
  author =       "Olin Shivers and David Fisher",
  title =        "Multi-return function call",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "79--89",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tolmach:2004:IFL,
  author =       "Andrew Tolmach and Sergio Antoy and Marius Nita",
  title =        "Implementing functional logic languages using multiple
                 threads and stores",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "90--102",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fluet:2004:MR,
  author =       "Matthew Fluet and Greg Morrisett",
  title =        "Monadic regions",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "103--114",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tse:2004:TDP,
  author =       "Stephen Tse and Steve Zdancewic",
  title =        "Translating dependency into parametricity",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "115--125",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Colazzo:2004:TPC,
  author =       "Dario Colazzo and Giorgio Ghelli and Paolo Manghi and
                 Carlo Sartiani",
  title =        "Types for path correctness of {XML} queries",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "126--137",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Neergaard:2004:TPI,
  author =       "Peter M{\o}ller Neergaard and Harry G. Mairson",
  title =        "Types, potency, and idempotency: why nonlinearity and
                 amnesia make a type system work",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "138--149",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gauthier:2004:NMF,
  author =       "Nadji Gauthier and Fran{\c{c}}ois Pottier",
  title =        "Numbering matters: first-order canonical forms for
                 second-order recursive types",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "150--161",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wiger:2004:YIF,
  author =       "Ulf Wiger",
  title =        "20 years of industrial functional programming",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "162--162",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Honda:2004:PLP,
  author =       "Kohei Honda",
  title =        "From process logic to program logic",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "163--174",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yu:2004:VSP,
  author =       "Dachuan Yu and Zhong Shao",
  title =        "Verification of safety properties for concurrent
                 assembly code",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "175--188",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Blume:2004:SCM,
  author =       "Matthias Blume and David McAllester",
  title =        "A sound (and complete) model of contracts",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "189--200",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sarkar:2004:NIC,
  author =       "Dipanwita Sarkar and Oscar Waddell and R. Kent
                 Dybvig",
  title =        "A nanopass infrastructure for compiler education",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "201--212",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Forsberg:2004:FM,
  author =       "Markus Forsberg and Aarne Ranta",
  title =        "Functional morphology",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "213--223",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Findler:2004:SFP,
  author =       "Robert Bruce Findler and Matthew Flatt",
  title =        "Slideshow: functional presentations",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "224--235",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hinze:2004:GM,
  author =       "Ralf Hinze",
  title =        "Generics for the masses",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "236--243",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lammel:2004:SMB,
  author =       "Ralf L{\"a}mmel and Simon Peyton Jones",
  title =        "Scrap more boilerplate: reflection, zips, and
                 generalised casts",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "244--255",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

%%% TO DO: ACM Portal has v39n10 that disagrees completely with my printed copy (labeled OOPSLA'04).  Why??
@Article{Perera:2004:RRB,
  author =       "Roly Perera",
  title =        "Refactoring: to the {Rubicon}\ldots{} and beyond!",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "2--3",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Freeman:2004:JSR,
  author =       "Steve Freeman and Tim Mackinnon and Nat Pryce and Joe
                 Walnes",
  title =        "{jMock}: supporting responsibility-based design with
                 mock objects",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "4--5",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Aldrich:2004:MISa,
  author =       "Jonathan Aldrich and David Garlan and Bradley Schmerl
                 and Tony Tseng",
  title =        "Modeling and implementing software architecture with
                 acme and {archJava}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "6--7",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fuhrer:2004:ARE,
  author =       "Robert Fuhrer and Frank Tip and Adam Kie{\.z}un",
  title =        "Advanced refactorings in eclipse",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "8--8",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McCormick:2004:JFY,
  author =       "Edward McCormick and Kris De Volder",
  title =        "{JQuery}: finding your way through tangled code",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "9--10",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kaundinya:2004:MEDa,
  author =       "Murali Kaundinya and Ali Syed",
  title =        "Modeling event driven applications with a
                 specification language {(MEDASL)}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "11--12",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sazawal:2004:DSP,
  author =       "Vibha Sazawal and David Notkin",
  title =        "Design snippets: partial design representations
                 extracted from source code",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "13--14",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fowler:2004:MPR,
  author =       "Matthew Fowler and Brahm van Niekerk",
  title =        "Meta-programming for the real world",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "15--15",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ostlund:2004:JOA,
  author =       "Helena {\AA}berg {\"O}stlund",
  title =        "{JRA}: offline analysis of runtime behaviour",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "16--17",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Spinczyk:2004:MBS,
  author =       "Olaf Spinczyk and Danilo Beuche",
  title =        "Modeling and building software product lines with
                 eclipse",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "18--19",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2004:PRA,
  author =       "Charles Zhang and Hans-Arno Jacobsen",
  title =        "{PRISM} is research in {aSpect} mining",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "20--21",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bhattacharrya:2004:SDE,
  author =       "Arnab Bhattacharrya and Robert Fuhrer",
  title =        "Smell detection for eclipse",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "22--22",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lippert:2004:AAEa,
  author =       "Martin Lippert",
  title =        "{AJEER}: an {aspectJ}-enabled eclipse runtime",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "23--24",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Akers:2004:PTR,
  author =       "Robert L. Akers and Ira D. Baxter and Michael
                 Mehlich",
  title =        "Program transformations for re-engineering {C++}
                 components {[OOPSLA\slash GPCE]}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "25--26",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gray:2004:CSG,
  author =       "Jeff Gray and Jing Zhang and Suman Roychoudhury and
                 Ira Baxter",
  title =        "{C-SAW} and {genAWeave}: a two-level aspect weaving
                 toolsuite",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "27--28",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tarr:2004:CME,
  author =       "Peri Tarr and William Chung and William Harrison and
                 Vincent Kruskal and Harold Ossher and Stanley M.
                 {Sutton, Jr.} and Andrew Clement and Matthew Chapman
                 and Helen Hawkins and Sian January",
  title =        "The concern manipulation environment {[OOPSLA\slash
                 GPCE]}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "29--30",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hauswirth:2004:PEU,
  author =       "Matthias Hauswirth and Peter F. Sweeney and Amer
                 Diwan",
  title =        "Performance explorer: understanding {Java} application
                 behavior",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "31--32",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gordon:2004:C,
  author =       "Donald Gordon and James Noble and Robert Biddle",
  title =        "{ConstrainedJava}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "33--34",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nguyen:2004:OOS,
  author =       "Tien N. Nguyen and Ethan V. Munson and John T.
                 Boyland",
  title =        "Object-oriented, structural software configuration
                 management",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "35--36",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Parigot:2004:TDD,
  author =       "Didier Parigot",
  title =        "Towards domain-driven development: the {smartTools}
                 software factory",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "37--38",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tolvanen:2004:MDS,
  author =       "Juha-Pekka Tolvanen",
  title =        "{MetaEdit+}: domain-specific modeling for full code
                 generation demonstrated {[GPCE]}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "39--40",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Guerrero:2004:IDM,
  author =       "Miguel Guerrero and Edward Pizzi and Robert Rosenbaum
                 and Kedar Swadi and Walid Taha",
  title =        "Implementing {DSLs} in {metaOCaml}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "41--42",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Eichberg:2004:XCA,
  author =       "Michael Eichberg and Thorsten Sch{\"a}fer",
  title =        "{XIRC}: cross-artifact information retrieval
                 {[GPCE]}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "43--44",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cao:2004:MDA,
  author =       "Lan Cao",
  title =        "Modeling dynamics of agile software development",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "46--47",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gestwicki:2004:IVO,
  author =       "Paul V. Gestwicki",
  title =        "Interactive visualization of object-oriented
                 programs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "48--49",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Potanin:2004:GOP,
  author =       "Alex Potanin and James Noble and Robert Biddle",
  title =        "Generic ownership: practical ownership control in
                 programming languages",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "50--51",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Roychoudhury:2004:LIAa,
  author =       "Suman Roychoudhury",
  title =        "A language-independent approach to software
                 maintenance using grammar adapters",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "52--53",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Siek:2004:MG,
  author =       "Jeremy Siek",
  title =        "Modular generics",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "54--55",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nienaltowski:2004:EDR,
  author =       "Piotr Nienaltowski",
  title =        "Efficient data race and deadlock prevention in
                 concurrent object-oriented programs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "56--57",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Trofin:2004:FRRa,
  author =       "Mircea Trofin",
  title =        "A framework for removing redundant context management
                 services in {Enterprise JavaBeans} application
                 servers",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "58--59",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Silaghi:2004:RDAa,
  author =       "Raul Silaghi",
  title =        "Refining designs along middleware-specific
                 concern-dimensions at different {MDA}-levels of
                 abstraction",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "60--62",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Schmolitzky:2004:OFI,
  author =       "Axel Schmolitzky",
  title =        "``Objects first, interfaces next'' or interfaces
                 before inheritance",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "64--67",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ventura:2004:AWC,
  author =       "Phil Ventura and Christopher Egert and Adrienne
                 Decker",
  title =        "Ancestor worship in {CS1}: on the primacy of arrays",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "68--72",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Henriksen:2004:GCO,
  author =       "Poul Henriksen and Michael K{\"o}lling",
  title =        "{greenfoot}: combining object visualisation with
                 interaction",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "73--82",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1035292.1028701",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Malan:2004:ECD,
  author =       "Katherine Malan and Ken Halland",
  title =        "Examples that can do harm in learning programming",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "83--87",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fenstermacher:2004:IMI,
  author =       "Kurt D. Fenstermacher",
  title =        "If {I} had a model, {I}'d model in the mornin'",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "88--95",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bruce:2004:EDP,
  author =       "Kim B. Bruce and Andrea Danyluk",
  title =        "Event-driven programming facilitates learning standard
                 programming concepts",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "96--100",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cheng:2004:AFS,
  author =       "Eric Cheng and Dung Zung Nguyen and Mathias Ricken and
                 Stephen Wong",
  title =        "Abstract factories and the shape calculator",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "101--102",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wick:2004:UGL,
  author =       "Michael R. Wick",
  title =        "Using the game of life to introduce freshman students
                 to the power and elegance of design patterns",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "103--105",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nevison:2004:CAP,
  author =       "Christopher H. Nevison",
  title =        "From concrete to abstract: the power of
                 generalization",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "106--108",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cheng:2004:MBS,
  author =       "Eric Cheng and Dung Zung Nguyen and Mathias Ricken and
                 Stephen Wong",
  title =        "Marine biology simulation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "109--110",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Noble:2004:NNPa,
  author =       "James Noble and Robert Biddle",
  title =        "Notes on notes on postmodern programming: radio edit",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "112--115",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sheard:2004:LFa,
  author =       "Tim Sheard",
  title =        "Languages of the future",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "116--119",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Singh:2004:PPPa,
  author =       "Munindar P. Singh and Amit K. Chopra and Nirmit V.
                 Desai and Ashok U. Mallya",
  title =        "Protocols for processes: programming in the large for
                 open systems (extended abstract)",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "120--123",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Edwards:2004:ECPa,
  author =       "Jonathan Edwards",
  title =        "Example centric programming",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "124--124",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Marick:2004:MWOa,
  author =       "Brian Marick",
  title =        "Methodology work is ontology work",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "125--125",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{West:2004:LLAa,
  author =       "David West",
  title =        "Looking for love: (in all the wrong places)",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "126--127",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhao:2004:GOPa,
  author =       "Yinliang Zhao",
  title =        "Granule-oriented programming (extended abstract)",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "128--131",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hovemeyer:2004:FBEa,
  author =       "David Hovemeyer and William Pugh",
  title =        "Finding bugs is easy",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "132--136",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Miller:2004:MDA,
  author =       "Granville Miller and Scott Ambler and Steve Cook and
                 Stephen Mellor and Karl Frank and Jon Kern",
  title =        "Model driven architecture: the realities, a year
                 later",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "138--140",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Haungs:2004:SDA,
  author =       "Jim Haungs and Martin Fowler and Ralph Johnson and
                 Steve McConnell and Richard Gabriel",
  title =        "Software development: arts {\&} crafts or math {\&}
                 science?",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "141--142",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fowler:2004:GJV,
  author =       "Martin Fowler and Don Box and Anders Hejlsberg and
                 Alan Knight and Rob High and John Crupi",
  title =        "The great {J2EE} vs. {Microsoft .NET} shootout",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "143--144",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fraser:2004:COG,
  author =       "Steven Fraser and Lougie Anderson and Ron Crocker and
                 Richard Gabriel and Martin Fowler and Ricardo Lopez and
                 Dave Thomas",
  title =        "Challenges in outsourcing and global development: how
                 will your job change?",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "145--147",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fraser:2004:RCS,
  author =       "Steven Fraser and Angela Martin and Robert Biddle and
                 David Hussman and Granville Miller and Mary Poppendieck
                 and Linda Rising and Mark Striebeck",
  title =        "The role of the customer in software development: the
                 {XP} customer --- fad or fashion?",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "148--150",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Josuttis:2004:VUI,
  author =       "Nicolai M. Josuttis and Jutta Eckstein and Linda
                 Rising and Lise B. Hvatum and Mary Lynn Manns and
                 Rebecca Wirfs-Brock",
  title =        "The view: the ultimate {IT} chat",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "151--152",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Eliassen:2004:QBR,
  author =       "Frank Eliassen and Richard Staehli and Gordon Blair
                 and Jan {\O}yvind Aagedal",
  title =        "{QuA}: building with reusable {QoS}-aware components",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "154--155",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Aldrich:2004:MISb,
  author =       "Jonathan Aldrich and David Garlan and Bradley Schmerl
                 and Tony Tseng",
  title =        "Modeling and implementing software architecture with
                 acme and {archJava}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "156--157",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Carleton:2004:IDP,
  author =       "Lawrence Carleton",
  title =        "An invitation to the dance of progress",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "158--159",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Niculescu:2004:OOO,
  author =       "Virginia Niculescu",
  title =        "{OOLACA}: an object oriented library for abstract and
                 computational algebra",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "160--161",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sobering:2004:PCV,
  author =       "Geoff Sobering and Levi Cook and Steve Anderson",
  title =        "Pseudo-classes: very simple and lightweight
                 mockObject-like classes for unit-testing",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "162--163",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Paquet:2004:TFG,
  author =       "Joey Paquet and Aihua Wu and Peter Grogono",
  title =        "Towards a framework for the general intensional
                 programming compiler in the {GIPSY}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "164--165",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kulesza:2004:AOG,
  author =       "Uir{\'a} Kulesza and Alessandro Garcia and Carlos
                 Lucena",
  title =        "An aspect-oriented generative approach",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "166--167",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kaundinya:2004:MEDb,
  author =       "Murali Kaundinya and Ali Syed",
  title =        "Modeling event driven applications with a
                 specification language {(MEDASL)}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "168--169",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hussain:2004:IQC,
  author =       "Tauqeer Hussain and Shafay Shamail and Mian M. Awais",
  title =        "Improving quality in conceptual modeling",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "170--171",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Buytaert:2004:BAJ,
  author =       "Dries Buytaert and Andy Georges and Lieven Eeckhout
                 and Koen {De Bosschere}",
  title =        "Bottleneck analysis in {Java} applications using
                 hardware performance monitors",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "172--173",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Abrahamsson:2004:MDA,
  author =       "Pekka Abrahamsson and Antti Hanhineva and Hanna Hulkko
                 and Tuomas Ihme and Juho J{\"a}{\"a}linoja and Mikko
                 Korkala and Juha Koskela and Pekka Kyll{\"o}nen and
                 Outi Salo",
  title =        "{Mobile-D}: an agile approach for mobile application
                 development",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "174--175",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Szep:2004:DDS,
  author =       "A. Szep and R. Smeikal and M. Jandl and K. M.
                 Goeschka",
  title =        "Dependable distributed systems",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "176--177",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Khaled:2004:VLO,
  author =       "Rilla Khaled and Anna Maria Luxton and James Noble and
                 Leo Ferres and Judy Brown and Robert Biddle",
  title =        "Visualisation for learning {OOP}, using {AOP} and
                 eclipse",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "178--179",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lippert:2004:AAEb,
  author =       "Martin Lippert",
  title =        "{AJEER}: an aspect{J}-enabled eclipse runtime",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "180--181",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vogler:2004:OMI,
  author =       "Gabriel V{\"o}gler and Thomas Flor and Hajo Eichler
                 and Matthias Kasprowicz",
  title =        "An open model infrastructure for automotive software",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "182--183",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Phattarasukol:2004:DPI,
  author =       "Somsak Phattarasukol and Daisy Sang",
  title =        "Design pattern integrated tool",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "184--185",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Stephenson:2004:AMO,
  author =       "Ben Stephenson and Wade Holst",
  title =        "Advancements in multicode optimization",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "186--187",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lancia:2004:JPA,
  author =       "Maurizio Lancia and Paola Garzenini and Roberto
                 Puccinelli and Alessio Marchetti",
  title =        "{J2EE} for the public administration: a success
                 story",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "188--189",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Holst:2004:MEU,
  author =       "Wade Holst",
  title =        "{Meta}: extending and unifying languages",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "190--191",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Amir:2004:UPS,
  author =       "Rafik Amir and Amir Zeid",
  title =        "A {UML} profile for service oriented architectures",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "192--193",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chan:2004:ATA,
  author =       "Hoi Chan and Trieu C. Chieu",
  title =        "An approach and tools to automate externalization of
                 application logic",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "194--195",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Skotiniotis:2004:CAC,
  author =       "Therapon Skotiniotis and David H. Lorenz",
  title =        "{Cona}: aspects for contracts and contracts for
                 aspects",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "196--197",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Freeman:2004:CAT,
  author =       "Russ Freeman and Phil Webb",
  title =        "{$<$CTRL$>$} + {$<$ALT$>$} + {$<$TOOL PARADIGM
                 SHIFT$>$}?",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "198--199",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Washizaki:2004:SSJ,
  author =       "Hironori Washizaki and Yoshiaki Fukazawa",
  title =        "A search system for {Java} programs by using extracted
                 {JavaBeans} components",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "200--201",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cole:2004:DRA,
  author =       "Leonardo Cole and Paulo Borba",
  title =        "Deriving refactorings for {aspectJ}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "202--203",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pugh:2004:RRW,
  author =       "Bill Pugh and Jaime Spacco",
  title =        "{RUBiS} revisited: why {J2EE} benchmarking is hard",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "204--205",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ueda:2004:MMA,
  author =       "Leo Kazuhiro Ueda and Fabio Kon",
  title =        "Mobile musical agents: the andante project",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "206--207",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bettini:2004:CCM,
  author =       "Lorenzo Bettini and Viviana Bono and Silvia Likavec",
  title =        "A core calculus of mixins and incomplete objects",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "208--209",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cabral:2004:RCI,
  author =       "Bruno Cabral and Paulo Marques and Lu{\'\i}s Silva",
  title =        "{RAIL}: code instrumentation for {.NET}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "210--211",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boshernitsan:2004:IIS,
  author =       "Marat Boshernitsan and Susan L. Graham",
  title =        "{iXj}: interactive source-to-source transformations
                 for {Java}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "212--213",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rheinheimer:2004:WAB,
  author =       "Leticia R. Rheinheimer and Junior M. Martins and
                 S{\'e}rgio Crespo C. S. Pinto",
  title =        "{WSAgent}: an agent based on {Web} services to promote
                 interoperability between heterogeneous systems in the
                 health domain",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "214--215",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kojarski:2004:AFC,
  author =       "Sergei Kojarski and David H. Lorenz",
  title =        "{AOP} as a first class reflective mechanism",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "216--217",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gokhale:2004:CAC,
  author =       "Aniruddha Gokhale and Krishnakumar Balasubramanian and
                 Tao Lu",
  title =        "{CoSMIC}: addressing crosscutting deployment and
                 configuration concerns of distributed real-time and
                 embedded systems",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "218--219",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hamza:2004:SSO,
  author =       "Haitham S. Hamza",
  title =        "{SODA}: a stability-oriented domain analysis method",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "220--221",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ivkovic:2004:MSP,
  author =       "Igor Ivkovic and Kostas Kontogiannis",
  title =        "Model synchronization as a problem of maximizing model
                 dependencies",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "222--223",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Holland:2004:RCD,
  author =       "Simon Holland",
  title =        "Reflective composition: the declarative composition of
                 roles to unify objects, roles, and aspects",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "224--225",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gestwicki:2004:JJI,
  author =       "Paul V. Gestwicki and Bharat Jayaraman",
  title =        "{JIVE}: {Java} interactive visualization environment",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "226--228",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McBride:2004:SAE,
  author =       "Matthew R. McBride",
  title =        "The software architect: essence, intuition, and
                 guiding principles",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "230--235",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Freeman:2004:MRO,
  author =       "Steve Freeman and Tim Mackinnon and Nat Pryce and Joe
                 Walnes",
  title =        "Mock roles, objects",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "236--246",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Berenbach:2004:CUT,
  author =       "Brian A. Berenbach",
  title =        "Comparison of {UML} and text based requirements
                 engineering",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "247--252",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Blotner:2004:PPP,
  author =       "Joseph A. Blotner",
  title =        "{PIP}: a product planning strategy for the whole
                 family or\ldots{} how we became the brady bunch",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "253--259",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Namioka:2004:EI,
  author =       "Aki Namioka and Cary Bran",
  title =        "{eXtreme ISO} ?!?",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "260--263",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Antion:2004:WRM,
  author =       "Daniel Antion",
  title =        "Why reuse matters: {ANI}'s digital archive system",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "264--267",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dvorak:2004:HRT,
  author =       "Daniel L. Dvorak and William K. Reinholtz",
  title =        "Hard real-time: {C++} versus {RTSJ}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "268--274",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Murphy-Hill:2004:TEL,
  author =       "Emerson R. Murphy-Hill and Andrew P. Black",
  title =        "{Traits}: experience with a language feature",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "275--282",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zimmermann:2004:SGW,
  author =       "Olaf Zimmermann and Sven Milinski and Michael Craes
                 and Frank Oellermann",
  title =        "Second generation {Web} services-oriented architecture
                 in production in the finance industry",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "283--289",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kainz:2004:MSD,
  author =       "Joachim F. Kainz",
  title =        "Migrating to simpler distributed applications",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "290--293",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Reimer:2004:VSP,
  author =       "Darrell Reimer and Edith Schonberg and Kavitha
                 Srinivas and Harini Srinivasan and Julian Dolby and
                 Aaron Kershenbaum and Larry Koved",
  title =        "Validating structural properties of nested objects",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "294--304",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bodden:2004:LLR,
  author =       "Eric Bodden",
  title =        "A lightweight {LTL} runtime verification tool for
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "306--307",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Salimi:2004:NGF,
  author =       "Hadi Salimi",
  title =        "{NGMF}: a generic framework for constructing
                 graph-based systems",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "308--309",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2004:SSE,
  author =       "Jing Zhang",
  title =        "Supporting software evolution through model-driven
                 program transformation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "310--311",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Trofin:2004:FRRb,
  author =       "Mircea Trofin",
  title =        "A framework for removing redundant context management
                 services in enterprise {JavaBeans} application
                 servers",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "312--313",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Roychoudhury:2004:LIAb,
  author =       "Suman Roychoudhury",
  title =        "A language-independent approach to software
                 maintenance using grammar adapters",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "314--315",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Parsons:2004:FDA,
  author =       "Trevor Parsons",
  title =        "A framework for detecting, assessing and visualizing
                 performance antipatterns in component based systems",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "316--317",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Silaghi:2004:RDAb,
  author =       "Raul Silaghi",
  title =        "Refining designs along middleware-specific
                 concern-dimensions at different {MDA}-levels of
                 abstraction",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "318--319",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Krishna:2004:EDO,
  author =       "Arvind S. Krishna",
  title =        "Enhancing distributed object middleware qualities",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "320--321",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xanthos:2004:IRC,
  author =       "Spiros Xanthos",
  title =        "Identification of reusable components within an
                 object-oriented software system using algebraic graph
                 theory",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "322--323",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xie:2004:AIC,
  author =       "Tao Xie",
  title =        "Automatic identification of common and special
                 object-oriented unit tests",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "324--325",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Keschenau:2004:REU,
  author =       "Martin Keschenau",
  title =        "Reverse engineering of {UML} specifications from
                 {Java} programs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "326--327",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Layman:2004:EII,
  author =       "Lucas Layman",
  title =        "Empirical investigation of the impact of extreme
                 programming practices on software projects",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "10",
  pages =        "328--329",
  month =        oct,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hammond:2004:PTC,
  author =       "Lance Hammond and Brian D. Carlstrom and Vicky Wong
                 and Ben Hertzberg and Mike Chen and Christos Kozyrakis
                 and Kunle Olukotun",
  title =        "Programming with transactional coherence and
                 consistency {(TCC)}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "1--13",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Budiu:2004:SC,
  author =       "Mihai Budiu and Girish Venkataramani and Tiberiu
                 Chelcea and Seth Copen Goldstein",
  title =        "Spatial computation",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "14--26",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ekanayake:2004:ULP,
  author =       "Virantha Ekanayake and Clinton {Kelly IV} and Rajit
                 Manohar",
  title =        "An ultra low-power processor for sensor networks",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "27--36",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lumb:2004:DSD,
  author =       "Christopher R. Lumb and Richard Golding",
  title =        "{D-SPTF}: decentralized request distribution in
                 brick-based storage systems",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "37--47",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Saito:2004:FBD,
  author =       "Yasushi Saito and Svend Fr{\o}lund and Alistair Veitch
                 and Arif Merchant and Susan Spence",
  title =        "{FAB}: building distributed enterprise disk arrays
                 from commodity components",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "48--58",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Denehy:2004:DSA,
  author =       "Timothy E. Denehy and John Bent and Florentina I.
                 Popovici and Andrea C. Arpaci-Dusseau and Remzi H.
                 Arpaci-Dusseau",
  title =        "Deconstructing storage arrays",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "59--71",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhuang:2004:HIE,
  author =       "Xiaotong Zhuang and Tao Zhang and Santosh Pande",
  title =        "{HIDE}: an infrastructure for efficiently protecting
                 information leakage on the address bus",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "72--84",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Suh:2004:SPE,
  author =       "G. Edward Suh and Jae W. Lee and David Zhang and
                 Srinivas Devadas",
  title =        "Secure program execution via dynamic information flow
                 tracking",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "85--96",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Huh:2004:CDM,
  author =       "Jaehyuk Huh and Jichuan Chang and Doug Burger and
                 Gurindar S. Sohi",
  title =        "Coherence decoupling: making use of incoherence",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "97--106",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Srinivasan:2004:CFP,
  author =       "Srikanth T. Srinivasan and Ravi Rajwar and Haitham
                 Akkary and Amit Gandhi and Mike Upton",
  title =        "Continual flow pipelines",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "107--119",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Desikan:2004:SSR,
  author =       "Rajagopalan Desikan and Simha Sethumadhavan and Doug
                 Burger and Stephen W. Keckler",
  title =        "Scalable selective re-execution for {EDGE}
                 architectures",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "120--132",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Regehr:2004:HSA,
  author =       "John Regehr and Alastair Reid",
  title =        "{HOIST}: a system for automatically deriving static
                 analyzers for embedded systems",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "133--143",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wang:2004:HTV,
  author =       "Perry H. Wang and Jamison D. Collins and Hong Wang and
                 Dongkeun Kim and Bill Greene and Kai-Ming Chan and
                 Aamir B. Yunus and Terry Sych and Stephen F. Moore and
                 John P. Shen",
  title =        "Helper threads via virtual multithreading on an
                 experimental {Itanium-2} processor-based platform",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "144--155",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hauswirth:2004:LOM,
  author =       "Matthias Hauswirth and Trishul M. Chilimbi",
  title =        "Low-overhead memory leak detection using adaptive
                 statistical profiling",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "156--164",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shen:2004:LPP,
  author =       "Xipeng Shen and Yutao Zhong and Chen Ding",
  title =        "Locality phase prediction",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "165--176",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhou:2004:DTP,
  author =       "Pin Zhou and Vivek Pandey and Jagadeesan Sundaresan
                 and Anand Raghuraman and Yuanyuan Zhou and Sanjeev
                 Kumar",
  title =        "Dynamic tracking of page miss ratio curve for memory
                 management",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "177--188",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rabbah:2004:COP,
  author =       "Rodric M. Rabbah and Hariharan Sandanagobalane and
                 Mongkol Ekpanyapong and Weng-Fai Wong",
  title =        "Compiler orchestrated prefetching via speculation and
                 predication",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "189--198",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cher:2004:SPM,
  author =       "Chen-Yong Cher and Antony L. Hosking and T. N.
                 Vijaykumar",
  title =        "Software prefetching for mark-sweep garbage
                 collection: hardware analysis and software redesign",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "199--210",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lowell:2004:DVM,
  author =       "David E. Lowell and Yasushi Saito and Eileen J.
                 Samberg",
  title =        "Devirtualizable virtual machines enabling general,
                 single-node, online maintenance",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "211--223",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Smolens:2004:FBS,
  author =       "Jared C. Smolens and Brian T. Gold and Jangwoo Kim and
                 Babak Falsafi and James C. Hoe and Andreas G.
                 Nowatzyk",
  title =        "Fingerprinting: bounding soft-error detection latency
                 and bandwidth",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "224--234",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bronevetsky:2004:ALC,
  author =       "Greg Bronevetsky and Daniel Marques and Keshav Pingali
                 and Peter Szwed and Martin Schulz",
  title =        "Application-level checkpointing for shared memory
                 programs",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "235--247",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wu:2004:FOM,
  author =       "Qiang Wu and Philo Juang and Margaret Martonosi and
                 Douglas W. Clark",
  title =        "Formal online methods for voltage\slash frequency
                 control in multiple clock domain microprocessors",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "248--259",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gomaa:2004:HRL,
  author =       "Mohamed Gomaa and Michael D. Powell and T. N.
                 Vijaykumar",
  title =        "Heat-and-run: leveraging {SMT} and {CMP} to manage
                 power density through the operating system",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "260--270",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2004:PDE,
  author =       "Xiaodong Li and Zhenmin Li and Francis David and Pin
                 Zhou and Yuanyuan Zhou and Sarita Adve and Sanjeev
                 Kumar",
  title =        "Performance directed energy management for main memory
                 and disks",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "271--283",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:A,
  author =       "Anonymous",
  title =        "Architecture",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "??--??",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:MSA,
  author =       "Anonymous",
  title =        "Memory system analysis and optimization",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "??--??",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:NMA,
  author =       "Anonymous",
  title =        "New models and architectures",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "??--??",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:Pa,
  author =       "Anonymous",
  title =        "Potpourri",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "??--??",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:Pb,
  author =       "Anonymous",
  title =        "Power",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "??--??",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:R,
  author =       "Anonymous",
  title =        "Reliability",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "??--??",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:Sa,
  author =       "Anonymous",
  title =        "Storage",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "??--??",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:Sb,
  author =       "Anonymous",
  title =        "Security",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "11",
  pages =        "??--??",
  month =        nov,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2004:FAR,
  author =       "Paul Frenger",
  title =        "{Forth} and {AI} revisited: {BRAIN.FORTH}",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "11--16",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cabana:2004:PPJ,
  author =       "Brian Cabana and Suad Alagi{\'c} and Jeff Faulkner",
  title =        "Parametric polymorphism for {Java}: is there any hope
                 in sight?",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "22--31",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hughes:2004:CSS,
  author =       "Elliott Hughes",
  title =        "Checking spelling in source code",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "32--38",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Noble:2004:NNPb,
  author =       "James Noble and Robert Biddle",
  title =        "Notes on notes on postmodern programming",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "40--56",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{West:2004:LLAb,
  author =       "David West",
  title =        "Looking for love (in all the wrong places)",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "57--63",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Marick:2004:MWOb,
  author =       "Brian Marick",
  title =        "Methodology work is ontology work",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "64--72",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Singh:2004:PPPb,
  author =       "Munindar P. Singh and Amit K. Chopra and Nirmit Desai
                 and Ashok U. Mallya",
  title =        "Protocols for processes: programming in the large for
                 open systems",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "73--83",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Edwards:2004:ECPb,
  author =       "Jonathan Edwards",
  title =        "Example centric programming",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "84--91",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hovemeyer:2004:FBEb,
  author =       "David Hovemeyer and William Pugh",
  title =        "Finding bugs is easy",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "92--106",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhao:2004:GOPb,
  author =       "Yinliang Zhao",
  title =        "Granule-oriented programming",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "107--118",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sheard:2004:LFb,
  author =       "Tim Sheard",
  title =        "Languages of the future",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "119--132",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:FRb,
  author =       "Anonymous",
  title =        "{Forth} report",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "??--??",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2004:OO,
  author =       "Anonymous",
  title =        "{OOPSLA} onward!",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "12",
  pages =        "??--??",
  month =        dec,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:14 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chakravarty:2005:ATC,
  author =       "Manuel M. T. Chakravarty and Gabriele Keller and Simon
                 Peyton Jones and Simon Marlow",
  title =        "Associated types with class",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "1--13",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cobbe:2005:EAR,
  author =       "Richard Cobbe and Matthias Felleisen",
  title =        "Environmental acquisition revisited",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "14--25",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ancona:2005:PBC,
  author =       "Davide Ancona and Ferruccio Damiani and Sophia
                 Drossopoulou and Elena Zucca",
  title =        "Polymorphic bytecode: compositional compilation for
                 {Java}-like languages",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "26--37",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2005:STI,
  author =       "Juan Chen and David Tarditi",
  title =        "A simple typed intermediate language for
                 object-oriented languages",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "38--49",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hosoya:2005:PPX,
  author =       "Haruo Hosoya and Alain Frisch and Giuseppe Castagna",
  title =        "Parametric polymorphism for {XML}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "50--62",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sumii:2005:BTA,
  author =       "Eijiro Sumii and Benjamin C. Pierce",
  title =        "A bisimulation for type abstraction and recursion",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "63--74",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Goguen:2005:SAE,
  author =       "Healfdene Goguen",
  title =        "A syntactic approach to eta equality in type theory",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "75--84",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ghica:2005:SGQ,
  author =       "Dan R. Ghica",
  title =        "Slot games: a quantitative model of computation",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "85--97",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Alur:2005:SIS,
  author =       "Rajeev Alur and Pavol {\v{C}}ern{\'y} and P.
                 Madhusudan and Wonhong Nam",
  title =        "Synthesis of interface specifications for {Java}
                 classes",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "98--109",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2005:DPO,
  author =       "Cormac Flanagan and Patrice Godefroid",
  title =        "Dynamic partial-order reduction for model checking
                 software",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "110--121",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Grumberg:2005:PGU,
  author =       "Orna Grumberg and Flavio Lerda and Ofer Strichman and
                 Michael Theobald",
  title =        "Proof-guided underapproximation-widening for
                 multi-process systems",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "122--131",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Podelski:2005:TPA,
  author =       "Andreas Podelski and Andrey Rybalchenko",
  title =        "Transition predicate abstraction and fair
                 termination",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "132--144",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gay:2005:CQP,
  author =       "Simon J. Gay and Rajagopal Nagarajan",
  title =        "Communicating quantum processes",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "145--157",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2005:DPR,
  author =       "Peng Li and Steve Zdancewic",
  title =        "Downgrading policies and relaxed noninterference",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "158--170",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Park:2005:PLB,
  author =       "Sungwoo Park and Frank Pfenning and Sebastian Thrun",
  title =        "A probabilistic language based upon sampling
                 functions",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "171--182",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Stoyle:2005:MMS,
  author =       "Gareth Stoyle and Michael Hicks and Gavin Bierman and
                 Peter Sewell and Iulian Neamtiu",
  title =        "Mutatis mutandis: safe and predictable dynamic
                 software updating",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "183--194",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Field:2005:TPM,
  author =       "John Field and Carlos A. Varela",
  title =        "{Transactors}: a programming model for maintaining
                 globally consistent distributed state in unreliable
                 environments",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "195--208",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bruni:2005:TFC,
  author =       "Roberto Bruni and Hern{\'a}n Melgratti and Ugo
                 Montanari",
  title =        "Theoretical foundations for compensations in flow
                 composition languages",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "209--220",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Neubauer:2005:SPM,
  author =       "Matthias Neubauer and Peter Thiemann",
  title =        "From sequential programs to multi-tier applications by
                 program transformation",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "221--232",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Foster:2005:CBD,
  author =       "J. Nathan Foster and Michael B. Greenwald and Jonathan
                 T. Moore and Benjamin C. Pierce and Alan Schmitt",
  title =        "Combinators for bi-directional tree transformations: a
                 linguistic approach to the view update problem",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "233--246",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Parkinson:2005:SLA,
  author =       "Matthew Parkinson and Gavin Bierman",
  title =        "Separation logic and abstraction",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "247--258",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bornat:2005:PAS,
  author =       "Richard Bornat and Cristiano Calcagno and Peter
                 O'Hearn and Matthew Parkinson",
  title =        "Permission accounting in separation logic",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "259--270",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Calcagno:2005:CLT,
  author =       "Cristiano Calcagno and Philippa Gardner and Uri
                 Zarfaty",
  title =        "Context logic and tree update",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "271--282",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boyland:2005:CEU,
  author =       "John Tang Boyland and William Retert",
  title =        "Connecting effects and uniqueness with adoption",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "283--295",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rinetzky:2005:SPL,
  author =       "Noam Rinetzky and J{\"o}rg Bauer and Thomas Reps and
                 Mooly Sagiv and Reinhard Wilhelm",
  title =        "A semantics for procedure local heaps and its
                 abstractions",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "296--309",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hackett:2005:RBS,
  author =       "Brian Hackett and Radu Rugina",
  title =        "Region-based shape analysis with tracked locations",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "310--323",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gulwani:2005:PIA,
  author =       "Sumit Gulwani and George C. Necula",
  title =        "Precise interprocedural analysis using random
                 interpretation",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "324--337",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gopan:2005:FNA,
  author =       "Denis Gopan and Thomas Reps and Mooly Sagiv",
  title =        "A framework for numeric analysis of array operations",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "338--350",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xie:2005:SED,
  author =       "Yichen Xie and Alex Aiken",
  title =        "Scalable error detection using boolean
                 satisfiability",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "351--363",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lerner:2005:ASP,
  author =       "Sorin Lerner and Todd Millstein and Erika Rice and
                 Craig Chambers",
  title =        "Automated soundness proofs for dataflow analyses and
                 transformations via local rules",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "364--377",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Manson:2005:JMM,
  author =       "Jeremy Manson and William Pugh and Sarita V. Adve",
  title =        "The {Java} memory model",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "1",
  pages =        "378--391",
  month =        jan,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2005:TIP,
  author =       "Paul Frenger",
  title =        "{Tina}: an improbable $3$-pin microcontroller",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "2",
  pages =        "5--10",
  month =        feb,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Badjonski:2005:AJA,
  author =       "Mihal Badjonski and Mirjana Ivanovic and Zoran
                 Budimac",
  title =        "Adaptable {Java Agents (AJA)}: a tool for programming
                 of multi-agent systems",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "2",
  pages =        "17--26",
  month =        feb,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jiang:2005:ERO,
  author =       "Shujuan Jiang and Baowen Xu",
  title =        "An efficient and reliable object-oriented exception
                 handling mechanism",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "2",
  pages =        "27--32",
  month =        feb,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shaw:2005:LDO,
  author =       "Sachin Shaw and Pawan Kumar",
  title =        "Loop-dead optimization",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "2",
  pages =        "33--40",
  month =        feb,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zerzelidis:2005:RRT,
  author =       "A. Zerzelidis and A. J. Wellings",
  title =        "Requirements for a real-time {.NET} framework",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "2",
  pages =        "41--50",
  month =        feb,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2005:F,
  author =       "Anonymous",
  title =        "{Forth}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "2",
  pages =        "??--??",
  month =        feb,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2005:TC,
  author =       "Anonymous",
  title =        "Technical correspondence",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "2",
  pages =        "??--??",
  month =        feb,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Proulx:2005:CPD,
  author =       "Viera K. Proulx and Tanya Cashorali",
  title =        "Calculator problem and the design recipe",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "3",
  pages =        "4--11",
  month =        mar,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mueller:2005:ACM,
  author =       "Conrad Mueller",
  title =        "Axiomatic computational model",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "3",
  pages =        "29--39",
  month =        mar,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xian:2005:MMR,
  author =       "Yuqiang Xian and Guangze Xiong",
  title =        "Minimizing memory requirement of real-time systems
                 with concurrent garbage collector",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "3",
  pages =        "40--48",
  month =        mar,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Anonymous:2005:CP,
  author =       "Anonymous",
  title =        "Circular patterns",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "3",
  pages =        "??--??",
  month =        mar,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Apr 12 09:38:15 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2005:TFY,
  author =       "Paul Frenger",
  title =        "Tired by {Forth}?: you should be!",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "4",
  pages =        "5--8",
  month =        apr,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Saitou:2005:DAI,
  author =       "Tetsuo Saitou and Mitsugu Suzuki and Tan Watanabe",
  title =        "Dominance analysis of irreducible {CFGs} by
                 reduction",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "4",
  pages =        "10--19",
  month =        apr,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Beloglavec:2005:ALM,
  author =       "Simon Beloglavec and Marjan Heri{\v{c}}ko and
                 Matja{\v{z}} B. Juri{\v{c}} and Ivan Rozman",
  title =        "Analysis of the limitations of multiple client
                 handling in a {Java} server environment",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "4",
  pages =        "20--28",
  month =        apr,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Crepinsek:2005:EGPa,
  author =       "Matej {\v{C}}repin{\v{s}}ek and Marjan Mernik and
                 Viljem {\v{Z}}umer",
  title =        "Extracting grammar from programs: brute force
                 approach",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "4",
  pages =        "29--38",
  month =        apr,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Crepinsek:2005:EGPb,
  author =       "Matej {\v{C}}repin{\v{s}}ek and Marjan Mernik and
                 Faizan Javed and Barrett R. Bryant and Alan Sprague",
  title =        "Extracting grammar from programs: evolutionary
                 approach",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "4",
  pages =        "39--46",
  month =        apr,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{vanderSpek:2005:SER,
  author =       "P. van der Spek and N. Plat and C. Pronk",
  title =        "Syntax error repair for a {Java}-based parser
                 generator",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "4",
  pages =        "47--50",
  month =        apr,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bulic:2005:EWF,
  author =       "Patricio Buli{\'c} and Veselko Gu{\v{s}}tin",
  title =        "An efficient way to filter out data dependences with a
                 sufficiently large distance between memory references",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "4",
  pages =        "51--60",
  month =        apr,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gluck:2005:RAP,
  author =       "Robert Gl{\"u}ck and Masahiko Kawabe",
  title =        "Revisiting an automatic program inverter for {Lisp}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "5",
  pages =        "8--17",
  month =        may,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:21 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kumar:2005:RMS,
  author =       "Rajeev Kumar and Vikram Agrawal and Anil Mangolia",
  title =        "Realization of multimethods in single dispatch object
                 oriented languages",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "5",
  pages =        "18--27",
  month =        may,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:21 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sunik:2005:SL,
  author =       "Boris Sunik",
  title =        "The specification language {$T$}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "5",
  pages =        "28--38",
  month =        may,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:21 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Derk:2005:TSM,
  author =       "M. D. Derk",
  title =        "Towards a simpler method of operational semantics for
                 language definition",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "5",
  pages =        "39--44",
  month =        may,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:21 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Barbosa:2005:RPT,
  author =       "Manuel Barbosa and Alcino Cunha and Jorge Sousa
                 Pinto",
  title =        "Recursion patterns and time-analysis",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "5",
  pages =        "45--54",
  month =        may,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:21 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xu:2005:SVD,
  author =       "Min Xu and Rastislav Bod{\'\i}k and Mark D. Hill",
  title =        "A serializability violation detector for shared-memory
                 server programs",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "1--14",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liblit:2005:SSB,
  author =       "Ben Liblit and Mayur Naik and Alice X. Zheng and Alex
                 Aiken and Michael I. Jordan",
  title =        "Scalable statistical bug isolation",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "15--26",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Elmas:2005:VVC,
  author =       "Tayfun Elmas and Serdar Tasiran and Shaz Qadeer",
  title =        "{VYRD}: {VerifYing} concurrent programs by runtime
                 {Refinement}-violation {Detection}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "27--37",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jhala:2005:PS,
  author =       "Ranjit Jhala and Rupak Majumdar",
  title =        "Path slicing",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "38--47",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mandelin:2005:JMH,
  author =       "David Mandelin and Lin Xu and Rastislav Bod{\'\i}k and
                 Doug Kimelman",
  title =        "Jungloid mining: helping to navigate the {API}
                 jungle",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "48--61",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Furr:2005:CTS,
  author =       "Michael Furr and Jeffrey S. Foster",
  title =        "Checking type safety of foreign function calls",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "62--72",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Siek:2005:ELS,
  author =       "Jeremy Siek and Andrew Lumsdaine",
  title =        "Essential language support for generic programming",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "73--84",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chin:2005:STQ,
  author =       "Brian Chin and Shane Markstrum and Todd Millstein",
  title =        "Semantic type qualifiers",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "85--95",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Krishnaswami:2005:PBO,
  author =       "Neel Krishnaswami and Jonathan Aldrich",
  title =        "Permission-based ownership: encapsulating state in
                 higher-order typed languages",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "96--106",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jimenez:2005:CPI,
  author =       "Daniel A. Jim{\'e}nez",
  title =        "Code placement for improving dynamic branch prediction
                 accuracy",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "107--116",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Avgustinov:2005:OA,
  author =       "Pavel Avgustinov and Aske Simon Christensen and Laurie
                 Hendren and Sascha Kuzins and Jennifer Lhot{\'a}k and
                 Ond{\v{r}}ej Lhot{\'a}k and Oege de Moor and Damien
                 Sereni and Ganesh Sittampalam and Julian Tibble",
  title =        "Optimising {aspectJ}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "117--128",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lattner:2005:APA,
  author =       "Chris Lattner and Vikram Adve",
  title =        "Automatic pool allocation: improving performance by
                 controlling data structure layout in the heap",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "129--142",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hertz:2005:GCP,
  author =       "Matthew Hertz and Yi Feng and Emery D. Berger",
  title =        "Garbage collection without paging",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "143--153",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rong:2005:RAS,
  author =       "Hongbo Rong and Alban Douillet and Guang R. Gao",
  title =        "Register allocation for software pipelined
                 multi-dimensional loops",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "154--167",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhuang:2005:DRA,
  author =       "Xiaotong Zhuang and Santosh Pande",
  title =        "Differential register allocation",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "168--179",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Aleta:2005:DFS,
  author =       "Alex Alet{\`a} and Josep M. Codina and Antonio
                 Gonz{\`a}lez and David Kaeli",
  title =        "Demystifying on-the-fly spill code",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "180--189",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Luk:2005:PBC,
  author =       "Chi-Keung Luk and Robert Cohn and Robert Muth and
                 Harish Patil and Artur Klauser and Geoff Lowney and
                 Steven Wallace and Vijay Janapa Reddi and Kim
                 Hazelwood",
  title =        "{Pin}: building customized program analysis tools with
                 dynamic instrumentation",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "190--200",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ayers:2005:TFF,
  author =       "Andrew Ayers and Richard Schooler and Chris Metcalf
                 and Anant Agarwal and Junghwan Rhee and Emmett
                 Witchel",
  title =        "{TraceBack}: first fault diagnosis by reconstruction
                 of distributed control flow",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "201--212",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Godefroid:2005:DDA,
  author =       "Patrice Godefroid and Nils Klarlund and Koushik Sen",
  title =        "{DART}: directed automated random testing",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "213--223",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2005:SAH,
  author =       "Michael K. Chen and Xiao Feng Li and Ruiqi Lian and
                 Jason H. Lin and Lixia Liu and Tao Liu and Roy Ju",
  title =        "{Shangri-La}: achieving high performance from compiled
                 network applications while enabling ease of
                 programming",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "224--236",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dai:2005:APP,
  author =       "Jinquan Dai and Bo Huang and Long Li and Luddy
                 Harrison",
  title =        "Automatically partitioning packet processing
                 applications for pipelined architectures",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "237--248",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ni:2005:PAH,
  author =       "Yang Ni and Ulrich Kremer and Adrian Stere and Liviu
                 Iftode",
  title =        "Programming ad-hoc networks of mobile and
                 resource-constrained devices",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "249--260",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Boehm:2005:TCI,
  author =       "Hans-J. Boehm",
  title =        "Threads cannot be implemented as a library",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "261--268",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1065010.1065042",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In many environments, multi-threaded code is written
                 in a language that was originally designed without
                 thread support (e.g. C), to which a library of
                 threading primitives was subsequently added. There
                 appears to be a general understanding that this is not
                 the right approach. We provide specific arguments that
                 a pure library approach, in which the compiler is
                 designed independently of threading issues, cannot
                 guarantee correctness of the resulting code. We first
                 review why the approach almost works, and then examine
                 some of the surprising behavior it may entail. We
                 further illustrate that there are very simple cases in
                 which a pure library-based approach seems incapable of
                 expressing an efficient parallel algorithm. Our
                 discussion takes place in the context of C with
                 Pthreads, since it is commonly used, reasonably well
                 specified, and does not attempt to ensure type-safety,
                 which would entail even stronger constraints. The
                 issues we raise are not specific to that context.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "This is an important paper: it shows that current
                 languages cannot be reliable for threaded programming
                 without language changes that prevent compiler
                 optimizations from foiling synchronization methods and
                 memory barriers. The article's author and others are
                 collaborating on a proposal for changes to the C++
                 language to remedy this, but that still leaves threads
                 unreliable in C code, even with POSIX threads.",
}

@Article{Quinones:2005:MCI,
  author =       "Carlos Garc{\'\i}a Qui{\~n}ones and Carlos Madriles
                 and Jes{\'u}s S{\'a}nchez and Pedro Marcuello and
                 Antonio Gonz{\'a}lez and Dean M. Tullsen",
  title =        "{Mitosis} compiler: an infrastructure for speculative
                 threading based on pre-computation slices",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "269--279",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Solar-Lezama:2005:PSB,
  author =       "Armando Solar-Lezama and Rodric Rabbah and Rastislav
                 Bod{\'\i}k and Kemal Ebcio{\u{g}}lu",
  title =        "Programming by sketching for bit-streaming programs",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "281--294",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fisher:2005:PDS,
  author =       "Kathleen Fisher and Robert Gruber",
  title =        "{PADS}: a domain-specific language for processing ad
                 hoc data",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "295--304",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bauer:2005:CSP,
  author =       "Lujo Bauer and Jay Ligatti and David Walker",
  title =        "Composing security policies with polymer",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "305--314",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Franchetti:2005:FLM,
  author =       "Franz Franchetti and Yevgen Voronenko and Markus
                 P{\"u}schel",
  title =        "Formal loop merging for signal transforms",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "6",
  pages =        "315--326",
  month =        jun,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 21 17:04:05 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xu:2005:EEP,
  author =       "Ruibin Xu and Dakai Zhu and Cosmin Rusu and Rami
                 Melhem and Daniel Moss{\'e}",
  title =        "Energy-efficient policies for embedded clusters",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "1--10",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhang:2005:EAM,
  author =       "Kun Zhang and Santosh Pande",
  title =        "Efficient application migration under compiler
                 guidance",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "10--20",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Henzinger:2005:CCG,
  author =       "Thomas A. Henzinger and Christoph M. Kirsch and
                 Slobodan Matic",
  title =        "Composable code generation for distributed giotto",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "21--30",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Farcas:2005:TDR,
  author =       "Emilia Farcas and Claudiu Farcas and Wolfgang Pree and
                 Josef Templ",
  title =        "Transparent distribution of real-time components based
                 on logical execution time",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "31--39",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gay:2005:SDP,
  author =       "David Gay and Phil Levis and David Culler",
  title =        "Software design patterns for {TinyOS}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "40--49",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Regehr:2005:PIO,
  author =       "John Regehr and Usit Duongsaa",
  title =        "Preventing interrupt overload",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "50--58",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Titzer:2005:NPI,
  author =       "Ben L. Titzer and Jens Palsberg",
  title =        "Nonintrusive precision instrumentation of
                 microcontroller software",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "59--68",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cooper:2005:AAC,
  author =       "Keith D. Cooper and Alexander Grosul and Timothy J.
                 Harvey and Steven Reeves and Devika Subramanian and
                 Linda Torczon and Todd Waterman",
  title =        "{ACME}: adaptive compilation made efficient",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "69--77",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Franke:2005:PSL,
  author =       "Bj{\"o}rn Franke and Michael O'Boyle and John Thomson
                 and Grigori Fursin",
  title =        "Probabilistic source-level optimisation of embedded
                 programs",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "78--86",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Oi:2005:DLV,
  author =       "Hitoshi Oi",
  title =        "On the design of the local variable cache in a
                 hardware translation-based {Java Virtual Machine}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "87--94",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chanet:2005:SWC,
  author =       "Dominique Chanet and Bjorn {De Sutter} and Bruno {De
                 Bus} and Ludo {Van Put} and Koen {De Bosschere}",
  title =        "System-wide compaction and specialization of the
                 {Linux} kernel",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "95--104",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Brisk:2005:DCT,
  author =       "Philip Brisk and Jamie Macbeth and Ani Nahapetian and
                 Majid Sarrafzadeh",
  title =        "A dictionary construction technique for code
                 compression systems with echo instructions",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "105--114",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sermulins:2005:CAO,
  author =       "Janis Sermulins and William Thies and Rodric Rabbah
                 and Saman Amarasinghe",
  title =        "Cache aware optimization of stream programs",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "115--126",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sassone:2005:SSS,
  author =       "Peter G. Sassone and D. Scott Wills and Gabriel H.
                 Loh",
  title =        "Static strands: safely collapsing dependence chains
                 for increasing embedded power efficiency",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "127--136",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{So:2005:CSP,
  author =       "Won So and Alexander G. Dean",
  title =        "Complementing software pipelining with software thread
                 integration",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "137--146",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kudriavtsev:2005:GPS,
  author =       "Alexei Kudriavtsev and Peter Kogge",
  title =        "Generation of permutations for {SIMD} processors",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "147--156",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Staschulat:2005:SPC,
  author =       "Jan Staschulat and Rolf Ernst",
  title =        "Scalable precision cache analysis for preemptive
                 scheduling",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "157--165",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xu:2005:SBC,
  author =       "Rong Xu and Zhiyuan Li",
  title =        "A sample-based cache mapping scheme",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "166--174",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tan:2005:WAU,
  author =       "Yudong Tan and Vincent J. {Mooney III}",
  title =        "{WCRT} analysis for a uniprocessor with a unified
                 prioritized cache",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "175--182",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bacon:2005:SGR,
  author =       "David F. Bacon and Perry Cheng and David Grove and
                 Martin T. Vechev",
  title =        "{Syncopation}: generational real-time garbage
                 collection in the metronome",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "183--192",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mann:2005:SDA,
  author =       "Tobias Mann and Morgan Deters and Rob LeGrand and Ron
                 K. Cytron",
  title =        "Static determination of allocation rates to support
                 real-time garbage collection",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "193--202",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zhu:2005:FES,
  author =       "Yifan Zhu and Frank Mueller",
  title =        "Feedback {EDF} scheduling exploiting hardware-assisted
                 asynchronous dynamic voltage scaling",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "203--212",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kandemir:2005:CME,
  author =       "Mahmut Kandemir and Guangyu Chen and Ismail Kadayif",
  title =        "Compiling for memory emergency",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "213--221",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Defoe:2005:UBD,
  author =       "Delvin C. Defoe and Sharath R. Cholleti and Ron K.
                 Cytron",
  title =        "Upper bound for defragmenting buddy heaps",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "222--229",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Griffin:2005:EEG,
  author =       "Paul Griffin and Witawas Srisa-an and J. Morris
                 Chang",
  title =        "An energy efficient garbage collector for {Java}
                 embedded devices",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "7",
  pages =        "230--238",
  month =        jul,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2005:FSF,
  author =       "Paul Frenger",
  title =        "{Forth} sorts fruit down under",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "8",
  pages =        "7--10",
  month =        aug,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Furlong:2005:HSA,
  author =       "Jeff Furlong and Atanas Radenski",
  title =        "Handling the subclassing anomaly with {Object Teams}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "8",
  pages =        "12--18",
  month =        aug,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Greiner:2005:ZTE,
  author =       "Saso Greiner and Damijan Rebernak and Janez Brest and
                 Viljem Zumer",
  title =        "{Z0} --- a tiny experimental language",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "8",
  pages =        "19--28",
  month =        aug,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Draheim:2005:GPC,
  author =       "Dirk Draheim and Christof Lutteroth and Gerald Weber",
  title =        "Generative programming for {C\#}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "8",
  pages =        "29--33",
  month =        aug,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jiang:2005:AAT,
  author =       "Shujuan Jiang and Yongping Zhang and Dashun Yan and
                 Yuanpeng Jiang",
  title =        "An approach to automatic testing exception handling",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "8",
  pages =        "34--39",
  month =        aug,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 5 07:55:13 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pottier:2005:MTI,
  author =       "Fran{\c{c}}ois Pottier",
  title =        "From {ML} type inference to stratified type
                 inference",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "1--1",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shivers:2005:ALS,
  author =       "Olin Shivers",
  title =        "The anatomy of a loop: a story of scope and control",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "2--14",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sewell:2005:AHL,
  author =       "Peter Sewell and James J. Leifer and Keith Wansbrough
                 and Francesco Zappa Nardelli and Mair Allen-Williams
                 and Pierre Habouzit and Viktor Vafeiadis",
  title =        "{Acute}: high-level programming language design for
                 distributed computation",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "15--26",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramsey:2005:ELS,
  author =       "Norman Ramsey and Kathleen Fisher and Paul Govereau",
  title =        "An expressive language of signatures",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "27--40",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dreyer:2005:RTG,
  author =       "Derek Dreyer",
  title =        "Recursive type generativity",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "41--53",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nilsson:2005:DOF,
  author =       "Henrik Nilsson",
  title =        "Dynamic optimization for functional reactive
                 programming using generalized algebraic data types",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "54--65",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chen:2005:CPT,
  author =       "Chiyan Chen and Hongwei Xi",
  title =        "Combining programming with theorem proving",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "66--77",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ahmed:2005:SIM,
  author =       "Amal Ahmed and Matthew Fluet and Greg Morrisett",
  title =        "A step-indexed model of substructural state",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "78--91",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ringenburg:2005:AFC,
  author =       "Michael F. Ringenburg and Dan Grossman",
  title =        "{AtomCaml}: first-class atomicity via rollback",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "92--104",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Terauchi:2005:WSE,
  author =       "Tachio Terauchi and Alex Aiken",
  title =        "Witnessing side-effects",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "105--115",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hallgren:2005:PAO,
  author =       "Thomas Hallgren and Mark P. Jones and Rebekah Leslie
                 and Andrew Tolmach",
  title =        "A principled approach to operating system construction
                 in {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "116--128",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Eich:2005:JTY,
  author =       "Brendan Eich",
  title =        "{JavaScript} at ten years",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "129--129",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Remy:2005:SPT,
  author =       "Didier R{\'e}my",
  title =        "Simple, partial type-inference for {System F} based on
                 type-containment",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "130--143",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Leijen:2005:QTM,
  author =       "Daan Leijen and Andres L{\"o}h",
  title =        "Qualified types for {MLF}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "144--155",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Makholm:2005:TIP,
  author =       "Henning Makholm and J. B. Wells",
  title =        "Type inference, principal typings, and
                 let-polymorphism for first-class mixin modules",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "156--167",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Diatchki:2005:HLV,
  author =       "Iavor S. Diatchki and Mark P. Jones and Rebekah
                 Leslie",
  title =        "High-level views on low-level representations",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "168--179",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cheney:2005:SYN,
  author =       "James Cheney",
  title =        "Scrap your nameplate: (functional pearl)",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "180--191",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kiselyov:2005:BIT,
  author =       "Oleg Kiselyov and Chung-chieh Shan and Daniel P.
                 Friedman and Amr Sabry",
  title =        "Backtracking, interleaving, and terminating monad
                 transformers: (functional pearl)",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "192--203",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lammel:2005:SYB,
  author =       "Ralf L{\"a}mmel and Simon Peyton Jones",
  title =        "Scrap your boilerplate with class: extensible generic
                 functions",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "204--215",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pettyjohn:2005:CGS,
  author =       "Greg Pettyjohn and John Clements and Joe Marshall and
                 Shriram Krishnamurthi and Matthias Felleisen",
  title =        "Continuations from generalized stack inspection",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "216--227",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramos:2005:FND,
  author =       "J. Guadalupe Ramos and Josep Silva and Germ{\'a}n
                 Vidal",
  title =        "Fast narrowing-driven partial evaluation for
                 inductively sequential programs",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "228--239",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Harper:2005:MMT,
  author =       "Robert Harper",
  title =        "Mechanizing the meta-theory of programming languages",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "240--240",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chakravarty:2005:ATS,
  author =       "Manuel M. T. Chakravarty and Gabriele Keller and Simon
                 Peyton Jones",
  title =        "Associated type synonyms",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "241--253",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Feng:2005:MVC,
  author =       "Xinyu Feng and Zhong Shao",
  title =        "Modular verification of concurrent assembly code with
                 dynamic thread creation and termination",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "254--267",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Westbrook:2005:LBA,
  author =       "Edwin Westbrook and Aaron Stump and Ian Wehrman",
  title =        "A language-based approach to functionally correct
                 imperative programming",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "268--279",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Berger:2005:LAA,
  author =       "Martin Berger and Kohei Honda and Nobuko Yoshida",
  title =        "A logical analysis of aliasing in imperative
                 higher-order functions",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "280--293",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ghani:2005:MAG,
  author =       "Neil Ghani and Patricia Johann and Tarmo Uustalu and
                 Varmo Vene",
  title =        "Monadic augment and generalised short cut fusion",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "294--305",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dantas:2005:PPA,
  author =       "Daniel S. Dantas and David Walker and Geoffrey
                 Washburn and Stephanie Weirich",
  title =        "{PolyAML}: a polymorphic aspect-oriented functional
                 programming language",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "306--319",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Masuhara:2005:ACA,
  author =       "Hidehiko Masuhara and Hideaki Tatsuzawa and Akinori
                 Yonezawa",
  title =        "Aspectual {Caml}: an aspect-oriented functional
                 language",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "9",
  pages =        "320--330",
  month =        sep,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 7 15:09:34 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jarvi:2005:ATC,
  author =       "Jaakko J{\"a}rvi and Jeremiah Willcock and Andrew
                 Lumsdaine",
  title =        "Associated types and constraint propagation for
                 mainstream object-oriented generics",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "1--19",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kennedy:2005:GAD,
  author =       "Andrew Kennedy and Claudio V. Russo",
  title =        "Generalized algebraic data types and object-oriented
                 programming",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "21--40",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Odersky:2005:SCA,
  author =       "Martin Odersky and Matthias Zenger",
  title =        "Scalable component abstractions",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "41--57",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sridharan:2005:DDP,
  author =       "Manu Sridharan and Denis Gopan and Lexin Shan and
                 Rastislav Bod{\'\i}k",
  title =        "Demand-driven points-to analysis for {Java}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "59--76",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nanda:2005:DOT,
  author =       "Mangala Gowri Nanda and Christian Grothoff and Satish
                 Chandra",
  title =        "Deriving object typestates in the presence of
                 inter-object references",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "77--96",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gil:2005:MPJ,
  author =       "Joseph (Yossi) Gil and Itay Maman",
  title =        "Micro patterns in {Java} code",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "97--116",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Diaz-Pace:2005:AAS,
  author =       "J. Andr{\'e}s D{\'\i}az-Pace and Marcelo R. Campo",
  title =        "{ArchMatE}: from architectural styles to
                 object-oriented models through exploratory tool
                 support",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "117--132",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zdun:2005:MAP,
  author =       "Uwe Zdun and Paris Avgeriou",
  title =        "Modeling architectural patterns using architectural
                 primitives",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "133--146",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Oancea:2005:PPS,
  author =       "Cosmin E. Oancea and Stephen M. Watt",
  title =        "Parametric polymorphism for software component
                 architectures",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "147--166",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sangal:2005:UDM,
  author =       "Neeraj Sangal and Ev Jordan and Vineet Sinha and
                 Daniel Jackson",
  title =        "Using dependency models to manage complex software
                 architecture",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "167--176",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bergel:2005:CJC,
  author =       "Alexandre Bergel and St{\'e}phane Ducasse and Oscar
                 Nierstrasz",
  title =        "{Classbox\slash J}: controlling the scope of change in
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "177--189",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liu:2005:IBP,
  author =       "Yu David Liu and Scott F. Smith",
  title =        "Interaction-based programming with classages",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "191--209",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Tschantz:2005:JAR,
  author =       "Matthew S. Tschantz and Michael D. Ernst",
  title =        "{Javari}: adding reference immutability to {Java}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "211--230",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gray:2005:FGI,
  author =       "Kathryn E. Gray and Robert Bruce Findler and Matthew
                 Flatt",
  title =        "Fine-grained interoperability through mirrors and
                 contracts",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "231--245",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kojarski:2005:PAD,
  author =       "Sergei Kojarski and David H. Lorenz",
  title =        "Pluggable {AOP}: designing aspect mechanisms for
                 third-party composition",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "247--263",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Balaban:2005:RSC,
  author =       "Ittai Balaban and Frank Tip and Robert Fuhrer",
  title =        "Refactoring support for class library migration",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "265--279",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hauswirth:2005:AVP,
  author =       "Matthias Hauswirth and Amer Diwan and Peter F. Sweeney
                 and Michael C. Mozer",
  title =        "Automating vertical profiling",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "281--296",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Arnold:2005:IVM,
  author =       "Matthew Arnold and Adam Welc and V. T. Rajan",
  title =        "Improving virtual machine performance using a
                 cross-run profile repository",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "297--311",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hertz:2005:QPG,
  author =       "Matthew Hertz and Emery D. Berger",
  title =        "Quantifying the performance of garbage collection vs.
                 explicit memory management",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "313--326",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shankar:2005:RSO,
  author =       "Ajeet Shankar and S. Subramanya Sastry and Rastislav
                 Bod{\'\i}k and James E. Smith",
  title =        "Runtime specialization with optimistic heap analysis",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "327--343",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Allan:2005:ATM,
  author =       "Chris Allan and Pavel Avgustinov and Aske Simon
                 Christensen and Laurie Hendren and Sascha Kuzins and
                 Ond{\v{r}}ej Lhot{\'a}k and Oege de Moor and Damien
                 Sereni and Ganesh Sittampalam and Julian Tibble",
  title =        "Adding trace matching with free variables to
                 {AspectJ}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "345--364",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Martin:2005:FAE,
  author =       "Michael Martin and Benjamin Livshits and Monica S.
                 Lam",
  title =        "Finding application errors and security flaws using
                 {PQL}: a program query language",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "365--383",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Goldsmith:2005:RQP,
  author =       "Simon Goldsmith and Robert O'Callahan and Alex Aiken",
  title =        "Relational queries over program traces",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "385--402",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ahern:2005:FJR,
  author =       "Alexander Ahern and Nobuko Yoshida",
  title =        "Formalising {Java RMI} with explicit code mobility",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "403--422",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gregor:2005:LSG,
  author =       "Douglas Gregor and Andrew Lumsdaine",
  title =        "Lifting sequential graph algorithms for
                 distributed-memory parallel computation",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "423--437",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Welc:2005:SFJ,
  author =       "Adam Welc and Suresh Jagannathan and Antony Hosking",
  title =        "Safe futures for {Java}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "439--453",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{vanDooren:2005:CRC,
  author =       "Marko van Dooren and Eric Steegmans",
  title =        "Combining the robustness of checked exceptions with
                 the flexibility of unchecked exceptions using anchored
                 exception declarations",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "455--471",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liu:2005:IAO,
  author =       "Yanhong A. Liu and Scott D. Stoller and Michael
                 Gorbovitski and Tom Rothamel and Yanni Ellen Liu",
  title =        "Incrementalization across object abstraction",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "473--486",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cunei:2005:PFD,
  author =       "Antonio Cunei and Jan Vitek",
  title =        "{PolyD}: a flexible dispatching framework",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "487--503",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Edwards:2005:SUS,
  author =       "Jonathan Edwards",
  title =        "{Subtext}: uncovering the simplicity of programming",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "505--518",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Charles:2005:XOO,
  author =       "Philippe Charles and Christian Grothoff and Vijay
                 Saraswat and Christopher Donawa and Allan Kielstra and
                 Kemal Ebcioglu and Christoph von Praun and Vivek
                 Sarkar",
  title =        "{X10}: an object-oriented approach to non-uniform
                 cluster computing",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "519--538",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vanderburg:2005:SMA,
  author =       "Glenn Vanderburg",
  title =        "A simple model of agile software processes --- or ---
                 extreme programming annealed",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "10",
  pages =        "539--545",
  month =        oct,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Dec 13 08:30:58 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2005:FRT,
  author =       "Paul Frenger",
  title =        "Forth report: Ten years of {Forth} in {ACM Sigplan
                 Notices}: part 1",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "11",
  pages =        "4--16",
  month =        nov,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 28 05:41:54 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Behera:2005:IAL,
  author =       "Chandan Kumar Behera and Pawan Kumar",
  title =        "An improved algorithm for loop dead optimization",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "11",
  pages =        "18--28",
  month =        nov,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 28 05:41:54 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Li:2005:MBC,
  author =       "Bixin Li and Ying Zhou and Yancheng Wang and Junhui
                 Mo",
  title =        "Matrix-based component dependence representation and
                 its applications in software quality assurance",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "11",
  pages =        "29--36",
  month =        nov,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 28 05:41:54 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Siegfried:2005:ESL,
  author =       "Robert M. Siegfried and Denis Diakoniarakis and
                 Kenneth G. Franqueiro and Amol Jain",
  title =        "Extending a scripting language for {Visual Basic}
                 forms",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "11",
  pages =        "37--40",
  month =        nov,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 28 05:41:54 MST 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Savidis:2005:MDI,
  author =       "A. Savidis",
  title =        "More dynamic imperative languages",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "12",
  pages =        "6--13",
  month =        dec,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:22 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kumar:2005:PCO,
  author =       "Rajeev Kumar and Amit Gupta and B. S. Pankaj and
                 Mrinmoy Ghosh and P. P. Chakrabarti",
  title =        "Post-compilation optimization for multiple gains with
                 pattern matching",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "12",
  pages =        "14--23",
  month =        dec,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:22 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Loka:2005:HCC,
  author =       "Raghavendra Rao Loka",
  title =        "Hybrid compilation: a case study",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "12",
  pages =        "24--27",
  month =        dec,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:22 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sierra:2005:IDO,
  author =       "Jos{\'e} L. Sierra and Antonio Navarro and Baltasar
                 Fern{\'a}ndez-Manj{\'o}n and Alfredo
                 Fern{\'a}ndez-Valmayor",
  title =        "Incremental definition and operationalization of
                 domain-specific markup languages in {ADDS}",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "12",
  pages =        "28--37",
  month =        dec,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:22 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McKinna:2006:WDT,
  author =       "James McKinna",
  title =        "Why dependent types matter",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "1--1",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111038",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Language designers have in recent years proposed a
                 wealth of richer type systems for programming which
                 seek to extend the range of statically enforced
                 guarantees on data and code. Most such proposals have
                 been evolutionary extensions of ML or Haskell, offering
                 programmers a balanced compromise between expressive
                 strength and existing well-understood technology.
                 Typically they revolve around type- or kind-indexed
                 types such as GADTs, supported by limited equality
                 reasoning at the type-checking level, thus separating
                 the dynamic behaviour of programs from the (simpler)
                 static behaviour of indexing information occurring in
                 their types. I want to argue in this talk for a more
                 radical departure from such practice by examining full
                 spectrum type dependency, lifting such restrictions on
                 the data upon which types may depend. Conor McBride and
                 I designed the language EPIGRAM for experiments in
                 programming with inductive families of data (of which
                 GADTs are a special case). Using it for illustration, I
                 will explore some of the possibilities and challenges
                 afforded by full spectrum type dependency at the static
                 and dynamic level:\par

                 types directly support modelling complex invariants in
                 terms of other data (rather than their types), with a
                 Curry--Howard flavour of data-as-evidence; such
                 complexity is on a 'pay-as-you-go' basis, while keeping
                 type annotations and other syntactic overheads to a
                 minimum;\par

                 data decomposition steps, e.g. case analysis, furnish
                 more informative interactions between types and values
                 during typechecking; such steps may moreover be
                 abstractly specified by their types, and thus user
                 definable; this supports a style of programming
                 embracing 'learning by testing', views, and Burstall's
                 'hand simulation plus a little induction';\par

                 the absence of a rigid phase distinction need not lead
                 to type-passing or excessive run-time overhead;
                 effectful computation, in particular partiality, can be
                 incorporated via variations on existing ideas such as
                 monads.\par

                 This talk is based on joint work with Conor McBride,
                 Edwin Brady and Thorsten Altenkirch.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fisher:2006:NDD,
  author =       "Kathleen Fisher and Yitzhak Mandelbaum and David
                 Walker",
  title =        "The next 700 data description languages",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "2--15",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111039",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In the spirit of Landin, we present a calculus of
                 dependent types to serve as the semantic foundation for
                 a family of languages called data description
                 languages. Such languages, which include pads,
                 datascript, and packet types, are designed to
                 facilitate programming with ad hoc data, i.e., data not
                 in well-behaved relational or XML formats. In the
                 calculus, each type describes the physical layout and
                 semantic properties of a data source. In the semantics,
                 we interpret types simultaneously as the in-memory
                 representation of the data described and as parsers for
                 the data source. The parsing functions are robust,
                 automatically detecting and recording errors in the
                 data stream without halting parsing. We show the
                 parsers are type-correct, returning data whose type
                 matches the simple-type interpretation of the
                 specification. We also prove the parsers are
                 error-correct,' accurately reporting the number of
                 physical and semantic errors that occur in the returned
                 data. We use the calculus to describe the features of
                 various data description languages, and we discuss how
                 we have used the calculus to improve PADS.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data description language; dependent types;
                 domain-specific languages",
}

@Article{Zhang:2006:HMD,
  author =       "Chengliang Zhang and Chen Ding and Mitsunori Ogihara
                 and Yutao Zhong and Youfeng Wu",
  title =        "A hierarchical model of data locality",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "16--29",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111040",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In POPL 2002, Petrank and Rawitz showed a universal
                 result---finding optimal data placement is not only
                 NP-hard but also impossible to approximate within a
                 constant factor if P $\neq$ NP. Here we study a
                 recently published concept called reference affinity,
                 which characterizes a group of data that are always
                 accessed together in computation. On the theoretical
                 side, we give the complexity for finding reference
                 affinity in program traces, using a novel reduction
                 that converts the notion of distance into
                 satisfiability. We also prove that reference affinity
                 automatically captures the hierarchical locality in
                 divide-and-conquer computations including matrix
                 solvers and N-body simulation. The proof establishes
                 formal links between computation patterns in time and
                 locality relations in space. On the practical side, we
                 show that efficient heuristics exist. In particular, we
                 present a sampling method and show that it is more
                 effective than the previously published technique,
                 especially for data that are often but not always
                 accessed together. We show the effect on generated and
                 real traces. These theoretical and empirical results
                 demonstrate that effective data placement is still
                 attainable in general-purpose programs because common
                 (albeit not all) locality patterns can be precisely
                 modeled and efficiently analyzed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hierarchical data placement; N-body simulation;
                 NP-complete; program locality; reference affinity;
                 volume distance",
}

@Article{Gautam:2006:SR,
  author =       "Gautam and S. Rajopadhye",
  title =        "Simplifying reductions",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "30--41",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111041",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present optimization techniques for high level
                 equational programs that are generalizations of affine
                 control loops (ACLs). Significant parts of the SpecFP
                 and PerfectClub benchmarks are ACLs. They often contain
                 reductions: associative and commutative operators
                 applied to a collection of values. They also often
                 exhibit reuse: intermediate values computed or used at
                 different index points being identical. We develop
                 various techniques to automatically exploit reuse to
                 simplify the computational complexity of evaluating
                 reductions. Finally, we present an algorithm for the
                 optimal application of such simplifications resulting
                 in an equivalent specification with minimum
                 complexity.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "equational programming; incremental computation; loop
                 optimization; polyhedral model; program
                 transformation",
}

@Article{Leroy:2006:FCC,
  author =       "Xavier Leroy",
  title =        "Formal certification of a compiler back-end or:
                 programming a compiler with a proof assistant",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "42--54",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111042",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper reports on the development and formal
                 certification (proof of semantic preservation) of a
                 compiler from Cminor (a C-like imperative language) to
                 PowerPC assembly code, using the Coq proof assistant
                 both for programming the compiler and for proving its
                 correctness. Such a certified compiler is useful in the
                 context of formal methods applied to the certification
                 of critical software: the certification of the compiler
                 guarantees that the safety properties proved on the
                 source code hold for the executable compiled code as
                 well.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "certified compilation; compiler transformations and
                 optimizations; program proof; semantic preservation;
                 the Coq theorem prover",
}

@Article{Bishop:2006:ELH,
  author =       "Steve Bishop and Matthew Fairbairn and Michael Norrish
                 and Peter Sewell and Michael Smith and Keith
                 Wansbrough",
  title =        "Engineering with logic: {HOL} specification and
                 symbolic-evaluation testing for {TCP} implementations",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "55--66",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111043",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The TCP/IP protocols and Sockets API underlie much of
                 modern computation, but their semantics have
                 historically been very complex and ill-defined. The
                 real standard is the de facto one of the common
                 implementations, including, for example, the
                 15,000--20,000 lines of C in the BSD implementation.
                 Dealing rigorously with the behaviour of such bodies of
                 code is challenging. We have recently developed a
                 post-hoc specification of TCP, UDP, and Sockets that is
                 rigorous, detailed, readable, has broad coverage, and
                 is remarkably accurate. In this paper we describe the
                 novel techniques that were required. Working within a
                 general-purpose proof assistant (HOL), we developed
                 language idioms (within higher-order logic) in which to
                 write the specification: operational semantics with
                 nondeterminism, time, system calls, monadic relational
                 programming, etc. We followed an experimental semantics
                 approach, validating the specification against several
                 thousand traces captured from three implementations
                 (FreeBSD, Linux, and WinXP). Many differences between
                 these were identified, and a number of bugs. Validation
                 was done using a special-purpose symbolic model checker
                 programmed above HOL. We suggest that similar logic
                 engineering techniques could be applied to future
                 critical software infrastructure at design time,
                 leading to cleaner designs and (via specification-based
                 testing using a similar checker) more predictable
                 implementations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "API; conformance testing; higher-order logic; HOL;
                 network protocols; operational semantics; sockets;
                 specification; TCP/IP",
}

@Article{Dam:2006:DPS,
  author =       "Mads Dam",
  title =        "Decidability and proof systems for language-based
                 noninterference relations",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "67--78",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111044",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Noninterference is the basic semantical condition used
                 to account for confidentiality and integrity-related
                 properties in programming languages. There appears to
                 be an at least implicit belief in the programming
                 languages community that partial approaches based on
                 type systems or other static analysis techniques are
                 necessary for noninterference analyses to be tractable.
                 In this paper we show that this belief is not
                 necessarily true. We focus on the notion of strong low
                 bisimulation proposed by Sabelfeld and Sands. We show
                 that, relative to a decidable expression theory, strong
                 low bisimulation is decidable for a simple parallel
                 while-language, and we give a sound and relatively
                 complete proof system for deriving noninterference
                 assertions. The completeness proof provides an
                 effective proof search strategy. Moreover, we show that
                 common alternative noninterference relations based on
                 traces or input-output relations are undecidable. The
                 first part of the paper is cast in terms of multi-level
                 security. In the second part of the paper we generalize
                 the setting to accommodate a form of intransitive
                 interference. We discuss the model and show how the
                 decidability and proof system results generalize to
                 this richer setting.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "information flow; intransitive noninterference;
                 language-based security; multi-level security;
                 noninterference",
}

@Article{Hunt:2006:FSS,
  author =       "Sebastian Hunt and David Sands",
  title =        "On flow-sensitive security types",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "79--90",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111045",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This article investigates formal properties of a
                 family of semantically sound flow-sensitive type
                 systems for tracking information flow in simple While
                 programs. The family is indexed by the choice of flow
                 lattice. By choosing the flow lattice to be the
                 powerset of program variables, we obtain a system
                 which, in a very strong sense, subsumes all other
                 systems in the family (in particular, for each program,
                 it provides a principal typing from which all others
                 may be inferred). This distinguished system is shown to
                 be equivalent to, though more simply described than,
                 Amtoft and Banerjee's Hoare-style independence logic
                 (SAS'04). In general, some lattices are more expressive
                 than others. Despite this, we show that no type system
                 in the family can give better results for a given
                 choice of lattice than the type system for that lattice
                 itself. Finally, for any program typeable in one of
                 these systems, we show how to construct an equivalent
                 program which is typeable in a simple flow-insensitive
                 system. We argue that this general approach could be
                 useful in a proof-carrying-code setting.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "flow-sensitivity; information flow; non-interference;
                 static analysis; type systems",
}

@Article{Amtoft:2006:LIF,
  author =       "Torben Amtoft and Sruthi Bandhakavi and Anindya
                 Banerjee",
  title =        "A logic for information flow in object-oriented
                 programs",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "91--102",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111046",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper specifies, via a Hoare-like logic, an
                 interprocedural and flow sensitive (but termination
                 insensitive) information flow analysis for
                 object-oriented programs. Pointer aliasing is
                 ubiquitous in such programs, and can potentially leak
                 confidential information. Thus the logic employs
                 independence assertions to describe the noninterference
                 property that formalizes confidentiality, and employs
                 region assertions to describe possible aliasing.
                 Programmer assertions, in the style of JML, are also
                 allowed, thereby permitting a more fine-grained
                 specification of information flow policy. The logic
                 supports local reasoning about state in the style of
                 separation logic. Small specifications are used; they
                 mention only the variables and addresses relevant to a
                 command. Specifications are combined using a frame
                 rule. An algorithm for the computation of
                 postconditions is described: under certain assumptions,
                 there exists a strongest postcondition which the
                 algorithm computes.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aliasing; confidentiality; information flow",
}

@Article{Vouillon:2006:PRT,
  author =       "J{\'e}r{\^o}me Vouillon",
  title =        "Polymorphic regular tree types and patterns",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "103--114",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111047",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a type system based on regular tree
                 grammars, where algebraic datatypes are interpreted in
                 a structural way. Thus, the same constructors can be
                 reused for different types and a flexible subtyping
                 relation can be defined between types, corresponding to
                 the inclusion of their semantics. For instance, one can
                 define a type for lists and a subtype of this type
                 corresponding to lists of even length. Patterns are
                 simply types annotated with binders. This provides a
                 generalization of algebraic patterns with the ability
                 of matching arbitrarily deep in a value. Our main
                 contribution, compared to languages such as XDuce and
                 CDuce, is that we are able to deal with both
                 polymorphism and function types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "polymorphism; subtyping; tree automata",
}

@Article{Lahiri:2006:VPW,
  author =       "Shuvendu K. Lahiri and Shaz Qadeer",
  title =        "Verifying properties of well-founded linked lists",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "115--126",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111048",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe a novel method for verifying programs that
                 manipulate linked lists, based on two new predicates
                 that characterize reachability of heap cells. These
                 predicates allow reasoning about both acyclic and
                 cyclic lists uniformly with equal ease. The crucial
                 insight behind our approach is that a circular list
                 invariably contains a distinguished head cell that
                 provides a handle on the list. This observation
                 suggests a programming methodology that requires the
                 heap of the program at each step to be well-founded,
                 i.e., for any field $f$ in the program, every sequence
                 $u.f, u.f.f, \ldots{}$ contains at least one head cell.
                 We believe that our methodology captures the most
                 common idiom of programming with linked data
                 structures. We enforce our methodology by automatically
                 instrumenting the program with updates to two auxiliary
                 variables representing these predicates and adding
                 assertions in terms of these auxiliary variables. To
                 prove program properties and the instrumented
                 assertions, we provide a first-order axiomatization of
                 our two predicates. We also introduce a novel induction
                 principle made possible by the well-foundedness of the
                 heap. We use our induction principle to derive from two
                 basic axioms a small set of additional first-order
                 axioms that are useful for proving the correctness of
                 several programs. We have implemented our method in a
                 tool and used it to verify the correctness of a variety
                 of nontrivial programs manipulating both acyclic and
                 cyclic singly-linked lists and doubly-linked lists. We
                 also demonstrate the use of indexed predicate
                 abstraction to automatically synthesize loop invariants
                 for these examples.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automated theorem proving; decision procedure;
                 first-order axiomatization; heap abstraction;
                 well-founded linked lists",
}

@Article{Might:2006:EAD,
  author =       "Matthew Might and Olin Shivers",
  title =        "Environment analysis via {{$\Delta$}CFA}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "127--140",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111049",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe a new program-analysis framework, based on
                 CPS and procedure-string abstractions, that can handle
                 critical analyses which the $k$-CFA framework cannot.
                 We present the main theorems concerning correctness,
                 show an application analysis, and describe a running
                 implementation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "continuations; CPS; delta-CFA; environment analysis;
                 flow analysis; functional languages; inlining; lambda
                 calculus; program analysis; super-beta",
}

@Article{Koutavas:2006:SBR,
  author =       "Vasileios Koutavas and Mitchell Wand",
  title =        "Small bisimulations for reasoning about higher-order
                 imperative programs",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "141--152",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111050",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We introduce a new notion of bisimulation for showing
                 contextual equivalence of expressions in an untyped
                 lambda-calculus with an explicit store, and in which
                 all expressed values, including higher-order values,
                 are storable. Our notion of bisimulation leads to
                 smaller and more tractable relations than does the
                 method of Sumii and Pierce [31]. In particular, our
                 method allows one to write down a bisimulation relation
                 directly in cases where [31] requires an inductive
                 specification, and where the principle of local
                 invariants [22] is inapplicable. Our method can also
                 express examples with higher-order functions, in
                 contrast with the most widely known previous methods
                 [4, 22, 32] which are limited in their ability to deal
                 with such examples. The bisimulation conditions are
                 derived by manually extracting proof obligations from a
                 hypothetical direct proof of contextual equivalence.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bisimulations; contextual equivalence; higher-order
                 procedures; imperative languages; lambda-calculus",
}

@Article{Alur:2006:FCL,
  author =       "Rajeev Alur and Swarat Chaudhuri and P. Madhusudan",
  title =        "A fixpoint calculus for local and global program
                 flows",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "153--165",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111051",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We define a new fixpoint modal logic, the visibly
                 pushdown $\mu$-calculus (VP-$\mu$), as an extension of
                 the modal $\mu$-calculus. The models of this logic are
                 execution trees of structured programs where the
                 procedure calls and returns are made visible. This new
                 logic can express pushdown specifications on the model
                 that its classical counterpart cannot, and is motivated
                 by recent work on visibly pushdown languages [4]. We
                 show that our logic naturally captures several
                 interesting program specifications in program
                 verification and dataflow analysis. This includes a
                 variety of program specifications such as computing
                 combinations of local and global program flows,
                 pre/post conditions of procedures, security properties
                 involving the context stack, and interprocedural
                 dataflow analysis properties. The logic can capture
                 flow-sensitive and inter-procedural analysis, and it
                 has constructs that allow skipping procedure calls so
                 that local flows in a procedure can also be tracked.
                 The logic generalizes the semantics of the modal
                 $\mu$-calculus by considering summaries instead of
                 nodes as first-class objects, with appropriate
                 constructs for concatenating summaries, and naturally
                 captures the way in which pushdown models are
                 model-checked. The main result of the paper is that the
                 model-checking problem for VP-$\mu$ is effectively
                 solvable against pushdown models with no more effort
                 than that required for weaker logics such as CTL. We
                 also investigate the expressive power of the logic
                 VP-$\mu$: we show that it encompasses all properties
                 expressed by a corresponding pushdown temporal logic on
                 linear structures (caret [2]) as well as by the
                 classical $\mu$-calculus. This makes VP-$\mu$ the most
                 expressive known program logic for which algorithmic
                 software model checking is feasible. In fact, the
                 decidability of most known program logics
                 ($\mu$-calculus, temporal logics LTL and CTL, caret,
                 etc.) can be understood by their interpretation in the
                 monadic second-order logic over trees. This is not true
                 for the logic VP-$\mu$, making it a new powerful
                 tractable program logic.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "games; infinite-state; logic; model-checking; pushdown
                 systems; specification; verification; {\mu} -calculus",
}

@Article{Odersky:2006:SEC,
  author =       "Martin Odersky",
  title =        "The {Scala} experiment: can we provide better language
                 support for component systems?",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "166--167",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111052",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Danner:2006:ATS,
  author =       "Norman Danner and James S. Royer",
  title =        "Adventures in time and space",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "168--179",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111053",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper investigates what is essentially a
                 call-by-value version of PCF under a
                 complexity-theoretically motivated type system. The
                 programming formalism, ATR1, has its first-order
                 programs characterize the poly-time computable
                 functions, and its second-order programs characterize
                 the type-2 basic feasible functionals of Mehlhorn and
                 of Cook and Urquhart. (The ATR1-types are confined to
                 levels 0, 1, and 2.) The type system comes in two
                 parts, one that primarily restricts the sizes of values
                 of expressions and a second that primarily restricts
                 the time required to evaluate expressions. The
                 size-restricted part is motivated by Bellantoni and
                 Cook's and Leivant's implicit characterizations of
                 poly-time. The time-restricting part is an affine
                 version of Barber and Plotkin's DILL. Two semantics are
                 constructed for ATR 1. The first is a pruning of the
                 na{\"\i}ve denotational semantics for ATR1. This
                 pruning removes certain functions that cause otherwise
                 feasible forms of recursion to go wrong. The second
                 semantics is a model for ATR1's time complexity
                 relative to a certain abstract machine. This model
                 provides a setting for complexity recurrences arising
                 from ATR1 recursions, the solutions of which yield
                 second-order polynomial time bounds. The
                 time-complexity semantics is also shown to be sound
                 relative to the costs of interpretation on the abstract
                 machine.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cohen:2006:SKN,
  author =       "Albert Cohen and Marc Duranton and Christine Eisenbeis
                 and Claire Pagetti and Florence Plateau and Marc
                 Pouzet",
  title =        "{$N$}-synchronous {Kahn} networks: a relaxed model of
                 synchrony for real-time systems",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "180--193",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111054",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The design of high-performance stream-processing
                 systems is a fast growing domain, driven by markets
                 such like high-end TV, gaming, 3D animation and medical
                 imaging. It is also a surprisingly demanding task, with
                 respect to the algorithmic and conceptual simplicity of
                 streaming applications. It needs the close cooperation
                 between numerical analysts, parallel programming
                 experts, real-time control experts and computer
                 architects, and incurs a very high level of quality
                 insurance and optimization. In search for improved
                 productivity, we propose a programming model and
                 language dedicated to high-performance stream
                 processing. This language builds on the synchronous
                 programming model and on domain knowledge -- the
                 periodic evolution of streams -- to allow
                 correct-by-construction properties to be proven by the
                 compiler. These properties include resource
                 requirements and delays between input and output
                 streams. Automating this task avoids tedious and
                 error-prone engineering, due to the combinatorics of
                 the composition of filters with multiple data rates and
                 formats. Correctness of the implementation is also
                 difficult to assess with traditional (asynchronous,
                 simulation-based) approaches. This language is thus
                 provided with a relaxed notion of synchronous
                 composition, called n-synchrony: two processes are
                 n-synchronous if they can communicate in the ordinary
                 (0-)synchronous model with a FIFO buffer of size n.
                 Technically, we extend a core synchronous data-flow
                 language with a notion of periodic clocks, and design a
                 relaxed clock calculus (a type system for clocks) to
                 allow non strictly synchronous processes to be composed
                 or correlated. This relaxation is associated with two
                 sub-typing rules in the clock calculus. Delay, buffer
                 insertion and control code for these buffers are
                 automatically inferred from the clock types through a
                 systematic transformation into a standard synchronous
                 program. We formally define the semantics of the
                 language and prove the soundness and completeness of
                 its clock calculus and synchronization transformation.
                 Finally, the language is compared with existing
                 formalisms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "correctness by construction; resource constraints;
                 streaming applications; subtyping; synchronous
                 languages",
}

@Article{Chen:2006:CDC,
  author =       "Guangyu Chen and Feihui Li and Mahmut Kandemir",
  title =        "Compiler-directed channel allocation for saving power
                 in on-chip networks",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "194--205",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111055",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Increasing complexity in the communication patterns of
                 embedded applications parallelized over multiple
                 processing units makes it difficult to continue using
                 the traditional bus-based on-chip communication
                 techniques. The main contribution of this paper is to
                 demonstrate the importance of compiler technology in
                 reducing power consumption of applications designed for
                 emerging multi processor, NoC (Network-on-Chip) based
                 embedded systems. Specifically, we propose and evaluate
                 a compiler-directed approach to NoC power management in
                 the context of array-intensive applications, used
                 frequently in embedded image/video processing. The
                 unique characteristic of the compiler-based approach
                 proposed in this paper is that it increases the idle
                 periods of communication channels by reusing the same
                 set of channels for as many communication messages as
                 possible. The unused channels in this case take better
                 advantage of the underlying power saving mechanism
                 employed by the network architecture. However, this
                 channel reuse optimization should be applied with care
                 as it can hurt performance if two or more simultaneous
                 communications are mapped onto the same set of
                 channels. Therefore, the problem addressed in this
                 paper is one of reducing the number of channels used to
                 implement a set of communications without increasing
                 the communication latency significantly. To test the
                 effectiveness of our approach, we implemented it within
                 an optimizing compiler and performed experiments using
                 twelve application codes and a network simulation
                 environment. Our experiments show that the proposed
                 compiler-based approach is very successful in practice
                 and works well under both hardware based and software
                 based channel turn-off schemes.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler; energy consumption; NoC",
}

@Article{Danielsson:2006:FLR,
  author =       "Nils Anders Danielsson and John Hughes and Patrik
                 Jansson and Jeremy Gibbons",
  title =        "Fast and loose reasoning is morally",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "206--217",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111056",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Functional programmers often reason about programs as
                 if they were written in a total language, expecting the
                 results to carry over to non-total (partial) languages.
                 We justify such reasoning. Two languages are defined,
                 one total and one partial, with identical syntax. The
                 semantics of the partial language includes partial and
                 infinite values, and all types are lifted, including
                 the function spaces. A partial equivalence relation
                 (PER) is then defined, the domain of which is the total
                 subset of the partial language. For types not
                 containing function spaces the PER relates equal
                 values, and functions are related if they map related
                 values to related values. It is proved that if two
                 closed terms have the same semantics in the total
                 language, then they have related semantics in the
                 partial language. It is also shown that the PER gives
                 rise to a biCartesian closed category which can be used
                 to reason about values in the domain of the relation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "equational reasoning; inductive and coinductive types;
                 lifted types; non-strict and strict languages; partial
                 and infinite values; partial and total languages",
}

@Article{Meunier:2006:MSB,
  author =       "Philippe Meunier and Robert Bruce Findler and Matthias
                 Felleisen",
  title =        "Modular set-based analysis from contracts",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "218--231",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111057",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In PLT Scheme, programs consist of modules with
                 contracts. The latter describe the inputs and outputs
                 of functions and objects via predicates. A run-time
                 system enforces these predicates; if a predicate fails,
                 the enforcer raises an exception that blames a specific
                 module with an explanation of the fault. In this paper,
                 we show how to use such module contracts to turn
                 set-based analysis into a fully modular parameterized
                 analysis. Using this analysis, a static debugger can
                 indicate for any given contract check whether the
                 corresponding predicate is always satisfied, partially
                 satisfied, or (potentially) completely violated. The
                 static debugger can also predict the source of
                 potential errors, i.e., it is sound with respect to the
                 blame assignment of the contract system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "modular analysis; runtime contracts; set-based
                 analysis; static debugging",
}

@Article{Pottier:2006:STI,
  author =       "Fran{\c{c}}ois Pottier and Yann R{\'e}gis-Gianas",
  title =        "Stratified type inference for generalized algebraic
                 data types",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "232--244",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111058",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Stratified type inference for generalized algebraic
                 data types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flanagan:2006:HTC,
  author =       "Cormac Flanagan",
  title =        "Hybrid type checking",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "245--256",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111059",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Traditional static type systems are very effective for
                 verifying basic interface specifications, but are
                 somewhat limited in the kinds specifications they
                 support. Dynamically-checked contracts can enforce more
                 precise specifications, but these are not checked until
                 run time, resulting in incomplete detection of defects.
                 Hybrid type checking is a synthesis of these two
                 approaches that enforces precise interface
                 specifications, via static analysis where possible, but
                 also via dynamic checks where necessary. This paper
                 explores the key ideas and implications of hybrid type
                 checking, in the context of the simply-typed \lambda
                 -calculus with arbitrary refinements of base types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "contracts; dynamic checking; static checking; type
                 systems",
}

@Article{Kim:2006:PMT,
  author =       "Ik-Soon Kim and Kwangkeun Yi and Cristiano Calcagno",
  title =        "A polymorphic modal type system for {Lisp}-like
                 multi-staged languages",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "257--268",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111060",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This article presents a polymorphic modal type system
                 and its principal type inference algorithm that
                 conservatively extend ML by all of Lisp's staging
                 constructs (the quasi-quotation system). The
                 combination is meaningful because ML is a practical
                 higher-order, impure, and typed language, while Lisp's
                 quasi-quotation system has long evolved complying with
                 the demands from multi-staged programming practices.
                 Our type system supports open code, unrestricted
                 operations on references, intentional
                 variable-capturing substitution as well as
                 capture-avoiding substitution, and lifting values into
                 code, whose combination escaped all the previous
                 systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "let-polymorphism; lisp; ML; modal types; multi-staged
                 languages; polymorphic types; quasi-quotation; record
                 type; scheme; type inference; type systems",
}

@Article{Sweeney:2006:NMP,
  author =       "Tim Sweeney",
  title =        "The next mainstream programming language: a game
                 developer's perspective",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "269--269",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111061",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Game developers have long been early adopters of new
                 technologies. This is so because we are largely
                 unburdened by legacy code: With each new hardware
                 generation, we are free to rethink our software
                 assumptions and develop new products using new tools
                 and even new programming languages. As a result, games
                 are fertile ground for applying academic advances in
                 these areas. And never has our industry been in need of
                 such advances as it is now! The scale and scope of game
                 development has increased more than ten-fold over the
                 past ten years, yet the underlying limitations of the
                 mainstream C/C++/Java/C\# language family remain
                 largely unaddressed. The talk begins with a high-level
                 presentation of the game developer's world: the kinds
                 of algorithms we employ on modern CPUs and GPUs, the
                 difficulties of componentization and concurrency, and
                 the challenges of writing very complex software with
                 real-time performance requirements. The talk then
                 outlines the ways that future programming languages
                 could help us write better code, providing examples
                 derived from experience writing games and software
                 frameworks that support games. The major areas covered
                 are abstraction facilities -- how we can use them to
                 develop more extensible frameworks and components;
                 practical opportunities for employing stronger typing
                 to reduce run-time failures; and the need for pervasive
                 concurrency support, both implicit and explicit, to
                 effectively exploit the several forms of parallelism
                 present in games and graphics.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ernst:2006:VCC,
  author =       "Erik Ernst and Klaus Ostermann and William R. Cook",
  title =        "A virtual class calculus",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "270--282",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111062",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Virtual classes are class-valued attributes of
                 objects. Like virtual methods, virtual classes are
                 defined in an object's class and may be redefined
                 within subclasses. They resemble inner classes, which
                 are also defined within a class, but virtual classes
                 are accessed through object instances, not as static
                 components of a class. When used as types, virtual
                 classes depend upon object identity -- each object
                 instance introduces a new family of virtual class
                 types. Virtual classes support large-scale program
                 composition techniques, including higher-order
                 hierarchies and family polymorphism. The original
                 definition of virtual classes in BETA left open the
                 question of static type safety, since some type errors
                 were not caught until runtime. Later the languages
                 Caesar and gbeta have used a more strict static
                 analysis in order to ensure static type safety.
                 However, the existence of a sound, statically typed
                 model for virtual classes has been a long-standing open
                 question. This paper presents a virtual class calculus,
                 VC, that captures the essence of virtual classes in
                 these full-fledged programming languages. The key
                 contributions of the paper are a formalization of the
                 dynamic and static semantics of VC and a proof of the
                 soundness of VC.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "soundness; virtual classes",
}

@Article{Liu:2006:II,
  author =       "Jed Liu and Aaron Kimball and Andrew C. Myers",
  title =        "Interruptible iterators",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "283--294",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111063",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper introduces interruptible iterators, a
                 language feature that makes expressive iteration
                 abstractions much easier to implement. Iteration
                 abstractions are valuable for software design, as shown
                 by their frequent use in well-designed data structure
                 libraries such as the Java Collections Framework. While
                 Java iterators support iteration abstraction well from
                 the standpoint of client code, they are awkward to
                 implement correctly and efficiently, especially if the
                 iterator needs to support imperative update of the
                 underlying collection, such as removing the current
                 element. Some languages, such as CLU and C\# 2.0,
                 support iteration through a limited coroutine
                 mechanism, but these mechanisms do not support
                 imperative updates. Interruptible iterators are more
                 powerful coroutines in which the loop body is able to
                 interrupt the iterator with requests to perform
                 updates. Interrupts are similar to exceptions, but
                 propagate differently and have resumption semantics.
                 Interruptible iterators have been implemented as part
                 of the JMatch programming language, an extended version
                 of Java. A JMatch reimplementation of the Java
                 Collections Framework shows that implementations can be
                 made substantially shorter and simpler; performance
                 results show that this language mechanism can also be
                 implemented efficiently.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "coroutine; exception; Java; JMatch; logic
                 programming",
}

@Article{Reis:2006:SCC,
  author =       "Gabriel Dos Reis and Bjarne Stroustrup",
  title =        "Specifying {C++} concepts",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "295--308",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111064",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "C++ templates are key to the design of current
                 successful mainstream libraries and systems. They are
                 the basis of programming techniques in diverse areas
                 ranging from conventional general-purpose programming
                 to software for safety-critical embedded systems.
                 Current work on improving templates focuses on the
                 notion of concepts (a type system for templates), which
                 promises significantly improved error diagnostics and
                 increased expressive power such as concept-based
                 overloading and function template partial
                 specialization. This paper presents C++ templates with
                 an emphasis on problems related to separate
                 compilation. We consider the problem of how to express
                 concepts in a precise way that is simple enough to be
                 usable by ordinary programmers. In doing so, we expose
                 a few weakness of the current specification of the C++
                 standard library and suggest a far more precise and
                 complete specification. We also present a systematic
                 way of translating our proposed concept definitions,
                 based on use-patterns rather than function signatures,
                 into constraint sets that can serve as convenient basis
                 for concept checking in a compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C++ concepts; C++ templates; generic programming;
                 separate compilation; type systems",
}

@Article{Thielecke:2006:FRA,
  author =       "Hayo Thielecke",
  title =        "Frame rules from answer types for code pointers",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "309--319",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111065",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We define a type system, which may also be considered
                 as a simple Hoare logic, for a fragment of an assembly
                 language that deals with code pointers and jumps. The
                 typing is aimed at local reasoning in the sense that
                 only the type of a code pointer is needed, and there is
                 no need to know the whole code itself. The main
                 features of the type system are separation logic
                 connectives for describing the heap, and polymorphic
                 answer types of continuations for keeping track of
                 jumps. Specifically, we address an interaction between
                 separation and answer types: frame rules for local
                 reasoning in the presence of jumps are recovered by
                 instantiating the answer type. However, the
                 instantiation of answer types is not sound for all
                 types. To guarantee soundness, we restrict
                 instantiation to closed types, where the notion of
                 closedness arises from biorthogonality (in a sense
                 inspired by Krivine and Pitts). A machine state is
                 orthogonal to a disjoint heap if their combination does
                 not lead to a fault. Closed types are sets of machine
                 states that are orthogonal to a set of heaps. We use
                 closed types as well-behaved answer types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code pointers; continuations; Hoare logic;
                 polymorphism; typed assembly language",
}

@Article{Ni:2006:CAP,
  author =       "Zhaozhong Ni and Zhong Shao",
  title =        "Certified assembly programming with embedded code
                 pointers",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "320--333",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111066",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Embedded code pointers (ECPs) are stored handles of
                 functions and continuations commonly seen in low-level
                 binaries as well as functional or higher-order
                 programs. ECPs are known to be very hard to support
                 well in Hoare-logic style verification systems. As a
                 result, existing proof-carrying code (PCC) systems have
                 to either sacrifice the expressiveness or the
                 modularity of program specifications, or resort to
                 construction of complex semantic models. In Reynolds's
                 LICS'02 paper, supporting ECPs is listed as one of the
                 main open problems for separation logic. In this paper
                 we present a simple and general technique for solving
                 the ECP problem for Hoare-logic-based PCC systems. By
                 adding a small amount of syntax to the assertion
                 language, we show how to combine semantic consequence
                 relation with syntactic proof techniques. The result is
                 a new powerful framework that can perform modular
                 reasoning on ECPs while still retaining the
                 expressiveness of Hoare logic. We show how to use our
                 techniques to support polymorphism, closures, and other
                 language extensions and how to solve the ECP problem
                 for separation logic. Our system is fully mechanized.
                 We give its complete soundness proof and a full
                 verification of Reynolds's CPS-style 'list-append'
                 example in the Coq proof assistant.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded code pointers; higher-order functions; Hoare
                 logic; proof-carrying code",
}

@Article{Vaziri:2006:ASC,
  author =       "Mandana Vaziri and Frank Tip and Julian Dolby",
  title =        "Associating synchronization constraints with data in
                 an object-oriented language",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "334--345",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111067",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Concurrency-related bugs may happen when multiple
                 threads access shared data and interleave in ways that
                 do not correspond to any sequential execution. Their
                 absence is not guaranteed by the traditional notion of
                 'data race' freedom. We present a new definition of
                 data races in terms of 11 problematic interleaving
                 scenarios, and prove that it is complete by showing
                 that any execution not exhibiting these scenarios is
                 serializable for a chosen set of locations. Our
                 definition subsumes the traditional definition of a
                 data race as well as high-level data races such as
                 stale-value errors and inconsistent views. We also
                 propose a language feature called atomic sets of
                 locations, which lets programmers specify the existence
                 of consistency properties between fields in objects,
                 without specifying the properties themselves. We use
                 static analysis to automatically infer those points in
                 the code where synchronization is needed to avoid data
                 races under our new definition. An important benefit of
                 this approach is that, in general, far fewer
                 annotations are required than is the case with existing
                 approaches such as synchronized blocks or atomic
                 sections. Our implementation successfully inferred the
                 appropriate synchronization for a significant subset of
                 Java's Standard Collections framework.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrent object-oriented programming; data races;
                 programming model; serializability",
}

@Article{McCloskey:2006:ASI,
  author =       "Bill McCloskey and Feng Zhou and David Gay and Eric
                 Brewer",
  title =        "{Autolocker}: synchronization inference for atomic
                 sections",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "346--358",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111068",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The movement to multi-core processors increases the
                 need for simpler, more robust parallel programming
                 models. Atomic sections have been widely recognized for
                 their ease of use. They are simpler and safer to use
                 than manual locking and they increase modularity. But
                 existing proposals have several practical problems,
                 including high overhead and poor interaction with I/O.
                 We present pessimistic atomic sections, a fresh
                 approach that retains many of the advantages of
                 optimistic atomic sections as seen in 'transactional
                 memory' without sacrificing performance or
                 compatibility. Pessimistic atomic sections employ the
                 locking mechanisms familiar to programmers while
                 relieving them of most burdens of lock-based
                 programming, including deadlocks. Significantly,
                 pessimistic atomic sections separate correctness from
                 performance: they allow programmers to extract more
                 parallelism via finer-grained locking without fear of
                 introducing bugs. We believe this property is crucial
                 for exploiting multi-core processor designs. We
                 describe a tool, Autolocker, that automatically
                 converts pessimistic atomic sections into standard
                 lock-based code. Autolocker relies extensively on
                 program analysis to determine a correct locking policy
                 free of deadlocks and race conditions. We evaluate the
                 expressiveness of Autolocker by modifying a 50,000 line
                 high-performance web server to use atomic sections
                 while retaining the original locking policy. We analyze
                 Autolocker's performance using microbenchmarks, where
                 Autolocker outperforms software transactional memory by
                 more than a factor of 3.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomic; lock; pessimistic",
}

@Article{Lu:2006:PRE,
  author =       "Yi Lu and John Potter",
  title =        "Protecting representation with effect encapsulation",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "359--371",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111069",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Representation exposure is a well-known problem in the
                 object-oriented realm. Object encapsulation mechanisms
                 have established a tradition for solving this problem
                 based on a principle of reference containment. This
                 paper proposes a novel type system which is based on a
                 different principle, we call effect encapsulation,
                 which confines side effects, rather than object
                 references, according to an ownership structure.
                 Compared to object encapsulation, effect encapsulation
                 liberates us from the restriction on object
                 referenceability and offers more flexibility. In this
                 paper, we show that effect encapsulation can be
                 statically type checked.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "effect systems; object encapsulation; ownership types;
                 representation exposure; types",
}

@Article{Su:2006:ECI,
  author =       "Zhendong Su and Gary Wassermann",
  title =        "The essence of command injection attacks in {Web}
                 applications",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "372--382",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111070",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Web applications typically interact with a back-end
                 database to retrieve persistent data and then present
                 the data to the user as dynamically generated output,
                 such as HTML web pages. However, this interaction is
                 commonly done through a low-level API by dynamically
                 constructing query strings within a general-purpose
                 programming language, such as Java. This low-level
                 interaction is ad hoc because it does not take into
                 account the structure of the output language.
                 Accordingly, user inputs are treated as isolated
                 lexical entities which, if not properly sanitized, can
                 cause the web application to generate unintended
                 output. This is called a command injection attack,
                 which poses a serious threat to web application
                 security. This paper presents the first formal
                 definition of command injection attacks in the context
                 of web applications, and gives a sound and complete
                 algorithm for preventing them based on context-free
                 grammars and compiler parsing techniques. Our key
                 observation is that, for an attack to succeed, the
                 input that gets propagated into the database query or
                 the output document must change the intended syntactic
                 structure of the query or document. Our definition and
                 algorithm are general and apply to many forms of
                 command injection attacks. We validate our approach
                 with SqlCheckS, an implementation for the setting of
                 SQL command injection attacks. We evaluated SqlCheckS
                 on real-world web applications with systematically
                 compiled real-world attack data as input. SqlCheckS
                 produced no false positives or false negatives,
                 incurred low runtime overhead, and applied
                 straightforwardly to web applications written in
                 different languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "command injection attacks; grammars; parsing; runtime
                 verification; web applications",
}

@Article{Dantas:2006:HA,
  author =       "Daniel S. Dantas",
  title =        "Harmless advice",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "383--396",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111071",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper defines an object-oriented language with
                 harmless aspect-oriented advice. A piece of harmless
                 advice is a computation that, like ordinary
                 aspect-oriented advice, executes when control reaches a
                 designated control-flow point. However, unlike ordinary
                 advice, harmless advice is designed to obey a weak
                 non-interference property. Harmless advice may change
                 the termination behavior of computations and use I/O,
                 but it does not otherwise influence the final result of
                 the mainline code. The benefit of harmless advice is
                 that it facilitates local reasoning about program
                 behavior. More specifically, programmers may ignore
                 harmless advice when reasoning about the partial
                 correctness properties of their programs. In addition,
                 programmers may add new pieces of harmless advice to
                 pre-existing programs in typical 'after-the-fact'
                 aspect-oriented style without fear they will break
                 important data invariants used by the mainline code. In
                 order to detect and enforce harmlessness, the paper
                 defines a novel type and effect system related to
                 information-flow type systems. The central technical
                 result is that well-typed harmless advice does not
                 interfere with the mainline computation. The paper also
                 presents an implementation of the language and a case
                 study using harmless advice to implement security
                 policies.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented; aspects; harmless advice;
                 noninterference",
}

@Article{Menon:2006:VSP,
  author =       "Vijay S. Menon and Neal Glew and Brian R. Murphy and
                 Andrew McCreight and Tatiana Shpeisman and Ali-Reza
                 Adl-Tabatabai and Leaf Petersen",
  title =        "A verifiable {SSA} program representation for
                 aggressive compiler optimization",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "397--408",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111072",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a verifiable low-level program
                 representation to embed, propagate, and preserve safety
                 information in high performance compilers for safe
                 languages such as Java and C\#. Our representation
                 precisely encodes safety information via static
                 single-assignment (SSA) [11, 3] proof variables that
                 are first-class constructs in the program. We argue
                 that our representation allows a compiler to both (1)
                 express aggressively optimized machine-independent code
                 and (2) leverage existing compiler infrastructure to
                 preserve safety information during optimization. We
                 demonstrate that this approach supports standard
                 compiler optimizations, requires minimal changes to the
                 implementation of those optimizations, and does not
                 artificially impede those optimizations to preserve
                 safety. We also describe a simple type system that
                 formalizes type safety in an SSA-style control-flow
                 graph program representation. Through the types of
                 proof variables, our system enables compositional
                 verification of memory safety in optimized code.
                 Finally, we discuss experiences integrating this
                 representation into the machine-independent global
                 optimizer of STARJIT, a high-performance just-in-time
                 compiler that performs aggressive control-flow,
                 data-flow, and algebraic optimizations and is
                 competitive with top production systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "check elimination; intermediate representations; proof
                 variables; safety dependences; SSA formalization; type
                 systems; typeability preservation; typed intermediate
                 languages",
}

@Article{Olinsky:2006:SAC,
  author =       "Reuben Olinsky and Christian Lindig and Norman
                 Ramsey",
  title =        "Staged allocation: a compositional technique for
                 specifying and implementing procedure calling
                 conventions",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "409--421",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111073",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present staged allocation, a technique for
                 specifying calling conventions by composing tiny
                 allocators called stages. A specification written using
                 staged allocation has a precise, formal semantics, and
                 it can be executed directly inside a compiler.
                 Specifications of nine standard C~calling conventions
                 range in size from 15 to 30 lines each. An
                 implementation of staged allocation takes about 250
                 lines of ML or 650~lines of C++. Each specification can
                 be used not only to help a compiler implement the
                 calling convention but also to generate a test suite.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "calling conventions",
}

@Article{Xue:2006:DSL,
  author =       "Deyi Xue",
  title =        "Developing a superset language of {Smalltalk} for
                 modeling distributed mechanical design systems",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "2",
  pages =        "8--17",
  month =        feb,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1137933.1137935",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:41:42 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents our experience on further
                 development of a superset language of Smalltalk for
                 modeling distributed mechanical design systems. In this
                 language, mechanical system modeling primitives are
                 called features. Features are described at two levels,
                 class level and instance level, representing standard
                 product libraries and special product data,
                 respectively. Features modeled at different locations
                 are associated by Internet. Class features at remote
                 locations can be used for generating instance features
                 at the local site. Instance features at remote
                 locations can be accessed from the local site. This new
                 language was implemented using Smalltalk.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "computer language; distributed systems; mechanical
                 design; object-oriented modeling",
}

@Article{Borah:2006:IOO,
  author =       "Kallol Borah",
  title =        "{Indus}: an object oriented language for {Ubiquitous}
                 computing",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "2",
  pages =        "18--24",
  month =        feb,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1137933.1137936",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:41:42 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Indus is a new object oriented programming language
                 for Ubiquitous computing. The Indus programming
                 language enables implementation of software agents that
                 have the ability to cooperatively execute tasks by
                 coordinating with other agents and composing components
                 using connectors. The Indus programming model tightly
                 integrates a set of run time libraries that automates
                 the management of distributed agents and components
                 across a variety of platforms and networks. Indus also
                 differentiates itself from other general purpose,
                 object oriented programming languages by being able to
                 generate code on a variety of 8/16/32/64 bit platforms,
                 thus making it ideal as a language for implementing
                 pervasive applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ad hoc networks; adaptive systems; distributed
                 systems; software agents; wireless sensor networks",
}

@Article{Anonymous:2006:MPG,
  author =       "Anonymous",
  title =        "{MxYacc}: parser generator for mixed languages",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "2",
  pages =        "25--28",
  month =        feb,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1137933.1137937",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:41:42 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In the recent years mixed language programming has
                 received much attention. In this paper we introduce
                 MxYacc, a parser generator for mixed languages. We
                 discuss the concepts of mixed language parsing with an
                 example. We present a simple and elegant parsing
                 algorithm to parse mixed grammars.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "mixed language programming; parser generator; yacc",
}

@Article{Murphy:2006:SSU,
  author =       "Mike Murphy",
  title =        "Some suggestions for the use of tables in compilers",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "2",
  pages =        "29--33",
  month =        feb,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1137933.1137938",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:41:42 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It is common practice in compilers to use tables to
                 represent data, and then automatically generate code
                 based on those tables (often known as 'table-driven
                 code'). Many compilers use machine description tables
                 from which is automatically generated parts of the code
                 generator, and there are often small pieces of
                 table-driven code within a compiler. Sometimes these
                 tables are very useful, but other times the tables
                 themselves can become a maintenance nightmare. This
                 paper uses examples from several SGI compilers to try
                 and enumerate some guidelines for designing good tables
                 and table-driven code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; software engineering; tables",
}

@Article{Bailey:2006:PPA,
  author =       "Mark W. Bailey and John Hatcliff and Frank Tip",
  title =        "{PEPM} 2006 paper abstracts",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "3",
  pages =        "4--8",
  month =        mar,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1140543.1140545",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:41:56 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The ACM SIGPLAN Workshop on Partial Evaluation and
                 Program Manipulation (PEPM 2006) was held on January
                 9th and 10th in Charleston, South Carolina and this
                 article contains abstracts for the 19 papers presented
                 at the workshop. The PEPM workshops focus on
                 techniques, supporting theory, tools, and applications
                 of the analysis and manipulation of programs. The full
                 proceedings for this workshop are available from ACM.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Janakiram:2006:SCL,
  author =       "D. Janakiram and R. Venkateswarlu and A. Vijay
                 Srinivas and A. Uday Kumar",
  title =        "{Soma}: a compositional language for distributed
                 systems",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "3",
  pages =        "10--19",
  month =        mar,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1140543.1140547",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:41:56 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Current mobile and distributed applications are being
                 developed using J2ME, J2EE, CORBA, DCOM, etc.
                 Developing applications for distributed and mobile
                 systems is a tedious process, because the applications
                 in these systems are open for change in requirements.
                 So providing a language support for application
                 development in open systems is vital.
                 Component-oriented programming is well suited for open
                 systems [1]. The component interactions is the key
                 issue in composition languages. Software systems can be
                 viewed in two distinct ways. A running system can be
                 seen as a collection of interacting entities. However,
                 at the level of system specification we can view the
                 system as a composition of various software components
                 [1]. To specify systems consisting of interacting
                 components, a composition language is required.
                 Applications built in these languages satisfy the
                 requirements of an open system. Thus there is a need to
                 develop a composition language. The key challenge is to
                 define a set of operators in the language which
                 represent different coordination styles.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ning:2006:MGW,
  author =       "Zhang Ning and Guangze Xiong",
  title =        "Minimizing {GC} work by analysis of live objects",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "3",
  pages =        "20--29",
  month =        mar,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1140543.1140548",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:41:56 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As complex embedded real-time systems are widely used,
                 automatic memory management, or garbage collection, is
                 a technique that significantly reduces the complex
                 problem of correct memory management. In recent years,
                 people often use time-based real-time GC to meet the
                 deadline of real-time tasks. Some algorithms are
                 proposed to reduce memory requirement based on
                 time-based approaches. However, they mainly focus on
                 scheduling strategy and GC algorithms such as copying
                 algorithm and mark-sweep algorithm et al. This paper
                 treats GC as a dynamical process and gives the analysis
                 of amount of live objects. We propose that GC should
                 process memory space of each task one by one based on
                 the variance of amount of live objects. The proposed
                 approach can minimize GC work and further reduce memory
                 requirement.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded systems; garbage collector; real-time;
                 scheduling",
}

@Article{Dekker:2006:LFP,
  author =       "Anthony H. Dekker",
  title =        "Lazy functional programming in {Java}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "3",
  pages =        "30--39",
  month =        mar,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1140543.1140549",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:41:56 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, we show how lazy functional programming
                 techniques can be used within the Java programming
                 language. We provide Java implementations of classic
                 examples of lazy lists, such as the Sieve of
                 Eratosthenes, the Eight Queens Problem, and
                 natural-language parsing. We discuss how well these
                 implementations succeed, compared to their original
                 counterparts. We also point out the potential synergy
                 between adding lazy techniques to Java, and adding
                 generic types. The examples we provide would be
                 suitable for teaching functional programming concepts
                 in the context of a Java-based syllabus.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "functional programming; Java; lazy lists",
}

@Article{Chang:2006:SCA,
  author =       "Byeong-Mo Chang",
  title =        "Static check analysis for {Java} stack inspection",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "3",
  pages =        "40--48",
  month =        mar,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1140543.1140550",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:41:56 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Most static analysis techniques for optimizing stack
                 inspection approximate permission sets such as granted
                 permissions and denied permissions. Because they
                 compute permission sets following control flow, they
                 usually take intra-procedural control flow into
                 consideration as well as call relationship. In this
                 paper, we observed that it is necessary for more
                 precise optimization on stack inspection to compute
                 more specific information on checks instead of
                 permissions. We propose a backward static analysis
                 based on simple call graph to approximate redundant
                 permission checks which must fail. In a similar way, we
                 also propose a backward static analysis to approximate
                 success permission checks, which must pass stack
                 inspection.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Java; security; stack inspection; static analysis",
}

@Article{Frenger:2006:TYF,
  author =       "Paul Frenger",
  title =        "Ten years of {Forth} in {ACM Sigplan Notices}: part
                 2",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "4",
  pages =        "3--14",
  month =        apr,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1147214.1147216",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Last column, we began a two-part retrospective to
                 recap the first ten years of the ACM Sigplan Notices
                 Forth Report. Our walk through memory lane began with a
                 history lesson: who Chuck Moore is, the origins of the
                 Forth programming language, Forth software and hardware
                 incarnations, some vendors, conferences, and a few tall
                 tales. We looked at little pioneer ACM SIG-Forth and
                 its four-year Newsletter, and how phoenix-like their
                 ashes gave rise to the ten-year run of the Forth Report
                 in Sigplan Notices.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Mann:2006:TBG,
  author =       "Paul B. Mann",
  title =        "A translational {BNF} grammar notation {(TBNF)}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "4",
  pages =        "16--23",
  month =        apr,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1147214.1147218",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "BNF grammar notation came into existence about 1960
                 for the specification of programming languages. It was
                 first used for the automatic generation of parsers
                 about 1972. BNF was later replaced with EBNF offering
                 regular expression notation in the right side of
                 grammar rules. EBNF is powerful, however, it describes
                 only the recognition phase, which is only 1/3 of the
                 process of language translation. The second phase is
                 the construction of an abstract-syntax tree and the
                 third phase is the creation of an instruction code
                 sequence. Some parser generators automate the
                 construction of an AST, but none, that I know of,
                 automate the output of instruction codes. Certainly if
                 these second and third phases are to be automated, a
                 suitable notation is required in the grammar. This
                 paper proposes a notation that permits the construction
                 of the AST in the correct order and the creation of
                 instruction codes. In effect, the complete translation
                 process can be described in the grammar and correct
                 translators generated automatically. A working system
                 has been implemented and tested with good results. The
                 generator is called LRgen and the new grammar notation
                 is called TBNF.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "AST; BNF; compiler compiler; EBNF; grammar;
                 grammarware; intermediate code; LALR; language
                 recognition; LL; LR; parser; parser generator; syntax",
}

@Article{Lenka:2006:SML,
  author =       "Dillip Kumar Lenka and Pawan Kumar",
  title =        "States merging in {LR} parser",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "4",
  pages =        "24--29",
  month =        apr,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1147214.1147219",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Here a scheme is presented, which reduces the size of
                 an LR parser. It is accomplished by merging two states,
                 which do not perform differently on the same input
                 symbol or non-terminal. This state merging has
                 following advantages:1. The reduction in number of
                 states is greater than the reduction in an LALR
                 parser.2. The power of parser is not reduced as it
                 would be in an LALR parser. The above merging scheme
                 has following disadvantages:1. Even erroneous inputs
                 are accepted. However, it is stopped by changing the
                 notion of acceptance.2. Errors are report late and in a
                 misleading manner.3. Parsing takes more time because
                 string matching is done during reduction.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jiang:2006:AAR,
  author =       "Shujuan Jiang and Baowen Xu and Liang Shi",
  title =        "An approach to analyzing recursive programs with
                 exception handling constructs",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "4",
  pages =        "30--35",
  month =        apr,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1147214.1147220",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Exception handling in modern programming languages is
                 a mechanism that can improve software reliability.
                 Since the signature of a C++ function may not specify
                 the set of exceptions that the function can propagate,
                 it is necessary to figure out the exceptions that may
                 be raised during executing program, the origins of them
                 and their propagation paths. Unfortunately, in large
                 programs that contain recursive functions, this
                 exceptional information can be difficult, if not
                 impossible, to determine. Therefore, the paper proposes
                 a new static analysis approach to analyze C++ recursive
                 functions with exception handling constructs. Firstly,
                 it presents a model that can describe the exception
                 handling information for a C++ single function. Then,
                 it proposes a new method to compute the set of
                 exception types that propagate from a recursive
                 function. Finally, the limitations and the applications
                 of the model are discussed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "exception handling; exception propagation; programming
                 language; recursive function; reliability; static
                 analysis",
}

@Article{Tuya:2006:PGS,
  author =       "Javier Tuya and M. Jos{\'e} Su{\'a}rez-Cabal and
                 Claudio de la Riva",
  title =        "A practical guide to {SQL} white-box testing",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "4",
  pages =        "36--41",
  month =        apr,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1147214.1147221",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "SQL is a ubiquitous language used in a wide range of
                 applications for accessing the data stored in
                 relational databases. However, the usual software
                 testing techniques are not designed to address some
                 important features of SQL. We present a set of
                 practical guidelines for designing white-box tests
                 cases that reasonably exercise the way in which an SQL
                 query processes the stored data. These guidelines are
                 illustrated using an example.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "database testing; software testing; SQL query
                 language",
}

@Article{Loka:2006:CRH,
  author =       "Raghavendra Rao Loka",
  title =        "Compilation reuse and hybrid compilation: an
                 experiment",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "4",
  pages =        "42--49",
  month =        apr,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1147214.1147222",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Compiling hardware models to machine code poses some
                 unusual problems. While compilers for traditional
                 programming languages are well understood, they tend to
                 take very long to compile the C code generated from
                 hardware models. The code generated from hardware
                 models, unlike in the inputs seen by traditional
                 compilers, have too many simple routines. These
                 routines have much simpler control flow, and the
                 patterns of the routines are repeated several times
                 over. This paper discusses the approaches developed at
                 Synopsys to compile these routines as optimally as
                 traditional compilers, but taking less time.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Behera:2006:IAL,
  author =       "Chandan Kumar Behera and Pawan Kumar",
  title =        "An improved algorithm for loop dead optimization",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "5",
  pages =        "11--20",
  month =        may,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1149982.1149984",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:34 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Loop dead variables are the variables, which are
                 defined in a loop, but not used in that loop. On
                 successive execution of loop, these get different
                 value, however all values (except last value) are not
                 used. Hence in optimized program, the definition of a
                 loop dead variable can be moved outside the loop (after
                 the loop), rather than computing every time, inside the
                 loop. In our discussion, we have assumed only simple
                 loop. Every loop has one entry and one exit point.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler design; loop invariant computations; loop
                 optimization",
}

@Article{Moon:2006:TMS,
  author =       "Sewon Moon and Byeong-Mo Chang",
  title =        "A thread monitoring system for multithreaded {Java}
                 programs",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "5",
  pages =        "21--29",
  month =        may,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1149982.1149985",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:34 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "To assist developing robust multithreaded software, we
                 develop a thread monitoring system for multithreaded
                 Java programs, which can trace or monitor running
                 threads and synchronization. We design a monitoring
                 system which has options to select interesting threads
                 and synchronized actions. Using this tool, programmers
                 can monitor only interesting threads and
                 synchronization in more details by selecting options,
                 and can detect a deadlock. It also provides profile
                 information after execution, which summarizes behavior
                 of running threads and synchronized actions during
                 execution. We implement the system based on code
                 inlining, and presents some experimental results.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Java; monitoring; synchronization; thread",
}

@Article{Zhang:2006:MPS,
  author =       "Yingzhou Zhang and Jose Emilio Labra Gayo and
                 Agust{\'\i}n Cernuda del R{\'\i}o",
  title =        "A monadic program slicer",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "5",
  pages =        "30--38",
  month =        may,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1149982.1149986",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:34 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Program slicing is an important decomposition
                 technique. It has been widely used in many software
                 activities, such as software analyzing, understanding,
                 debugging, testing, and maintenance. The current
                 slicing methods and tools, however, are monolithic, and
                 mainly based on program or system dependence graph.
                 This paper presents a novel formal tool for program
                 slicing. It abstracts the computation of program
                 slicing as a language-independent slice monad
                 transformer, which can be applied to the semantic
                 descriptions of the program in a modular way, forming
                 the corresponding slicing algorithms. Such algorithms
                 allow program slices to be computed directly on
                 abstract syntax, with no need to explicitly construct
                 intermediate structures such as dependence graphs or to
                 record an execution history. It has reusability and
                 language-flexibility properties in comparison with the
                 current program slicing methods/tools.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "modular monadic semantics; monad; monad transformer;
                 program slicer",
}

@Article{Adams:2006:FAM,
  author =       "Michael D. Adams and David S. Wise",
  title =        "Fast additions on masked integers",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "5",
  pages =        "39--45",
  month =        may,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1149982.1149987",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:34 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Suppose the bits of a computer word are partitioned
                 into $d$ disjoint sets, each of which is used to
                 represent one of a $d$-tuple of Cartesian indices into
                 $d$-dimensional space. Then, regardless of the
                 partition, simple group operations and comparisons can
                 be implemented for each index on a conventional
                 processor in a sequence of two or three register
                 operations. These indexings allow any blocked algorithm
                 from linear algebra to use some non-standard matrix
                 orderings that increase locality and enhance their
                 performance. The underlying implementations were
                 designed for alternating bit positions to index
                 Morton-ordered matrices, but they apply, as well, to
                 any bit partitioning. A hybrid ordering of the elements
                 of a matrix becomes possible, therefore, with
                 row-\slash column-major ordering within cache-sized
                 blocks and Morton ordering of those blocks, themselves.
                 So, one can enjoy the temporal locality of nested
                 blocks, as well as compiler optimizations on row- or
                 column-major ordering in base blocks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; dilated integers; index arithmetic; Morton
                 order; quadtrees",
}

@Article{Frost:2006:NTP,
  author =       "Richard A. Frost and Rahmatullah Hafiz",
  title =        "A new top-down parsing algorithm to accommodate
                 ambiguity and left recursion in polynomial time",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "5",
  pages =        "46--54",
  month =        may,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1149982.1149988",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:34 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Top-down backtracking language processors are highly
                 modular, can handle ambiguity, and are easy to
                 implement with clear and maintainable code. However, a
                 widely-held, and incorrect, view is that top-down
                 processors are inherently exponential for ambiguous
                 grammars and cannot accommodate left-recursive
                 productions. It has been known for many years that
                 exponential complexity can be avoided by memoization,
                 and that left-recursive productions can be accommodated
                 through a variety of techniques. However, until now,
                 memoization and techniques for handling left recursion
                 have either been presented independently, or else
                 attempts at their integration have compromised
                 modularity and clarity of the code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "backtracking; left-recursion; memoization; parser
                 combinators; top-down parsing",
}

@Article{Carlstrom:2006:ATP,
  author =       "Brian D. Carlstrom and Austen McDonald and Hassan
                 Chafi and JaeWoong Chung and Chi Cao Minh and Christos
                 Kozyrakis and Kunle Olukotun",
  title =        "The {ATOMOS} transactional programming language",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "1--13",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1133983",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Atomos is the first programming language with implicit
                 transactions, strong atomicity, and a scalable
                 multiprocessor implementation. Atomos is derived from
                 Java, but replaces its synchronization and conditional
                 waiting constructs with simpler transactional
                 alternatives. The Atomos watch statement allows
                 programmers to specify fine-grained watch sets used
                 with the Atomos retry conditional waiting statement for
                 efficient transactional conflict-driven wakeup even in
                 transactional memory systems with a limited number of
                 transactional contexts. Atomos supports open-nested
                 transactions, which are necessary for building both
                 scalable application programs and virtual machine
                 implementations. The implementation of the Atomos
                 scheduler demonstrates the use of open nesting within
                 the virtual machine and introduces the concept of
                 transactional memory violation handlers that allow
                 programs to recover from data dependency violations
                 without rolling back. Atomos programming examples are
                 given to demonstrate the usefulness of transactional
                 programming primitives. Atomos and Java are compared
                 through the use of several benchmarks. The results
                 demonstrate both the improvements in parallel
                 programming ease and parallel program performance
                 provided by Atomos.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "conditional synchronization; Java; multiprocessor
                 architecture; transactional memory",
}

@Article{Harris:2006:OMT,
  author =       "Tim Harris and Mark Plesko and Avraham Shinnar and
                 David Tarditi",
  title =        "Optimizing memory transactions",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "14--25",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1133984",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Atomic blocks allow programmers to delimit sections of
                 code as 'atomic', leaving the language's implementation
                 to enforce atomicity. Existing work has shown how to
                 implement atomic blocks over word-based transactional
                 memory that provides scalable multi-processor
                 performance without requiring changes to the basic
                 structure of objects in the heap. However, these
                 implementations perform poorly because they interpose
                 on all accesses to shared memory in the atomic block,
                 redirecting updates to a thread-private log which must
                 be searched by reads in the block and later reconciled
                 with the heap when leaving the block. This paper takes
                 a four-pronged approach to improving performance: (1)
                 we introduce a new 'direct access' implementation that
                 avoids searching thread-private logs, (2) we develop
                 compiler optimizations to reduce the amount of logging
                 (e.g. when a thread accesses the same data repeatedly
                 in an atomic block), (3) we use runtime filtering to
                 detect duplicate log entries that are missed
                 statically, and (4) we present a series of GC-time
                 techniques to compact the logs generated by
                 long-running atomic blocks. Our implementation supports
                 short-running scalable concurrent benchmarks with less
                 than 50\\% overhead over a non-thread-safe baseline. We
                 support long atomic blocks containing millions of
                 shared memory accesses with a 2.5-4.5x slowdown.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomicity; critical regions; transactional memory",
}

@Article{Adl-Tabatabai:2006:CRS,
  author =       "Ali-Reza Adl-Tabatabai and Brian T. Lewis and Vijay
                 Menon and Brian R. Murphy and Bratin Saha and Tatiana
                 Shpeisman",
  title =        "Compiler and runtime support for efficient software
                 transactional memory",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "26--37",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1133985",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programmers have traditionally used locks to
                 synchronize concurrent access to shared data.
                 Lock-based synchronization, however, has well-known
                 pitfalls: using locks for fine-grain synchronization
                 and composing code that already uses locks are both
                 difficult and prone to deadlock. Transactional memory
                 provides an alternate concurrency control mechanism
                 that avoids these pitfalls and significantly eases
                 concurrent programming. Transactional memory language
                 constructs have recently been proposed as extensions to
                 existing languages or included in new concurrent
                 language specifications, opening the door for new
                 compiler optimizations that target the overheads of
                 transactional memory. This paper presents compiler and
                 runtime optimizations for transactional memory language
                 constructs. We present a high-performance software
                 transactional memory system (STM) integrated into a
                 managed runtime environment. Our system efficiently
                 implements nested transactions that support both
                 composition of transactions and partial roll back. Our
                 JIT compiler is the first to optimize the overheads of
                 STM, and we show novel techniques for enabling JIT
                 optimizations on STM operations. We measure the
                 performance of our optimizations on a 16-way SMP
                 running multi-threaded transactional workloads. Our
                 results show that these techniques enable transactional
                 memory's performance to compete with that of well-tuned
                 synchronization.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code generation; compiler optimizations; locking;
                 synchronization; transactional memory; virtual
                 machines",
}

@Article{Grimm:2006:BET,
  author =       "Robert Grimm",
  title =        "Better extensibility through modular syntax",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "38--51",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1133987",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We explore how to make the benefits of modularity
                 available for syntactic specifications and present
                 Rats!, a parser generator for Java that supports easily
                 extensible syntax. Our parser generator builds on
                 recent research on parsing expression grammars (PEGs),
                 which, by being closed under composition, prioritizing
                 choices, supporting unlimited lookahead, and
                 integrating lexing and parsing, offer an attractive
                 alternative to context-free grammars. PEGs are
                 implemented by so-called packrat parsers, which are
                 recursive descent parsers that memoize all intermediate
                 results (hence their name). Memoization ensures
                 linear-time performance in the presence of unlimited
                 lookahead, but also results in an essentially lazy,
                 functional parsing technique. In this paper, we explore
                 how to leverage PEGs and packrat parsers as the
                 foundation for extensible syntax. In particular, we
                 show how make packrat parsing more widely applicable by
                 implementing this lazy, functional technique in a
                 strict, imperative language, while also generating
                 better performing parsers through aggressive
                 optimizations. Next, we develop a module system for
                 organizing, modifying, and composing large-scale
                 syntactic specifications. Finally, we describe a new
                 technique for managing (global) parsing state in
                 functional parsers. Our experimental evaluation
                 demonstrates that the resulting parser generator
                 succeeds at providing extensible syntax. In particular,
                 Rats! enables other grammar writers to realize
                 real-world language extensions in little time and code,
                 and it generates parsers that consistently out-perform
                 parsers created by two GLR parser generators.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "extensible syntax; module system; packrat parsing;
                 parser generator; parsing expression grammar",
}

@Article{Ertl:2006:FFI,
  author =       "M. Anton Ertl and Kevin Casey and David Gregg",
  title =        "Fast and flexible instruction selection with on-demand
                 tree-parsing automata",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "52--60",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1133988",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Tree parsing as supported by code generator generators
                 like BEG, burg, iburg, lburg and ml-burg is a popular
                 instruction selection method. There are two existing
                 approaches for implementing tree parsing: dynamic
                 programming, and tree-parsing automata; each approach
                 has its advantages and disadvantages. We propose a new
                 implementation approach that combines the advantages of
                 both existing approaches: we start out with dynamic
                 programming at compile time, but at every step we
                 generate a state for a tree-parsing automaton, which is
                 used the next time a tree matching the state is found,
                 turning the instruction selector into a fast
                 tree-parsing automaton. We have implemented this
                 approach in the Gforth code generator. The
                 implementation required little effort and reduced the
                 startup time of Gforth by up to a factor of 2.5.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automaton; dynamic programming; instruction selection;
                 lazy; tree parsing",
}

@Article{Triantafyllis:2006:FUW,
  author =       "Spyridon Triantafyllis and Matthew J. Bridges and
                 Easwaran Raman and Guilherme Ottoni and David I.
                 August",
  title =        "A framework for unrestricted whole-program
                 optimization",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "61--71",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1133989",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Procedures have long been the basic units of
                 compilation in conventional optimization frameworks.
                 However, procedures are typically formed to serve
                 software engineering rather than optimization goals,
                 arbitrarily constraining code transformations.
                 Techniques, such as aggressive inlining and
                 interprocedural optimization, have been developed to
                 alleviate this problem, but, due to code growth and
                 compile time issues, these can be applied only
                 sparingly. This paper introduces the Procedure Boundary
                 Elimination (PBE) compilation framework, which allows
                 unrestricted whole-program optimization. PBE allows all
                 intra-procedural optimizations and analyses to operate
                 on arbitrary subgraphs of the program, regardless of
                 the original procedure boundaries and without resorting
                 to inlining. In order to control compilation time, PBE
                 also introduces novel extensions of region formation
                 and encapsulation. PBE enables targeted code
                 specialization, which recovers the specialization
                 benefits of inlining while keeping code growth in
                 check. This paper shows that PBE attains better
                 performance than inlining with half the code growth.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "inlining; interprocedural analysis; interprocedural
                 optimization; path-sensitive analysis; procedure
                 unification; region encapsulation; region formation;
                 region-based compilation; specialization; superblock;
                 whole-program analysis; whole-program optimization",
}

@Article{Neamtiu:2006:PDS,
  author =       "Iulian Neamtiu and Michael Hicks and Gareth Stoyle and
                 Manuel Oriol",
  title =        "Practical dynamic software updating for {C}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "72--83",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1133991",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software updates typically require stopping and
                 restarting an application, but many systems cannot
                 afford to halt service, or would prefer not to. Dynamic
                 software updating (DSU) addresses this difficulty by
                 permitting programs to be updated while they run. DSU
                 is appealing compared to other approaches for on-line
                 upgrades because it is quite general and requires no
                 redundant hardware. The challenge is in making DSU
                 practical: it should be flexible, and yet safe,
                 efficient, and easy to use. In this paper, we present
                 Ginseng, a DSU implementation for C that aims to meet
                 this challenge. We compile programs specially so that
                 they can be dynamically patched, and generate most of a
                 dynamic patch automatically. Ginseng performs a series
                 of analyses that when combined with some simple runtime
                 support ensure that an update will not violate
                 type-safety while guaranteeing that data is kept
                 up-to-date. We have used Ginseng to construct and
                 dynamically apply patches to three substantial
                 open-source server programs--- Very Secure FTP daemon,
                 OpenSSH sshd daemon, and GNU Zebra. In total, we
                 dynamically patched each program with three years'
                 worth of releases. Though the programs changed
                 substantially, the majority of updates were easy to
                 generate. Performance experiments show that all patches
                 could be applied in less than 5 ms, and that the
                 overhead on application throughput due to updating
                 support ranged from 0 to at most 32\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic software updating; function indirection; loop
                 extraction; type wrapping",
}

@Article{Fei:2006:APR,
  author =       "Long Fei and Samuel P. Midkiff",
  title =        "{Artemis}: practical runtime monitoring of
                 applications for execution anomalies",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "84--95",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1133992",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A number of hardware and software techniques have been
                 proposed to detect dynamic program behaviors that may
                 indicate a bug in a program. Because these techniques
                 suffer from high overheads they are useful in finding
                 bugs in programs before they are released, but are
                 significantly less useful in finding bugs in
                 long-running programs on production systems -- the same
                 bugs that are the most difficult to find using
                 traditional techniques. In this paper we propose the
                 Artemis$^1$ is the Greek goddess of the hunt and wild
                 animals. Our framework guides the hunt for wild bugs.
                 compiler-based instrumentation framework that
                 complements many pre-existing runtime monitoring
                 techniques. The Artemis framework guides baseline
                 monitoring techniques toward regions of the program
                 where bugs are likely to occur, yielding a low
                 asymptotic monitoring overhead. Artemis also
                 facilitates system-load aware runtime monitoring that
                 allows the monitoring coverage to be dynamically scaled
                 up to take advantage of extra cycles when the system
                 load is low, and dynamically scaled down to monitor
                 only the most suspicious regions when the system load
                 is high. Our experiments show that Artemis' asymptotic
                 overhead can outperform the performance floor overhead
                 of random sampling for many tools, and that Artemis can
                 effectively guide a monitoring tool to the buggy
                 regions of a program. Our experimental results show
                 that Artemis applied to a hardware-based PC-invariance
                 monitoring scheme and a value-based invariance
                 detection and checking scheme significantly improves
                 their runtime monitoring overhead (by up to 4.6 times)
                 with moderate impact on their bug-detecting
                 capabilities.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "context invariant; debugging; dynamic context;
                 pointer-type table; runtime monitoring; selective
                 monitoring; value invariant",
}

@Article{Acar:2006:EAS,
  author =       "Umut A. Acar and Guy E. Blelloch and Matthias Blume
                 and Kanat Tangwongsan",
  title =        "An experimental analysis of self-adjusting
                 computation",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "96--107",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1133993",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Dependence graphs and memoization can be used to
                 efficiently update the output of a program as the input
                 changes dynamically. Recent work has studied techniques
                 for combining these approaches to effectively dynamize
                 a wide range of applications. Toward this end various
                 theoretical results were given. In this paper we
                 describe the implementation of a library based on these
                 ideas, and present experimental results on the
                 efficiency of this library on a variety of
                 applications. The results of the experiments indicate
                 that the approach is effective in practice, often
                 requiring orders of magnitude less time than
                 recomputing the output from scratch. We believe this is
                 the first experimental evidence that incremental
                 computation of any type is effective in practice for a
                 reasonably broad set of applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "computational geometry; dynamic algorithms; dynamic
                 dependence graphs; memorization; performance;
                 self-adjusting computation",
}

@Article{Barton:2006:SMP,
  author =       "Christopher Barton and C{\u{a}}lin Cas{\c{c}}aval and
                 George Alm{\'a}si and Yili Zheng and Montse Farreras
                 and Siddhartha Chatterje and Jos{\'e} Nelson Amaral",
  title =        "Shared memory programming for large scale machines",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "108--117",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1133995",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes the design and implementation of
                 a scalable run-time system and an optimizing compiler
                 for Unified Parallel C (UPC). An experimental
                 evaluation on BlueGene/L{\reg}, a distributed-memory
                 machine, demonstrates that the combination of the
                 compiler with the runtime system produces programs with
                 performance comparable to that of efficient MPI
                 programs and good performance scalability up to
                 hundreds of thousands of processors. Our runtime system
                 design solves the problem of maintaining shared object
                 consistency efficiently in a distributed memory
                 machine. Our compiler infrastructure simplifies the
                 code generated for parallel loops in UPC through the
                 elimination of affinity tests, eliminates several
                 levels of indirection for accesses to segments of
                 shared arrays that the compiler can prove to be local,
                 and implements remote update operations through a
                 lower-cost asynchronous message. The performance
                 evaluation uses three well-known benchmarks --- HPC
                 RandomAccess, HPC STREAM and NAS CG --- to obtain
                 scaling and absolute performance numbers for these
                 benchmarks on up to 131072 processors, the full
                 BlueGene/L machine. These results were used to win the
                 HPC Challenge Competition at SC05 in Seattle WA,
                 demonstrating that PGAS languages support both
                 productivity and performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "BlueGene; PGAS programming model; UPC",
}

@Article{Ren:2006:ODP,
  author =       "Gang Ren and Peng Wu and David Padua",
  title =        "Optimizing data permutations for {SIMD} devices",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "118--131",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1133996",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The widespread presence of SIMD devices in today's
                 microprocessors has made compiler techniques for these
                 devices tremendously important. One of the most
                 important and difficult issues that must be addressed
                 by these techniques is the generation of the data
                 permutation instructions needed for non-contiguous and
                 misaligned memory references. These instructions are
                 expensive and, therefore, it is of crucial importance
                 to minimize their number to improve performance and, in
                 many cases, enable speedups over scalar code. Although
                 it is often difficult to optimize an isolated data
                 reorganization operation, a collection of related data
                 permutations can often be manipulated to reduce the
                 number of operations. This paper presents a strategy to
                 optimize all forms of data permutations. The strategy
                 is organized into three steps. First, all data
                 permutations in the source program are converted into a
                 generic representation. These permutations can
                 originate from vector accesses to non-contiguous and
                 misaligned memory locations or result from compiler
                 transformations. Second, an optimization algorithm is
                 applied to reduce the number of data permutations in a
                 basic block. By propagating permutations across
                 statements and merging consecutive permutations
                 whenever possible, the algorithm can significantly
                 reduce the number of data permutations. Finally, a code
                 generation algorithm translates generic permutation
                 operations into native permutation instructions for the
                 target platform. Experiments were conducted on various
                 kinds of applications. The results show that up to 77\%
                 of the permutation instructions are eliminated and, as
                 a result, the average performance improvement is 48\%
                 on VMX and 68\% on SSE2. For several applications, near
                 perfect speedups have been achieved on both
                 platforms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data permutation; optimization; SIMD compilation",
}

@Article{Nuzman:2006:AVI,
  author =       "Dorit Nuzman and Ira Rosen and Ayal Zaks",
  title =        "Auto-vectorization of interleaved data for {SIMD}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "132--143",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1133997",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Most implementations of the Single Instruction
                 Multiple Data (SIMD) model available today require that
                 data elements be packed in vector registers. Operations
                 on disjoint vector elements are not supported directly
                 and require explicit data reorganization manipulations.
                 Computations on non-contiguous and especially
                 interleaved data appear in important applications,
                 which can greatly benefit from SIMD instructions once
                 the data is reorganized properly. Vectorizing such
                 computations efficiently is therefore an ambitious
                 challenge for both programmers and vectorizing
                 compilers. We demonstrate an automatic compilation
                 scheme that supports effective vectorization in the
                 presence of interleaved data with constant strides that
                 are powers of 2, facilitating data reorganization. We
                 demonstrate how our vectorization scheme applies to
                 dominant SIMD architectures, and present experimental
                 results on a wide range of key kernels, showing
                 speedups in execution time up to 3.7 for interleaving
                 levels (stride) as high as 8.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data reuse; SIMD; subword parallelism; vectorization;
                 Viterbi",
}

@Article{Dhurjati:2006:SEA,
  author =       "Dinakar Dhurjati and Sumant Kowshik and Vikram Adve",
  title =        "{SAFECode}: enforcing alias analysis for weakly typed
                 languages",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "144--157",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1133999",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Static analysis of programs in weakly typed languages
                 such as C and C++ is generally not sound because of
                 possible memory errors due to dangling pointer
                 references, uninitialized pointers, and array bounds
                 overflow. We describe a compilation strategy for
                 standard C programs that guarantees that aggressive
                 interprocedural pointer analysis (or less precise
                 ones), a call graph, and type information for a subset
                 of memory, are never invalidated by any possible memory
                 errors. We formalize our approach as a new type system
                 with the necessary run-time checks in operational
                 semantics and prove the correctness of our approach for
                 a subset of C. Our semantics provide the foundation for
                 other sophisticated static analyses to be applied to C
                 programs with a guarantee of soundness. Our work builds
                 on a previously published transformation called
                 Automatic Pool Allocation to ensure that hard-to-detect
                 memory errors (dangling pointer references and certain
                 array bounds errors) cannot invalidate the call graph,
                 points-to information or type information. The key
                 insight behind our approach is that pool allocation can
                 be used to create a run-time partitioning of memory
                 that matches the compile-time memory partitioning in a
                 points-to graph, and efficient checks can be used to
                 isolate the run-time partitions. Furthermore, we show
                 that the sound analysis information enables static
                 checking techniques that eliminate many run-time
                 checks. Our approach requires no source code changes,
                 allows memory to be managed explicitly, and does not
                 use meta-data on pointers or individual tag bits for
                 memory. Using several benchmarks and system codes, we
                 show experimentally that the run-time overheads are low
                 (less than 10\% in nearly all cases and 30\% in the
                 worst case we have seen). We also show the
                 effectiveness of static analyses in eliminating
                 run-time checks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "alias analysis; automatic pool allocation; compilers;
                 programming languages; region management",
}

@Article{Berger:2006:DPM,
  author =       "Emery D. Berger and Benjamin G. Zorn",
  title =        "{DieHard}: probabilistic memory safety for unsafe
                 languages",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "158--168",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134000",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Applications written in unsafe languages like C and
                 C++ are vulnerable to memory errors such as buffer
                 overflows, dangling pointers, and reads of
                 uninitialized data. Such errors can lead to program
                 crashes, security vulnerabilities, and unpredictable
                 behavior. We present DieHard, a runtime system that
                 tolerates these errors while probabilistically
                 maintaining soundness. DieHard uses randomization and
                 replication to achieve probabilistic memory safety by
                 approximating an infinite-sized heap. DieHard's memory
                 manager randomizes the location of objects in a heap
                 that is at least twice as large as required. This
                 algorithm prevents heap corruption and provides a
                 probabilistic guarantee of avoiding memory errors. For
                 additional safety, DieHard can operate in a replicated
                 mode where multiple replicas of the same application
                 are run simultaneously. By initializing each replica
                 with a different random seed and requiring agreement on
                 output, the replicated version of Die-Hard increases
                 the likelihood of correct execution because errors are
                 unlikely to have the same effect across all replicas.
                 We present analytical and experimental results that
                 show DieHard's resilience to a wide range of memory
                 errors, including a heap-based buffer overflow in an
                 actual application.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "DieHard; dynamic memory allocation; probabilistic
                 memory safety; randomization; replication",
}

@Article{Zhang:2006:PDS,
  author =       "Xiangyu Zhang and Neelam Gupta and Rajiv Gupta",
  title =        "Pruning dynamic slices with confidence",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "169--180",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134002",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Given an incorrect value produced during a failed
                 program run (e.g., a wrong output value or a value that
                 causes the program to crash), the backward dynamic
                 slice of the value very frequently captures the faulty
                 code responsible for producing the incorrect value.
                 Although the dynamic slice often contains only a small
                 percentage of the statements executed during the failed
                 program run, the dynamic slice can still be large and
                 thus considerable effort may be required by the
                 programmer to locate the faulty code. In this paper we
                 develop a strategy for pruning the dynamic slice to
                 identify a subset of statements in the dynamic slice
                 that are likely responsible for producing the incorrect
                 value. We observe that some of the statements used in
                 computing the incorrect value may also have been
                 involved in computing correct values (e.g., a value
                 produced by a statement in the dynamic slice of the
                 incorrect value may also have been used in computing a
                 correct output value prior to the incorrect value). For
                 each such executed statement in the dynamic slice,
                 using the value profiles of the executed statements, we
                 compute a confidence value ranging from 0 to 1 --- a
                 higher confidence value corresponds to greater
                 likelihood that the execution of the statement produced
                 a correct value. Given a failed run involving execution
                 of a single error, we demonstrate that the pruning of a
                 dynamic slice by excluding only the statements with the
                 confidence value of 1 is highly effective in reducing
                 the size of the dynamic slice while retaining the
                 faulty code in the slice. Our experiments show that the
                 number of distinct statements in a pruned dynamic slice
                 are 1.79 to 190.57 times less than the full dynamic
                 slice. Confidence values also prioritize the statements
                 in the dynamic slice according to the likelihood of
                 them being faulty. We show that examining the
                 statements in the order of increasing confidence values
                 is an effective strategy for reducing the effort of
                 fault location.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data and control dependences; debugging; dynamic
                 slicing",
}

@Article{Johnson:2006:CSD,
  author =       "Troy A. Johnson and Rudolf Eigenmann",
  title =        "Context-sensitive domain-independent algorithm
                 composition and selection",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "181--192",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134003",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Progressing beyond the productivity of present-day
                 languages appears to require using domain-specific
                 knowledge. Domain-specific languages and libraries
                 (DSLs) proliferate, but most optimizations and language
                 features have limited portability because each
                 language's semantics are related closely to its domain.
                 We explain how any DSL compiler can use a
                 domain-independent AI planner to implement algorithm
                 composition as a language feature. Our notion of
                 composition addresses a common DSL problem: good
                 library designers tend to minimize redundancy by
                 including only fundamental procedures that users must
                 chain together into call sequences. Novice users are
                 confounded by not knowing an appropriate sequence to
                 achieve their goal. Composition allows the programmer
                 to define and call an abstract algorithm (AA) like a
                 procedure. The compiler replaces an AA call with a
                 sequence of library calls, while considering the
                 calling context. Because AI planners compute a sequence
                 of operations to reach a goal state, the compiler can
                 implement composition by analyzing the calling context
                 to provide the planner's initial state. Nevertheless,
                 mapping composition onto planning is not
                 straightforward because applying planning to software
                 requires extensions to classical planning, and
                 procedure specifications may be incomplete when
                 expressed in a planning language. Compositions may not
                 be provably correct, so our approach mitigates semantic
                 incompleteness with unobtrusive programmer-compiler
                 interaction. This tradeoff is key to making composition
                 a practical and natural feature of otherwise imperative
                 languages, whose users eschew complex logical
                 specifications. Compositions satisfying an AA may not
                 be equal in performance, memory usage, or precision and
                 require selection of a preferred solution. We examine
                 language design and implementation issues, and we
                 perform a case study on the BioPerl bioinformatics
                 library.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "algorithm composition; algorithm selection; automated
                 planning; bioinformatics; domain-specific languages",
}

@Article{Chen:2006:RNE,
  author =       "Guangyu Chen and Feihui Li and Mahmut Kandemir and
                 Mary Jane Irwin",
  title =        "Reducing {NoC} energy consumption through
                 compiler-directed channel voltage scaling",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "193--203",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134004",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "While scalable NoC (Network-on-Chip) based
                 communication architectures have clear advantages over
                 long point-to-point communication channels, their power
                 consumption can be very high. In contrast to most of
                 the existing hardware-based efforts on NoC power
                 optimization, this paper proposes a compiler-directed
                 approach where the compiler decides the appropriate
                 voltage/frequency levels to be used for each
                 communication channel in the NoC. Our approach builds
                 and operates on a novel graph based representation of a
                 parallel program and has been implemented within an
                 optimizing compiler and tested using 12 embedded
                 benchmarks. Our experiments indicate that the proposed
                 approach behaves better --- from both performance and
                 power perspectives --- than a hardware-based scheme and
                 the energy savings it achieves are very close to the
                 savings that could be obtained from an optimal, but
                 hypothetical voltage/frequency scaling scheme.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler; energy; network-on-chip",
}

@Article{Koes:2006:GPR,
  author =       "David Ryan Koes and Seth Copen Goldstein",
  title =        "A global progressive register allocator",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "204--215",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134006",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes a global progressive register
                 allocator, a register allocator that uses an expressive
                 model of the register allocation problem to quickly
                 find a good allocation and then progressively find
                 better allocations until a provably optimal solution is
                 found or a preset time limit is reached. The key
                 contributions of this paper are an expressive model of
                 global register allocation based on multicommodity
                 network flows that explicitly represents spill code
                 optimization, register preferences, copy insertion, and
                 constant rematerialization; two fast, but effective,
                 heuristic allocators based on this model; and a more
                 elaborate progressive allocator that uses Lagrangian
                 relaxation to compute the optimality of its
                 allocations. Our progressive allocator demonstrates
                 code size improvements as large as 16.75\% compared to
                 a traditional graph allocator. On average, we observe
                 an initial improvement of 3.47\%, which increases
                 progressively to 6.84\% as more time is permitted for
                 compilation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "progressive solver; register allocation",
}

@Article{Nakaike:2006:PBG,
  author =       "Takuya Nakaike and Tatsushi Inagaki and Hideaki
                 Komatsu and Toshio Nakatani",
  title =        "Profile-based global live-range splitting",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "216--227",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134007",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Live-range splitting is a technique to split the live
                 range of a given variable into multiple subranges, each
                 of which can be assigned to a different register or
                 spilled out to memory in order to improve results of
                 coloring register allocation. Previous techniques, such
                 as aggressive live-range splitting, tend to produce
                 extra spill code in the frequently executed (called
                 hot) regions of the code, since they don't distinguish
                 hot regions from others. We propose a new live-range
                 splitting algorithm, which can reduce the amount of
                 spill code in hot regions by coalescing the live ranges
                 based on profile information after splitting the live
                 ranges at every join and fork point in the control-flow
                 graph. Our experimental results have shown that our new
                 algorithm improved the performance of SPECjvm98 by up
                 to 33\% over aggressive live-range splitting and 7\%
                 over the base coloring algorithm without any live-range
                 splitting.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "graph coloring; live-range splitting; register
                 allocation",
}

@Article{Bridges:2006:AIS,
  author =       "Matthew J. Bridges and Neil Vachharajani and Guilherme
                 Ottoni and David I. August",
  title =        "Automatic instruction scheduler retargeting by
                 reverse-engineering",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "228--238",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134008",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In order to generate high-quality code for modern
                 processors, a compiler must aggressively schedule
                 instructions, maximizing resource utilization for
                 execution efficiency. For a compiler to produce such
                 code, it must avoid structural hazards by being aware
                 of the processor's available resources and of how these
                 resources are utilized by each instruction.
                 Unfortunately, the most prevalent approach to
                 constructing such a scheduler, manually discovering and
                 specifying this information, is both tedious and
                 error-prone. This paper presents a new approach which,
                 when given a processor or processor model,
                 automatically determines this information. After
                 establishing that the problem of perfectly determining
                 a processor's structural hazards through probing is not
                 solvable, this paper proposes a heuristic algorithm
                 that discovers most of this information in practice.
                 This can be used either to alleviate the problems
                 associated with manual creation or to verify an
                 existing specification. Scheduling with these
                 automatically derived structural hazards yields almost
                 all of the performance gain achieved using perfect
                 hazard information.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic retargeting; compilers; instruction
                 scheduling; reverse-engineering; structural hazard",
}

@Article{Lau:2006:OPA,
  author =       "Jeremy Lau and Matthew Arnold and Michael Hind and
                 Brad Calder",
  title =        "Online performance auditing: using hot optimizations
                 without getting burned",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "239--251",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134010",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As hardware complexity increases and virtualization is
                 added at more layers of the execution stack, predicting
                 the performance impact of optimizations becomes
                 increasingly difficult. Production compilers and
                 virtual machines invest substantial development effort
                 in performance tuning to achieve good performance for a
                 range of benchmarks. Although optimizations typically
                 perform well on average, they often have unpredictable
                 impact on running time, sometimes degrading performance
                 significantly. Today's VMs perform sophisticated
                 feedback-directed optimizations, but these techniques
                 do not address performance degradations, and they
                 actually make the situation worse by making the system
                 more unpredictable. This paper presents an online
                 framework for evaluating the effectiveness of
                 optimizations, enabling an online system to
                 automatically identify and correct performance
                 anomalies that occur at runtime. This work opens the
                 door for a fundamental shift in the way optimizations
                 are developed and tuned for online systems, and may
                 allow the body of work in offline empirical
                 optimization search to be applied automatically at
                 runtime. We present our implementation and evaluation
                 of this system in a product Java VM.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "feedback-directed optimizations; Java; virtual
                 machines",
}

@Article{Chilimbi:2006:CCC,
  author =       "Trishul M. Chilimbi and Ran Shaham",
  title =        "Cache-conscious coallocation of hot data streams",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "252--262",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134011",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The memory system performance of many programs can be
                 improved by coallocating contemporaneously accessed
                 heap objects in the same cache block. We present a
                 novel profile-based analysis for producing such a
                 layout. The analysis achieves cache-conscious
                 coallocation of a hot data stream H (i.e., a regular
                 data access pattern that frequently repeats) by
                 isolating and combining allocation sites of object
                 instances that appear in H such that intervening
                 allocations coming from other sites are separated. The
                 coallocation solution produced by the analysis is
                 enforced by an automatic tool, cminstr, that redirects
                 a program's heap allocations to a run-time coallocation
                 library comalloc. We also extend the analysis to
                 coallocation at object field granularity. The resulting
                 field coallocation solution generalizes common data
                 restructuring techniques, such as field reordering,
                 object splitting, and object merging, and allows their
                 combination. Furthermore, it provides insight into
                 object restructuring by breaking down the coallocation
                 benefit on a per-technique basis, which provides the
                 opportunity to pick the 'sweet spot' for each program.
                 Experimental results using a set of
                 memory-performance-limited benchmarks, including a few
                 SPECInt2000 programs, and Microsoft VisualFoxPro,
                 indicate that programs possess significant coallocation
                 opportunities. Automatic object coallocation improves
                 execution time by 13\% on average in the presence of
                 hardware prefetching. Hand-implemented field
                 coallocation solutions for two of the benchmarks
                 produced additional improvements (12\% and 22\%) but
                 the effort involved suggests implementing an automated
                 version for type-safe languages, such as Java and
                 C\#.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cache optimization; data locality; data profiling;
                 dynamic allocation; hot data streams; memory layout",
}

@Article{Zhuang:2006:AEA,
  author =       "Xiaotong Zhuang and Mauricio J. Serrano and Harold W.
                 Cain and Jong-Deok Choi",
  title =        "Accurate, efficient, and adaptive calling context
                 profiling",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "263--271",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134012",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Calling context profiles are used in many
                 inter-procedural code optimizations and in overall
                 program understanding. Unfortunately, the collection of
                 profile information is highly intrusive due to the high
                 frequency of method calls in most applications.
                 Previously proposed calling-context profiling
                 mechanisms consequently suffer from either low
                 accuracy, high overhead, or both. We have developed a
                 new approach for building the calling context tree at
                 runtime, called adaptive bursting. By selectively
                 inhibiting redundant profiling, this approach
                 dramatically reduces overhead while preserving profile
                 accuracy. We first demonstrate the drawbacks of
                 previously proposed calling context profiling
                 mechanisms. We show that a low-overhead solution using
                 sampled stack-walking alone is less than 50\% accurate,
                 based on degree of overlap with a complete
                 calling-context tree. We also show that a static
                 bursting approach collects a highly accurate profile,
                 but causes an unacceptable application slowdown. Our
                 adaptive solution achieves 85\% degree of overlap and
                 provides an 88\% hot-edge coverage when using a 0.1
                 hot-edge threshold, while dramatically reducing
                 overhead compared to the static bursting approach.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "adaptive; call graph; calling context; calling context
                 tree; Java Virtual Machine; profiling",
}

@Article{Jarvi:2006:ASG,
  author =       "Jaakko J{\"a}rvi and Douglas Gregor and Jeremiah
                 Willcock and Andrew Lumsdaine and Jeremy Siek",
  title =        "Algorithm specialization in generic programming:
                 challenges of constrained generics in {C++}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "272--282",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134014",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Generic programming has recently emerged as a paradigm
                 for developing highly reusable software libraries, most
                 notably in C++. We have designed and implemented a
                 constrained generics extension for C++ to support
                 modular type checking of generic algorithms and to
                 address other issues associated with unconstrained
                 generics. To be as broadly applicable as possible,
                 generic algorithms are defined with minimal
                 requirements on their inputs. At the same time, to
                 achieve a high degree of efficiency, generic algorithms
                 may have multiple implementations that exploit features
                 of specific classes of inputs. This process of
                 algorithm specialization relies on non-local type
                 information and conflicts directly with the local
                 nature of modular type checking. In this paper, we
                 review the design and implementation of our extensions
                 for generic programming in C++, describe the issues of
                 algorithm specialization and modular type checking in
                 detail, and discuss the important design tradeoffs in
                 trying to accomplish both. We present the particular
                 design that we chose for our implementation, with the
                 goal of hitting the sweet spot in this interesting
                 design space.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concepts; constrained generics; generic programming;
                 parametric polymorphism; specialization",
}

@Article{Spoonhower:2006:ESP,
  author =       "Daniel Spoonhower and Joshua Auerbach and David F.
                 Bacon and Perry Cheng and David Grove",
  title =        "{Eventrons}: a safe programming construct for
                 high-frequency hard real-time applications",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "283--294",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134015",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "While real-time garbage collection has achieved
                 worst-case latencies on the order of a millisecond,
                 this technology is approaching its practical limits.
                 For tasks requiring extremely low latency, and
                 especially periodic tasks with frequencies above 1 KHz,
                 Java programmers must currently resort to the
                 NoHeapRealtimeThread construct of the Real-Time
                 Specification for Java. This technique requires
                 expensive run-time checks, can result in unpredictable
                 low-level exceptions, and inhibits communication with
                 the rest of the garbage-collected application. We
                 present Eventrons, a programming construct that can
                 arbitrarily preempt the garbage collector, yet
                 guarantees safety and allows its data to be visible to
                 the garbage-collected heap. Eventrons are a strict
                 subset of Java, and require no run-time memory access
                 checks. Safety is enforced using a data-sensitive
                 analysis and simple run-time support with extremely low
                 overhead. We have implemented Eventrons in IBM's J9
                 Java virtual machine, and present experimental results
                 in which we ran Eventrons at frequencies up to 22 KHz
                 (a 45 $\mu$s period). Across 10 million periods,
                 99.997\% of the executions ran within 10 $\mu$ ss of
                 their deadline, compared to 99.999\% of the executions
                 of the equivalent program written in C.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "allocation; real-time; scheduling",
}

@Article{Shivers:2006:CTC,
  author =       "Olin Shivers and Matthew Might",
  title =        "Continuations and transducer composition",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "295--307",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134016",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "On-line transducers are an important class of
                 computational agent; we construct and compose together
                 many software systems using them, such as stream
                 processors, layered network protocols, DSP networks and
                 graphics pipelines. We show an interesting use of
                 continuations, that, when taken in a CPS setting,
                 exposes the control flow of these systems. This enables
                 a CPS-based compiler to optimise systems composed of
                 these transducers, using only standard, known analyses
                 and optimisations. Critically, the analysis permits
                 optimisation across the composition of these
                 transducers, allowing efficient construction of systems
                 in a hierarchical way.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "calculus; continuation-passing style (CPS);
                 continuations; coroutines; flow analysis; functional
                 languages; fusion; lambda; language design; program
                 analysis; stream processing",
}

@Article{Naik:2006:ESR,
  author =       "Mayur Naik and Alex Aiken and John Whaley",
  title =        "Effective static race detection for {Java}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "308--319",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134018",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a novel technique for static race detection
                 in Java programs, comprised of a series of stages that
                 employ a combination of static analyses to successively
                 reduce the pairs of memory accesses potentially
                 involved in a race. We have implemented our technique
                 and applied it to a suite of multi-threaded Java
                 programs. Our experiments show that it is precise,
                 scalable, and useful, reporting tens to hundreds of
                 serious and previously unknown concurrency bugs in
                 large, widely-used programs with few false alarms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; Java; multi-threading; static race
                 detection; synchronization",
}

@Article{Pratikakis:2006:LCS,
  author =       "Polyvios Pratikakis and Jeffrey S. Foster and Michael
                 Hicks",
  title =        "{LOCKSMITH}: context-sensitive correlation analysis
                 for race detection",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "320--331",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134019",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "One common technique for preventing data races in
                 multi-threaded programs is to ensure that all accesses
                 to shared locations are consistently protected by a
                 lock. We present a tool called LOCKSMITH for detecting
                 data races in C programs by looking for violations of
                 this pattern. We call the relationship between locks
                 and the locations they protect consistent correlation,
                 and the core of our technique is a novel
                 constraint-based analysis that infers consistent
                 correlation context-sensitively, using the results to
                 check that locations are properly guarded by locks. We
                 present the core of our algorithm for a simple formal
                 language \lambda$_>$ which we have proven sound, and
                 discuss how we scale it up to an algorithm that aims to
                 be sound for all of C. We develop several techniques to
                 improve the precision and performance of the analysis,
                 including a sharing analysis for inferring thread
                 locality; existential quantification for modeling locks
                 in data structures; and heuristics for modeling unsafe
                 features of C such as type casts. When applied to
                 several benchmarks, including multi-threaded servers
                 and Linux device drivers, LOCKSMITH found several races
                 while producing a modest number of false alarm.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "context-sensitivity; correlation; locksmith;
                 multi-threaded programming; race detection; type
                 inference",
}

@Article{Chen:2006:PGP,
  author =       "Wen-ke Chen and Sanjay Bhansali and Trishul Chilimbi
                 and Xiaofeng Gao and Weihaw Chuang",
  title =        "Profile-guided proactive garbage collection for
                 locality optimization",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "332--340",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134021",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many applications written in garbage collected
                 languages have large dynamic working sets and poor data
                 locality. We present a new system for continuously
                 improving program data locality at run time with low
                 overhead. Our system proactively reorganizes the heap
                 by leveraging the garbage collector and uses profile
                 information collected through a low-overhead mechanism
                 to guide the reorganization at run time. The key
                 contributions include making a case that garbage
                 collection should be viewed as a proactive technique
                 for improving data locality by triggering garbage
                 collection for locality optimization independently of
                 normal garbage collection for space, combining page and
                 cache locality optimization in the same system, and
                 demonstrating that sampling provides sufficiently
                 detailed data access information to guide both page and
                 cache locality optimization with low runtime overhead.
                 We present experimental results obtained by modifying a
                 commercial, state-of-the-art garbage collector to
                 support our claims. Independently triggering garbage
                 collection for locality optimization significantly
                 improved optimizations benefits. Combining page and
                 cache locality optimizations in the same system
                 provided larger average execution time improvements
                 (17\%) than either alone (page 8\%, cache 7\%).
                 Finally, using sampling limited profiling overhead to
                 less than 3\%, on average.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cache optimization; data locality; garbage collectors;
                 memory optimization; page optimization",
}

@Article{Vechev:2006:CPD,
  author =       "Martin T. Vechev and Eran Yahav and David F. Bacon",
  title =        "Correctness-preserving derivation of concurrent
                 garbage collection algorithms",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "341--353",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134022",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Constructing correct concurrent garbage collection
                 algorithms is notoriously hard. Numerous such
                 algorithms have been proposed, implemented, and
                 deployed --- and yet the relationship among them in
                 terms of speed and precision is poorly understood, and
                 the validation of one algorithm does not carry over to
                 others. As programs with low latency requirements
                 written in garbage-collected languages become part of
                 society's mission-critical infrastructure, it is
                 imperative that we raise the level of confidence in the
                 correctness of the underlying system, and that we
                 understand the trade-offs inherent in our algorithmic
                 choice. In this paper we present correctness-preserving
                 transformations that can be applied to an initial
                 abstract concurrent garbage collection algorithm which
                 is simpler, more precise, and easier to prove correct
                 than algorithms used in practice--but also more
                 expensive and with less concurrency. We then show how
                 both pre-existing and new algorithms can be synthesized
                 from the abstract algorithm by a series of our
                 transformations. We relate the algorithms formally
                 using a new definition of precision, and informally
                 with respect to overhead and concurrency. This provides
                 many insights about the nature of concurrent
                 collection, allows the direct synthesis of new and
                 useful algorithms, reduces the burden of proof to a
                 single simple algorithm, and lays the groundwork for
                 the automated synthesis of correct concurrent
                 collectors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrent algorithms; concurrent garbage collection;
                 synthesis; verification",
}

@Article{Kermany:2006:CCI,
  author =       "Haim Kermany and Erez Petrank",
  title =        "The {Compressor}: concurrent, incremental, and
                 parallel compaction",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "354--363",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134023",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The widely used Mark-and-Sweep garbage collector has a
                 drawback in that it does not move objects during
                 collection. As a result, large long-running realistic
                 applications, such as Web application servers,
                 frequently face the fragmentation problem. To eliminate
                 fragmentation, a heap compaction is run periodically.
                 However, compaction typically imposes very long
                 undesirable pauses in the application. While efficient
                 concurrent collectors are ubiquitous in production
                 runtime systems (such as JVMs), an efficient
                 non-intrusive compactor is still missing. In this paper
                 we present the Compressor, a novel compaction algorithm
                 that is concurrent, parallel, and incremental. The
                 Compressor compacts the entire heap to a single
                 condensed area, while preserving the objects' order,
                 but reduces pause times significantly, thereby allowing
                 acceptable runs on large heaps. Furthermore, the
                 Compressor is the first compactor that requires only a
                 single heap pass. As such, it is the most efficient
                 compactors known today, even when run in a parallel
                 Stop-the-World manner (i.e., when the program threads
                 are halted). Thus, to the best of our knowledge, the
                 Compressor is the most efficient compactor known today.
                 The Compressor was implemented on a Jikes Research RVM
                 and we provide measurements demonstrating its
                 qualities.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compaction; concurrent garbage collection; garbage
                 collection; memory management; runtime systems",
}

@Article{Guyer:2006:FMS,
  author =       "Samuel Z. Guyer and Kathryn S. McKinley and Daniel
                 Frampton",
  title =        "{Free-Me}: a static analysis for automatic individual
                 object reclamation",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "364--375",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134024",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Garbage collection has proven benefits, including
                 fewer memory related errors and reduced programmer
                 effort. Garbage collection, however, trades space for
                 time. It reclaims memory only when it is invoked:
                 invoking it more frequently reclaims memory quickly,
                 but incurs a significant cost; invoking it less
                 frequently fills memory with dead objects. In contrast,
                 explicit memory management provides prompt low cost
                 reclamation, but at the expense of programmer effort.
                 This work comes closer to the best of both worlds by
                 adding novel compiler and runtime support for compiler
                 inserted frees to a garbage-collected system. The
                 compiler's free-me analysis identifies when objects
                 become unreachable and inserts calls to free. It
                 combines a lightweight pointer analysis with liveness
                 information that detects when short-lived objects die.
                 Our approach differs from stack and region allocation
                 in two crucial ways. First, it frees objects
                 incrementally exactly when they become unreachable,
                 instead of based on program scope. Second, our system
                 does not require allocation-site lifetime homogeneity,
                 and thus frees objects on some paths and not on others.
                 It also handles common patterns: it can free objects in
                 loops and objects created by factory methods. We
                 evaluate free() variations for free-list and
                 bump-pointer allocators. Explicit freeing improves
                 performance by promptly reclaiming objects and reducing
                 collection load. Compared to marksweep alone, free-me
                 cuts total time by 22\% on average, collector time by
                 50\% to 70\%, and allows programs to run in 17\% less
                 memory. This combination retains the software
                 engineering benefits of garbage collection while
                 increasing space efficiency and improving performance,
                 and thus is especially appealing for real-time and
                 space constrained systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "adaptive; compiler-assisted; copying; generational;
                 liveness; locality; mark-sweep; pointer analysis",
}

@Article{Gulwani:2006:CAI,
  author =       "Sumit Gulwani and Ashish Tiwari",
  title =        "Combining abstract interpreters",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "376--386",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134026",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a methodology for automatically combining
                 abstract interpreters over given lattices to construct
                 an abstract interpreter for the combination of those
                 lattices. This lends modularity to the process of
                 design and implementation of abstract interpreters. We
                 define the notion of logical product of lattices. This
                 kind of combination is more precise than the reduced
                 product combination. We give algorithms to obtain the
                 join operator and the existential quantification
                 operator for the combined lattice from the
                 corresponding operators of the individual lattices. We
                 also give a bound on the number of steps required to
                 reach a fixed point across loops during analysis over
                 the combined lattice in terms of the corresponding
                 bounds for the individual lattices. We prove that our
                 combination methodology yields the most precise
                 abstract interpretation operators over the logical
                 product of lattices when the individual lattices are
                 over theories that are convex, stably infinite, and
                 disjoint. We also present an interesting application of
                 logical product wherein some lattices can be reduced to
                 combination of other (unrelated) lattices with known
                 abstract interpreters.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpreter; logical product; Nelson-Oppen
                 combination; reduced product",
}

@Article{Sridharan:2006:RBC,
  author =       "Manu Sridharan and Rastislav Bod{\'\i}k",
  title =        "Refinement-based context-sensitive points-to analysis
                 for {Java}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "387--400",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133255.1134027",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a scalable and precise context-sensitive
                 points-to analysis with three key properties: (1)
                 filtering out of unrealizable paths, (2) a
                 context-sensitive heap abstraction, and (3) a
                 context-sensitive call graph. Previous work [21] has
                 shown that all three properties are important for
                 precisely analyzing large programs, e.g., to show
                 safety of downcasts. Existing analyses typically give
                 up one or more of the properties for scalability. We
                 have developed a refinement-based analysis that
                 succeeds by simultaneously refining handling of method
                 calls and heap accesses, allowing the analysis to
                 precisely analyze important code while entirely
                 skipping irrelevant code. The analysis is demand-driven
                 and client-driven, facilitating refinement specific to
                 each queried variable and increasing scalability. In
                 our experimental evaluation, our analysis proved the
                 safety of 61\% more casts than one of the most precise
                 existing analyses across a suite of large benchmarks.
                 The analysis checked the casts in under 13 minutes per
                 benchmark (taking less than 1 second per query) and
                 required only 35MB of memory, far less than previous
                 approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "context-sensitive analysis; demand-driven analysis;
                 points-to analysis; refinement",
}

@Article{Feng:2006:MVA,
  author =       "Xinyu Feng and Zhong Shao and Alexander Vaynberg and
                 Sen Xiang and Zhaozhong Ni",
  title =        "Modular verification of assembly code with stack-based
                 control abstractions",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "401--414",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134028",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Runtime stacks are critical components of any modern
                 software--they are used to implement powerful control
                 structures such as function call/return, stack cutting
                 and unwinding, coroutines, and thread context switch.
                 Stack operations, however, are very hard to reason
                 about: there are no known formal specifications for
                 certifying C-style setjmp/longjmp, stack cutting and
                 unwinding, or weak continuations (in C--). In many
                 proof-carrying code (PCC) systems, return code pointers
                 and exception handlers are treated as general
                 first-class functions (as in continuation-passing
                 style) even though both should have more limited
                 scopes. In this paper we show that stack-based control
                 abstractions follow a much simpler pattern than general
                 first-class code pointers. We present a simple but
                 flexible Hoare-style framework for modular verification
                 of assembly code with all kinds of stack-based control
                 abstractions, including function call/return, tail
                 call, setjmp/longjmp, weak continuation, stack cutting,
                 stack unwinding, multi-return function call,
                 coroutines, and thread context switch. Instead of
                 presenting a specific logic for each control structure,
                 we develop all reasoning systems as instances of a
                 generic framework. This allows program modules and
                 their proofs developed in different PCC systems to be
                 linked together. Our system is fully mechanized. We
                 give the complete soundness proof and a full
                 verification of several examples in the Coq proof
                 assistant.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "assembly code verification; control abstractions;
                 modularity; proof-carrying code; stack-based",
}

@Article{Cook:2006:TPS,
  author =       "Byron Cook and Andreas Podelski and Andrey
                 Rybalchenko",
  title =        "Termination proofs for systems code",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "6",
  pages =        "415--426",
  month =        jun,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1133981.1134029",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:48 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Program termination is central to the process of
                 ensuring that systems code can always react. We
                 describe a new program termination prover that performs
                 a path-sensitive and context-sensitive program analysis
                 and provides capacity for large program fragments (i.e.
                 more than 20,000 lines of code) together with support
                 for programming language features such as arbitrarily
                 nested loops, pointers, function-pointers,
                 side-effects, etc. We also present experimental results
                 on device driver dispatch routines from the Windows
                 operating system. The most distinguishing aspect of our
                 tool is how it shifts the balance between the two tasks
                 of constructing and respectively checking the
                 termination argument. Checking becomes the hard step.
                 In this paper we show how we solve the corresponding
                 challenge of checking with binary reachability
                 analysis.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "formal verification; model checking; program
                 termination; program verification",
}

@Article{Martonosi:2006:ESW,
  author =       "Margaret Martonosi",
  title =        "Embedded systems in the wild: {ZebraNet} software,
                 hardware, and deployment experiences",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "1--1",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159974.1134651",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Princeton ZebraNet project is a collaboration of
                 engineers and biologists to build mobile, wireless
                 embedded systems for wildlife tracking. Over the
                 lifetime of the project, we have implemented a number
                 of compression, communication, and data management
                 algorithms specifically tailored for the small memory,
                 constrained energy and sparse connectivity of these
                 long-lifetime systems. We have gone through three major
                 generations of hardware and software implementations,
                 and have done two successful real-world deployments on
                 Plains Zebras in Kenya, with a third deployment planned
                 for Summer, 2007. In this talk, I will discuss our
                 real-life experiences with crafting embedded systems
                 hardware and software, and our deployment experiences
                 in Africa. I will also put forward a vision for how
                 portability, reliability, and energy-efficiency can be
                 well-supported in future embedded systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{vonPlaten:2006:FLO,
  author =       "Carl von Platen and Johan Eker",
  title =        "Feedback linking: optimizing object code layout for
                 updates",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "2--11",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159974.1134653",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Firmware over the air (FOTA) is becoming a standard
                 procedure for maintaining and updating wireless
                 embedded systems. To cope with bandwidth and storage
                 constraints this is facilitated using incremental
                 updates based on delta technology, i.e. only the
                 modifications are transmitted. The performance of a
                 FOTA update is highly dependent on the size of the
                 delta, and the type of modifications. Application of a
                 delta update involves mutating the present version,
                 byte by byte, into the new version. The problem is that
                 even the smallest change in the source code may cause
                 almost every single memory position to be affected, and
                 thus requiring the complete memory to be rewritten.
                 This has two implications: First, the time spent
                 updating memory becomes unnecessary long. Secondly, and
                 much worse, since a large part of the system is
                 affected, the system is not functional during
                 application. This paper introduces the concept of a
                 feedback linker, which uses the object code layout of
                 the previous version, when building a new version. The
                 feedback linker maximizes the similarities between two
                 versions allowing for smaller update packages and
                 faster upgrades. The feedback linker is described in
                 terms of an optimization procedure, a prototype test
                 bed and a set of experimental results.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "flash memory; incremental software update",
}

@Article{Zhang:2006:MDS,
  author =       "Kun Zhang and Santosh Pande",
  title =        "Minimizing downtime in seamless migrations of mobile
                 applications",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "12--21",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134654",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Application migration is a key enabling technology
                 component of mobile computing that allows rich
                 semantics involving location awareness, trust and
                 timeliness of information processing by moving the
                 application where the data is. Seamlessness is one of
                 the key properties of mobile computing and downtime
                 must be eliminated/minimized during the migration to
                 achieve seamlessness. But migration involves large
                 overheads, dominant of which are the overheads due to
                 serialization and de-serialization [1]. To achieve
                 seamless migration, an application state could be
                 pre-serialized during the program's execution, and upon
                 migration, the serialized data could be transmitted and
                 de-serialized to get the execution started. Previous
                 approach to this problem [1] removed dead state but
                 still suffered from large migration overheads due to
                 serialization on-demand that could lead to an
                 unacceptable downtime. In this work, we develop a
                 static compiler analysis plus runtime assisted
                 framework to decrease the migration overhead to almost
                 zero while minimizing the degradation in the program's
                 performance. We achieve such a goal by deciding which
                 data to be pre-serialized through analysis, and
                 pre-serializing the state in the program. A safe state
                 is kept that would allow immediate migration upon the
                 arrival of an interrupt while minimizing frequent
                 pre-serialization. When the migration interrupt comes
                 in, the serialized data can be transmitted directly to
                 the destination machine. This allows an application to
                 resume its execution at the destination machine with
                 almost no interruption (only a small amount of
                 non-serialized data needs to be serialized during
                 migration). The optimization serializes the data in
                 such a way that a maximal number of functions can
                 execute without interruption after migration. Our
                 experiments with multimedia applications show that the
                 migration latency is significantly reduced leading to a
                 small downtime. Thus, the contribution of the paper is
                 to provide an efficient methodology to perform seamless
                 migration while limiting the overhead.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler; mobile computing; seamless migration",
}

@Article{Spivak:2006:SPT,
  author =       "Michal Spivak and Sivan Toledo",
  title =        "Storing a persistent transactional object heap on
                 flash memory",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "22--33",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134655",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present the design and implementation of TinyStore,
                 a persistent, transactional, garbage-collected
                 memory-management system, designed to be called from
                 the Java virtual machine of a Java Card. The system is
                 designed for flash-based implementations of Java Card,
                 a variant of the Java platform for smart cards. In the
                 Java Card platform, objects are persistent by default.
                 The platform supports transactions: a sequence of
                 accesses to objects can be explicitly declared to
                 constitute a transaction. TinyStore supports explicit
                 transactions and atomically executes individual
                 accesses that are not part of transactions; it also
                 supports garbage collection, even on systems with a
                 small constant amount of ram. TinyStore uses a novel
                 approach and specialized data structures to efficiently
                 manage flash memory. We demonstrate its effectiveness
                 by comparing it to a traditional eeprom-based memory
                 management system for Java Cards.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "flash; Java Card; nor flash; persistent heaps;
                 persistent object stores; smart cards; transactions",
}

@Article{Regehr:2006:DAT,
  author =       "John Regehr and Usit Duongsaa",
  title =        "Deriving abstract transfer functions for analyzing
                 embedded software",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "34--43",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134657",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper addresses the problem of creating abstract
                 transfer functions supporting dataflow analyses.
                 Writing these functions by hand is problematic:
                 transfer functions are difficult to understand,
                 difficult to make precise, and difficult to debug. Bugs
                 in transfer functions are particularly serious since
                 they defeat the soundness of any program analysis
                 running on top of them. Furthermore, implementing
                 transfer functions by hand is wasteful because the
                 resulting code is often difficult to reuse in new
                 analyzers and to analyze new languages. We have
                 developed algorithms and tools for deriving transfer
                 functions for the bitwise and unsigned interval
                 abstract domains. The interval domain is standard; in
                 the bitwise domain, values are vectors of three-valued
                 bits. For both domains, important challenges are to
                 derive transfer functions that are sound in the
                 presence of integer overflow, and to derive precise
                 transfer functions for operations whose semantics are a
                 mismatch for the domain (i.e., bit-vector operations in
                 the interval domain and arithmetic operations in the
                 bitwise domain). We can derive transfer functions, and
                 execute them, in time linear in the bitwidth of the
                 operands. These functions are maximally precise in most
                 cases. Our generated transfer functions are
                 parameterized by a bitwidth and are independent of the
                 language being analyzed, and also of the language in
                 which the analyzer is written. Currently, we generate
                 interval and bitwise transfer functions in C and OCaml
                 for analyzing C source code, ARM object code, and AVR
                 object code. We evaluate our derived functions by using
                 them in an interprocedural dataflow analyzer.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpretation; embedded software; static
                 analysis; transfer functions",
}

@Article{Cooprider:2006:PAD,
  author =       "Nathan Cooprider and John Regehr",
  title =        "Pluggable abstract domains for analyzing embedded
                 software",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "44--53",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134658",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many abstract value domains such as intervals,
                 bitwise, constants, and value-sets have been developed
                 to support dataflow analysis. Different domains offer
                 alternative tradeoffs between analysis speed and
                 precision. Furthermore, some domains are a better match
                 for certain kinds of code than others. This paper
                 presents the design and implementation of cXprop, an
                 analysis and transformation tool for C that implements
                 'conditional X propagation,' a generalization of the
                 well-known conditional constant propagation algorithm
                 where X is an abstract value domain supplied by the
                 user. cXprop is interprocedural, context-insensitive,
                 and achieves reasonable precision on pointer-rich
                 codes. We have applied cXprop to sensor network
                 programs running on TinyOS, in order to reduce code
                 size through interprocedural dead code elimination, and
                 to find limited-bitwidth global variables. Our analysis
                 of global variables is supported by a novel concurrency
                 model for interrupt-driven software. cXprop reduces
                 TinyOS application code size by an average of 9.2\% and
                 predicts an average data size reduction of 8.2\%
                 through RAM compression.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpretation; embedded software; TinyOS",
}

@Article{Mine:2006:FSV,
  author =       "Antoine Min{\'e}",
  title =        "Field-sensitive value analysis of embedded {C}
                 programs with union types and pointer arithmetics",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "54--63",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134659",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a memory abstraction able to lift existing
                 numerical static analyses to C programs containing
                 union types, pointer casts, and arbitrary pointer
                 arithmetics. Our framework is that of a combined
                 points-to and data-value analysis. We abstract the
                 contents of compound variables in a field-sensitive
                 way, whether these fields contain numeric or pointer
                 values, and use stock numerical abstract domains to
                 find an overapproximation of all possible memory
                 states---with the ability to discover relationships
                 between variables. A main novelty of our approach is
                 the dynamic mapping scheme we use to associate a flat
                 collection of abstract cells of scalar type to the set
                 of accessed memory locations, while taking care of
                 byte-level aliases--- i.e., C variables with
                 incompatible types allocated in overlapping memory
                 locations. We do not rely on static type information
                 which can be misleading in C programs as it does not
                 account for all the uses a memory zone may be put to.
                 Our work was incorporated within the Astr{\'e}e static
                 analyzer that checks for the absence of run-time-errors
                 in embedded, safety-critical, numerical-intensive
                 software. It replaces the former memory domain limited
                 to well-typed, union-free, pointer-cast free
                 data-structures. Early results demonstrate that this
                 abstraction allows analyzing a larger class of C
                 programs, without much cost overhead.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpretation; critical software; numerical
                 analysis; points-to analysis",
}

@Article{Kreahling:2006:RCC,
  author =       "William Kreahling and Stephen Hines and David Whalley
                 and Gary Tyson",
  title =        "Reducing the cost of conditional transfers of control
                 by using comparison specifications",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "64--71",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159974.1134661",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A significant portion of a program's execution cycles
                 are typically dedicated to performing conditional
                 transfers of control. Much of the research on reducing
                 the costs of these operations has focused on the
                 branch, while the comparison has been largely ignored.
                 In this paper we investigate reducing the cost of
                 comparisons in conditional transfers of control. We
                 decouple the specification of the values to be compared
                 from the actual comparison itself, which now occurs as
                 part of the branch instruction. The specification of
                 the register or immediate values involved in the
                 comparison is accomplished via a new instruction called
                 a comparison specification, which is loop invariant.
                 Decoupling the specification of the comparison from the
                 actual comparison performed before the branch reduces
                 the number of instructions in the loop, which provides
                 performance benefits not possible when using
                 conventional comparison instructions. Results from
                 applying this technique on the ARM processor show that
                 both the number of instructions executed and execution
                 cycles are reduced.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "branch; comparison; compiler; optimization",
}

@Article{Zhuang:2006:ETM,
  author =       "Xiaotong Zhuang and Santosh Pande",
  title =        "Effective thread management on network processors with
                 compiler analysis",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "72--82",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134662",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Mapping packet processing tasks on network processor
                 micro-engines involves complex tradeoffs that relating
                 to maximizing parallelism and pipelining. Due to an
                 increase in the size of the code store and complexity
                 of the application requirements, network processors are
                 being programmed with heterogeneous threads that may
                 execute code belonging to different tasks on a given
                 micro-engine. Also, most network applications are
                 streaming applications that are typically processed in
                 a pipelined fashion. Thus, the tasks on different
                 micro-engines are pipelined in such a way as to
                 maximize the throughput. Tasks themselves could have
                 different run time performance demands. Traditionally,
                 runtime management involving processor sharing,
                 real-time scheduling etc. is provided by the runtime
                 environment (typically an operating system) using the
                 hardware support for timers and interrupts that allows
                 time slicing the resource amongst the tasks. However,
                 due to stringent performance requirements on network
                 processors (which process packets from very high speed
                 network traffic), neither OS nor hardware mechanisms
                 are typically feasible/available. In this paper, we
                 show that it is very difficult and inefficient for the
                 programmer to meet the constraints of runtime
                 management by coding them statically. Due to the
                 infeasibility of hardware or OS solution (even in the
                 near future), the only choice left is a compiler
                 approach. We propose a complete compiler solution to
                 automatically insert explicit context switch (ctx)
                 instructions provided on the processors so that the
                 execution of programs is better manipulated at runtime
                 to meet their constraints. We show that such an
                 approach is feasible opening new application domains
                 that would need heterogeneous thread programming. Such
                 approaches would in general become important for
                 multi-core processors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler optimizations; CPU scheduling; network
                 processors; real-time scheduling",
}

@Article{Kulkarni:2006:SNO,
  author =       "Prasad A. Kulkarni and David B. Whalley and Gary S.
                 Tyson and Jack W. Davidson",
  title =        "In search of near-optimal optimization phase
                 orderings",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "83--92",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159974.1134663",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Phase ordering is a long standing challenge for
                 traditional optimizing compilers. Varying the order of
                 applying optimization phases to a program can produce
                 different code, with potentially significant
                 performance variation amongst them. A key insight to
                 addressing the phase ordering problem is that many
                 different optimization sequences produce the same code.
                 In an earlier study, we used this observation to
                 restate the phase ordering problem to concentrate on
                 finding all distinct function instances that can be
                 produced due to different phase orderings, instead of
                 attempting to generate code for all possible
                 optimization sequences. Using a novel search algorithm
                 we were able to show that it is possible to
                 exhaustively enumerate the set of all possible function
                 instances that can be produced by different phase
                 orderings in our compiler for most of the functions in
                 our benchmark suite [1]. Finding the optimal function
                 instance within this set for almost any dynamic measure
                 of performance still appears impractical since that
                 would involve execution/simulation of all generated
                 function instances. To find the dynamically optimal
                 function instance we exploit the observation that the
                 enumeration space for a function typically contains a
                 very small number of distinct control flow paths. We
                 simulate only one function instance from each group of
                 function instances having the identical control flow,
                 and use that information to estimate the dynamic
                 performance of the remaining functions in that group.
                 We further show that the estimated dynamic frequency
                 counts obtained by using our method correlate extremely
                 well to simulated processor cycle counts. Thus, by
                 using our measure of dynamic frequencies to identify a
                 small number of the best performing function instances
                 we can often find the optimal phase ordering for a
                 function within a reasonable amount of time. Finally,
                 we perform a case study to evaluate how adept our
                 genetic algorithm is for finding optimal phase
                 orderings within our compiler, and demonstrate how the
                 algorithm can be improved.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "exhaustive search; genetic algorithms; phase
                 ordering",
}

@Article{Danne:2006:EST,
  author =       "Klaus Danne and Marco Platzner",
  title =        "An {EDF} schedulability test for periodic tasks on
                 reconfigurable hardware devices",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "93--102",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134665",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, we consider the scheduling of periodic
                 real-time tasks on reconfigurable hardware devices.
                 Such devices can execute several tasks in parallel. All
                 executing tasks share the hardware resource, which
                 makes the scheduling problem differ from single- and
                 multiprocessor scheduling. We adapt the global EDF
                 multiprocessor scheduling approach to the
                 reconfigurable hardware execution model and define two
                 preemptive scheduling algorithms, EDF-First-k-Fit and
                 EDF-Next-Fit. For these algorithms, we present a novel
                 linear-time schedulability test and give a proof based
                 on a resource augmentation technique. Then, we propose
                 a task placement and relocation scheme utilizing
                 partial device reconfiguration. This scheme allows us
                 to extend the schedulability test to include
                 reconfiguration time overheads. Experiments with
                 synthetic workloads compare the scheduling test with
                 the actual scheduling performance of EDF-First-k-Fit
                 and EDF-Next-Fit. The main evaluation result is that
                 the reconfiguration overhead is acceptable if the task
                 computation times are one order of magnitude higher
                 than the device reconfiguration time.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "FPGA; periodic tasks; real-time; reconfigurable
                 hardware; scheduling",
}

@Article{Sandberg:2006:FWF,
  author =       "Christer Sandberg and Andreas Ermedahl and Jan
                 Gustafsson and Bj{\"o}rn Lisper",
  title =        "Faster {WCET} flow analysis by program slicing",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "103--112",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159974.1134666",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Static Worst-Case Execution Time (WCET) analysis is a
                 technique to derive upper bounds for the execution
                 times of programs. Such bounds are crucial when
                 designing and verifying real-time systems. WCET
                 analysis needs a program flow analysis to derive
                 constraints on the possible execution paths of the
                 analysed program, like iteration bounds for loops and
                 dependences between conditionals. Current WCET analysis
                 tools typically obtain flow information through manual
                 annotations. Better support for automatic flow analysis
                 would eliminate much of the need for this laborious
                 work. However, to automatically derive high-quality
                 flow information is hard, and solution techniques with
                 large time and space complexity are often required. In
                 this paper we describe how to use program slicing to
                 reduce the computational need of flow analysis methods.
                 The slicing identifies statements and variables which
                 are guaranteed not to influence the program flow. When
                 these are removed, the calculation time of our
                 different flow analyses decreases, in some cases
                 considerably. We also show how program slicing can be
                 used to identify the input variables and globals that
                 control the outcome of a particular loop or
                 conditional. This should be valuable aid when
                 performing WCET analysis and systematic testing of
                 large and complex real-time programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hard real time; worst-case execution time analysis",
}

@Article{Prochnow:2006:SSS,
  author =       "Steffen Prochnow and Claus Traulsen and Reinhard von
                 Hanxleden",
  title =        "Synthesizing safe state machines from {Esterel}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "113--124",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134667",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Esterel and Safe State Machines (SSMs) are synchronous
                 languages dedicated to the modeling of embedded
                 reactive systems. While Esterel is a textual language,
                 SSMs are based on the graphical Statecharts formalism.
                 Statecharts are often more intuitive to understand than
                 their textual counterpart, and their animated
                 simulation can help to visualize subtle behaviors of a
                 program. However, in terms of editing speed, revision
                 management, and meta-modeling, the textual nature of
                 Esterel is advantageous. We present an approach to
                 transform Esterel v5 programs into equivalent SSMs.
                 This permits a design flow where the designer develops
                 a system at the Esterel level, but uses a graphical
                 browser and simulator to inspect and validate the
                 system under development. We synthesize SSMs in two
                 phases. The first phase transforms an Esterel program
                 into an equivalent SSM, using a structural translation
                 that results in correct, but typically not very compact
                 SSMs. The second phase iteratively applies optimization
                 rules that aim to reduce the number of states,
                 transitions and hierarchy levels to enhance readability
                 of the SSM. As it turned out, this optimization is also
                 useful for the traditional, manual design of SSMs. The
                 complete transformation has been implemented in a
                 prototypical modeling environment, which allows to
                 demonstrate the practicality of this approach and the
                 compactness of the generated SSMs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Esterel; reactive systems; safe state machines;
                 Statecharts; SyncCharts; textual/graphical languages",
}

@Article{Edwards:2006:ECG,
  author =       "Stephen A. Edwards and Olivier Tardieu",
  title =        "Efficient code generation from {SHIM} models",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "125--134",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134669",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programming concurrent systems is substantially more
                 difficult than programming sequential systems, yet most
                 embedded systems need concurrency. We believe this
                 should be addressed through higher-level models of
                 concurrency that eliminate many of the usual
                 challenges, such as nondeterminism arising from races.
                 The shim model of computation provides deterministic
                 concurrency, and there already exist ways of
                 implementing it in hardware and software. In this work,
                 we describe how to produce more efficient C code from
                 shim systems. We propose two techniques: a largely
                 mechanical one that produces tail-recursive code for
                 simulating concurrency, and a more clever one that
                 statically analyzes the communication pattern of
                 multiple processes to produce code with far less
                 overhead. Experimentally, we find our tail-recursive
                 technique produces code that runs roughly twice as fast
                 as a baseline; our statically-scheduled code can run up
                 to twelve times faster.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code synthesis; computed gotos; concurrency; embedded
                 systems; the shim model",
}

@Article{Rothamel:2006:GOC,
  author =       "Tom Rothamel and Yanhong A. Liu and Constance L.
                 Heitmeyer and Elizabeth I. Leonard",
  title =        "Generating optimized code from {SCR} specifications",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "135--144",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134670",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A promising trend in software development is the
                 increasing adoption of model-driven design. In this
                 approach, a developer first constructs an abstract
                 model of the required program behavior in a language,
                 such as Statecharts or Stateflow, and then uses a code
                 generator to automatically transform the model into an
                 executable program. This approach has many
                 advantages---typically, a model is not only more
                 concise than code and hence more understandable, it is
                 also more amenable to mechanized analysis. Moreover,
                 automatic generation of code from a model usually
                 produces code with fewer errors than hand-crafted code.
                 One serious problem, however, is that a code generator
                 may produce inefficient code. To address this problem,
                 this paper describes a method for generating efficient
                 code from SCR (Software Cost Reduction) specifications.
                 While the SCR tabular notation and tools have been used
                 successfully to specify, simulate, and verify numerous
                 embedded systems, until now SCR has lacked an automated
                 method for generating optimized code. This paper
                 describes an efficient method for automatic code
                 generation from SCR specifications, together with an
                 implementation and an experimental evaluation. The
                 method first synthesizes an execution-flow graph from
                 the specification, then applies three optimizations to
                 the graph, namely, input slicing, simplification, and
                 output slicing, and then automatically generates code
                 from the optimized graph. Experiments on seven
                 benchmarks demonstrate that the method produces
                 significant performance improvements in code generated
                 from large specifications. Moreover, code generation is
                 relatively fast, and the code produced is relatively
                 compact.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code generation; code synthesis; formal
                 specifications; optimization; requirements
                 specifications; SCR",
}

@Article{Farfeleder:2006:ECG,
  author =       "Stefan Farfeleder and Andreas Krall and Edwin Steiner
                 and Florian Brandner",
  title =        "Effective compiler generation by architecture
                 description",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "145--152",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134671",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Embedded systems have an extremely short time to
                 market and therefore require easily retargetable
                 compilers. Architecture description languages (ADLs)
                 provide a single concise architecture specification for
                 the generation of hardware, instruction set simulators
                 and compilers. In this article, we present an ADL for
                 compiler generation. From a specification, we can
                 derive an optimized tree pattern matching instruction
                 selector, a register allocator and an instruction
                 scheduler. Compared to a hand-crafted back end, the
                 generated compiler produces smaller and faster code.
                 The ADL is rich enough that other tools, such as
                 assemblers, linkers, simulators and documentation, can
                 all be obtained from a single specification.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "architecture description language; code generation;
                 compiler generation",
}

@Article{Chen:2006:PLA,
  author =       "Jian-Jia Chen and Tei-Wei Kuo",
  title =        "Procrastination for leakage-aware rate-monotonic
                 scheduling on a dynamic voltage scaling processor",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "153--162",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159974.1134673",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As the dynamic voltage scaling (DVS) technique
                 provides system engineers the flexibility to trade-off
                 the performance and the energy consumption, DVS has
                 been adopted in many computing systems. However, the
                 longer a job executes, the more energy in the leakage
                 current the device/processor consumes for the job. To
                 reduce the energy consumption resulting from the
                 leakage current, a system might enter the dormant mode.
                 This paper targets energy-efficient rate-monotonic
                 scheduling for periodic real-time tasks on a
                 uniprocessor DVS system with non-negligible leakage
                 power consumption. An on-line simulated scheduling
                 strategy and a virtually blocking time strategy are
                 developed for procrastination scheduling to reduce
                 energy consumption. The proposed algorithms derive a
                 feasible schedule for real-time tasks with worst-case
                 guarantees for any input instance. Experimental results
                 show that our proposed algorithms could derive
                 energy-efficient solutions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic voltage scaling; energy-aware systems;
                 fixed-priority scheduling; leakage-aware scheduling;
                 rate-monotonic scheduling; scheduling",
}

@Article{Mutyam:2006:CDT,
  author =       "Madhu Mutyam and Feihui Li and Vijaykrishnan Narayanan
                 and Mahmut Kandemir and Mary Jane Irwin",
  title =        "Compiler-directed thermal management for {VLIW}
                 functional units",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "163--172",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159974.1134674",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As processors, memories, and other components of
                 today's embedded systems are pushed to higher
                 performance in more enclosed spaces, processor thermal
                 management is quickly becoming a limiting design
                 factor. While previous proposals mostly approached this
                 thermal management problem from circuit and
                 architecture angles, software can also play an
                 important role in identifying and eliminating thermal
                 hotspots as it is the main factor that shapes the order
                 and frequency of accesses to different hardware
                 components in the chip. This is particularly true for
                 compiler-scheduled Very Long Instruction Word (VLIW)
                 datapath. In this paper, we focus on a compiler-based
                 approach to make the thermal profile more balanced in
                 the integer functional units of VLIW architectures. For
                 balanced thermal behavior and peak temperature
                 minimization, we propose techniques based on load
                 balancing across the integer functional units with or
                 without rotation of functional unit usage. As leakage
                 power is exponentially dependent on temperature and
                 temperature is dependent on total power (i.e.,
                 switching and leakage), in our techniques, we also
                 consider leakage power optimization by IPC tuning
                 (instructions issued per cycle). By taking a code that
                 is already scheduled for maximum performance as input,
                 our scheduling strategies modify this
                 performance-oriented schedule for balanced thermal
                 behavior with negligible performance degradation. We
                 simulate our scheduling strategies using a framework
                 that consists of the Trimaran infrastructure, a power
                 model, and the HotSpot. Our experimental results using
                 several benchmark programs reveal that the peak
                 temperature can be reduced through compiler
                 scheduling.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "IPC; thermal; VLIW",
}

@Article{Park:2006:BAI,
  author =       "Sanghyun Park and Aviral Shrivastava and Nikil Dutt
                 and Alex Nicolau and Yunheung Paek and Eugene Earlie",
  title =        "Bypass aware instruction scheduling for register file
                 power reduction",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "173--181",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159974.1134675",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Since register files suffer from some of the highest
                 power densities within processors, designers have
                 investigated several architectural strategies for
                 register file power reduction, including 'On Demand RF
                 Read' where the register file is read only if the
                 operand value is not available from the bypasses.
                 However, we show in this paper that significant
                 additional reductions in the register file power
                 consumption can be obtained by scheduling instructions
                 so that they transfer the operands via bypasses, rather
                 than reading from the register file. Such instruction
                 scheduling requires the compiler to be cognizant of the
                 bypasses in the processor pipeline. In this paper, we
                 develop several bypass aware instruction scheduling
                 heuristics varying in time complexity, and study their
                 effectiveness on the Intel XScale processor pipeline
                 running MiBench benchmarks. Our experimental results
                 show additional power consumption reductions of up to
                 26\% and on average 12\% over and above the register
                 file power reduction achieved through existing
                 techniques.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "architecture-sensitive compiler; bypass-sensitive;
                 forwarding paths; operation table; power consumption;
                 processor bypasses; register file; reservation table",
}

@Article{Yan:2006:ADE,
  author =       "Leipo Yan and Thambipillai Srikanthan and Niu Gang",
  title =        "Area and delay estimation for {FPGA} implementation of
                 coarse-grained reconfigurable architectures",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "182--188",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134677",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Reconfigurable architecture is one solution to the
                 increasing computational requirement that often cannot
                 be met by the low-end embedded processors. Compiling
                 applications to such architectures involves
                 hardware/software partitioning. To partition the
                 applications, a set of parameters, such as the hardware
                 execution time and hardware area consumption, is
                 required for each application block. Quick derivation
                 of the parameters for all the blocks is essential.
                 Previous research has shown that the coarse-grained
                 reconfigurable architectures are able to accelerate the
                 applications. However, no research effort has been made
                 to find the area and time for application blocks
                 implemented on such architectures. In this paper we
                 present an estimation model for the coarse-grained
                 reconfigurable architectures implemented on FPGA
                 platforms. The estimation model is able to quickly
                 produce an area-time graph, which shows the area and
                 time relationship, for each application block. The
                 accuracy of the estimation model has been verified on
                 real applications. Experiment shows that the estimation
                 error for the area consumption is within 13\% and the
                 estimation error for the time is within 8\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "area estimation; CGRA; delay estimation;
                 hardware/software partitioning; VLIW",
}

@Article{Pandey:2006:BCB,
  author =       "Raju Pandey and Jeffrey Wu",
  title =        "{BOTS}: a constraint-based component system for
                 synthesizing scalable software systems",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "189--198",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134678",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Embedded application developers create applications
                 for a wide range of devices with different resource
                 constraints. Developers want to maximize the use of the
                 limited resources available on the device while still
                 not exceeding the capabilities of the device. To do
                 this, the developer must be able to scale his software
                 for different platforms. In this paper, we present a
                 software engineering methodology that automatically
                 scales software to different platforms. We intend to
                 have the application developer write high level
                 functional specifications of his software and have
                 tools that automatically scale the underlying runtime.
                 These tools will use the functional and non-functional
                 constraints of both the hardware and client application
                 to produce an appropriate runtime. Our initial results
                 show that the proposed approach can scale operating
                 systems and virtual machines that satisfy the
                 constraints of varying hardware/application
                 combinations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "components; constraints; embedded systems; generative
                 programming; runtime systems; wireless sensor
                 networks",
}

@Article{Zhang:2006:OCS,
  author =       "Weihua Zhang and Xinglong Qian and Ye Wang and Binyu
                 Zang and Chuanqi Zhu",
  title =        "Optimizing compiler for shared-memory multiple {SIMD}
                 architecture",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "199--208",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134679",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "With the rapid growth of multimedia and game, these
                 applications put more and more pressure on the
                 processing ability of modern processors. Multiple SIMD
                 architecture is widely used in multimedia processing
                 field as a multimedia accelerator. With the
                 consideration of power consumption and chip size,
                 shared memory multiple SIMD architecture is mainly used
                 in embedded SOCs. In order to further fit mobile
                 environment, there is the constraint of limited
                 register number as well. Although shared memory
                 multiple SIMD architecture simplify the chip design,
                 these constraints are the major obstacles to map the
                 real multimedia applications to these architectures.
                 Until now, to our best knowledge, there is little
                 research on the optimizing techniques for shared memory
                 multiple SIMD architecture. In this paper, we present a
                 compiler framework, which aims at automatically
                 generating high performance codes for shared memory
                 multiple SIMD architecture. In this framework, we
                 reduce the competition of shared data bus through
                 increasing the register locality, improve the
                 utilization of data bus by read-only data vector
                 replication and solve the problem of limited register
                 number through a resource allocation algorithm. The
                 framework also handlers the issues concerning on data
                 transformation. As the experimental results shown, this
                 framework is successful in mapping real multimedia
                 applications to shared memory multiple SIMD
                 architecture. It leads to an average speedup by a
                 factor of 3.19 and an average utilization of SM-SIMD
                 architecture with 8 SIMD units by a factor of 52.6\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "locality; multiple SIMD; optimization; replication;
                 shared memory",
}

@Article{Findler:2006:SFP,
  author =       "Robert Bruce Findler",
  title =        "Scheme and {Functional Programming} 2006: paper
                 abstracts",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "8",
  pages =        "6--9",
  month =        aug,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1163566.1163568",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:06 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Scheme and Functional Programming workshop will be
                 held in Portland, OR on September 17th 2006, in
                 conjunction with ICFP. The purpose of the workshop is
                 to discuss experience with and future developments of
                 the Scheme programming language, as well as general
                 aspects of computer science loosely centered on the
                 general theme of Scheme. Come to hear Manuel Serrano
                 talk about HOP, his new language for programming the
                 web, a status report from the R6RS editors, and
                 presentations of the work below. I look forward to
                 seeing you in Portland!",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2006:BRD,
  author =       "Paul Frenger",
  title =        "Book review: {Designing Embedded Hardware}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "8",
  pages =        "10--14",
  month =        aug,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1163566.1163570",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:06 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "My last column finished up a two-part retrospective to
                 recap the first ten years of ACM Sigplan Notices Forth
                 Report. If you have access to back issues of Sigplan or
                 ACM Portal, you must have enjoyed the review that much
                 more. I hope so.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Denckla:2006:MCB,
  author =       "Ben Denckla",
  title =        "Many cyclic block diagrams do not need parallel
                 semantics",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "8",
  pages =        "16--20",
  month =        aug,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1163566.1163572",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:06 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Some cyclic block diagrams need parallel semantics:
                 they are syntactically invalid or semantically
                 nonterminating in any block diagram language with
                 sequential semantics. Yet, many cyclic block diagrams
                 do not need parallel semantics: they behave the same in
                 a block diagram language with non-strict sequential
                 semantics. We show that a block diagram used to
                 motivate the parallel semantics of the Ptolemy SR
                 domain behaves the same in BdHas, a block diagram
                 language with non-strict sequential semantics. BdHas is
                 implemented as syntactic sugar on top of Haskell.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "block diagrams; Esterel; Haskell; Ptolemy; semantics",
}

@Article{Das:2006:OSO,
  author =       "Dibyendu Das",
  title =        "Optimizing subroutines with optional parameters in
                 {F90} via function cloning",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "8",
  pages =        "21--28",
  month =        aug,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1163566.1163573",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:06 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Optional parameters are a feature of Fortran90. The
                 objective of this feature is to allow the F90
                 programmer to declare a subroutine using a number of
                 arguments and specify a subset of these parameters as
                 optional, which in turn, allows the programmer to omit
                 any of these optional parameters during invocation of
                 the subroutine. The body of such a subroutine uses an
                 F90 intrinsic function called present(), to test
                 whether an optional parameter has meaningful values at
                 run-time. The optional parameter can be written/read if
                 and only if present() returns a true value. In this
                 work, we describe a mechanism by which such subroutines
                 which use optional parameters can be efficiently
                 optimized using function cloning or specialization.
                 Function Cloning is a well-known optimization technique
                 that creates multiple copies of a function f(), in
                 order to exploit better optimization opportunities. We
                 will show how cloning/specialization can be utilized
                 such that all calls to present() can be totally
                 eliminated in the body of such subroutines. Cloning
                 will also result in optimization opportunities not
                 exploitable in the original source.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers",
}

@Article{Chen:2006:ICT,
  author =       "Fuh-Gwo Chen and Ting-Wei Hou",
  title =        "Instruction-coated translation: an approach to
                 restructure directly threaded interpreters with low
                 cohesion",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "8",
  pages =        "29--33",
  month =        aug,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1163566.1163574",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:06 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A directly threaded interpreter is used to speedup the
                 virtual instruction dispatch. It is composed of
                 translation and interpretation functions. It has low
                 cohesion naturally due to the use of 'label as value'.
                 This paper presents a restructuring method to envelop
                 the translation function as a new virtual instruction
                 to make the directly threaded interpreter have a single
                 interpreting task and have high cohesion. The reformed
                 translation is named as the instruction-coated
                 translation, a term similar to sugar-coated tablet.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "module cohesion; software architecture and
                 restructuring; threaded interpreter",
}

@Article{Velazquez-Iturbide:2006:PDL,
  author =       "J. {\'A}ngel Vel{\'a}zquez-Iturbide",
  title =        "Principled design of logical fisheye views of
                 functional expressions",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "8",
  pages =        "34--43",
  month =        aug,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1163566.1163575",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:06 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We face the problem of simplifying automatically the
                 visualization of expressions in an eager functional
                 language. The problem is relevant for debugging in a
                 programming environment, based on a rewriting model of
                 expression evaluation that displays large intermediate
                 expressions. The simplification technique must filter
                 automatically the parts of an expression which are not
                 interesting for debugging/understanding. We propose the
                 use of logical fisheye views because they provide a
                 balance between showing global context and local
                 information (focus). A straightforward implementation
                 of fisheye views displays too simplified expressions.
                 In the article, we identify five design requirements
                 and describe how they are satisfied. We also include
                 several examples, a discussion and related work.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "expressions; fisheye views; focus+context; functional
                 programming; program visualization",
}

@Article{Dybvig:2006:DCS,
  author =       "R. Kent Dybvig",
  title =        "The development of {Chez Scheme}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "1--12",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159805",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Chez Scheme is now over 20 years old, the first
                 version having been released in 1985. This paper takes
                 a brief look back on the history of Chez Scheme's
                 development to explore how and why it became the system
                 it is today.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "chez scheme; scheme implementation",
}

@Article{Might:2006:IFA,
  author =       "Matthew Might and Olin Shivers",
  title =        "Improving flow analyses via {$\Gamma$CFA}: abstract
                 garbage collection and counting",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "13--25",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159807",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present two independent and complementary
                 improvements for flow-based analysis of higher-order
                 languages: (1) abstract garbage collection and (2)
                 abstract counting, collectively titled $\Gamma$CFA.
                 Abstract garbage collection is an analog to its
                 concrete counterpart: we determine when an abstract
                 resource has become unreachable, and then reallocate it
                 as fresh. This prevents flow sets from merging in the
                 abstract, which has two immediate effects: (1) the
                 precision of the analysis is increased, and (2) the
                 running time of the analysis is frequently reduced. In
                 some nontrivial cases, we achieve an order of magnitude
                 improvement in precision and time simultaneously .In
                 abstract counting, we track how many times an abstract
                 resource has been allocated. A count of one implies
                 that the abstract resource momentarily represents only
                 one concrete resource. This, in turn, allows us to
                 perform environment analysis and to expand the kinds
                 (rather than just the degree) of optimizations
                 available to the compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract counting; abstract garbage collection;
                 continuations; CPS; environment analysis; flow
                 analysis; functional languages; gamma-CFA; inlining;
                 lambda calculus; program analysis; superbeta",
}

@Article{Kiselyov:2006:DDB,
  author =       "Oleg Kiselyov and Chung-chieh Shan and Amr Sabry",
  title =        "Delimited dynamic binding",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "26--37",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159808",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Dynamic binding and delimited control are useful
                 together in many settings, including Web applications,
                 database cursors, and mobile code. We examine this pair
                 of language features to show that the semantics of
                 their interaction is ill-defined yet not expressive
                 enough for these uses. We solve this open and subtle
                 problem. We formalise a typed language DB+DC that
                 combines a calculus DB of dynamic binding and a
                 calculus DC of delimited control. We argue from
                 theoretical and practical points of view that its
                 semantics should be based on delimited dynamic binding:
                 capturing a delimited continuation closes over part of
                 the dynamic environment, rather than all or none of it;
                 reinstating the captured continuation supplements the
                 dynamic environment, rather than replacing or
                 inheriting it. We introduce a type- and
                 reduction-preserving translation from DB + DC to DC,
                 which proves that delimited control macro-expresses
                 dynamic binding. We use this translation to implement
                 DB+DC in Scheme, OCaml, and Haskell. We extend DB + DC
                 with mutable dynamic variables and a facility to obtain
                 not only the latest binding of a dynamic variable but
                 also older bindings. This facility provides for stack
                 inspection and (more generally) folding over the
                 execution context as an inductive data structure.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "delimited continuations; dynamic binding; monads",
}

@Article{Walker:2006:STF,
  author =       "David Walker and Lester Mackey and Jay Ligatti and
                 George A. Reis and David I. August",
  title =        "Static typing for a faulty lambda calculus",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "38--49",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159809",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A transient hardware fault occurs when an energetic
                 particle strikes a transistor, causing it to change
                 state. These faults do not cause permanent damage, but
                 may result in incorrect program execution by altering
                 signal transfers or stored values. While the likelihood
                 that such transient faults will cause any significant
                 damage may seem remote, over the last several years
                 transient faults have caused costly failures in
                 high-end machines at America Online, eBay, and the Los
                 Alamos Neutron Science Center, among others [6, 44,
                 15]. Because susceptibility to transient faults is
                 proportional to the size and density of transistors,
                 the problem of transient faults will become
                 increasingly important in the coming decades. This
                 paper defines the first formal, type-theoretic
                 framework for studying reliable computation in the
                 presence of transient faults. More specifically, it
                 defines \lambda zap, a lambda calculus that exhibits
                 intermittent data faults. In order to detect and
                 recover from these faults, \lambda zap programs
                 replicate intermediate computations and use majority
                 voting, thereby modeling software-based fault tolerance
                 techniques studied extensively, but informally [10, 20,
                 30, 31, 32, 33, 41]. To ensure that programs maintain
                 the proper invariants and use \lambda zap primitives
                 correctly, the paper defines a type system for the
                 language. This type system guarantees that well-typed
                 programs can tolerate any single data fault. To
                 demonstrate that \lambda zap can serve as an idealized
                 typed intermediate language, we define a
                 type-preserving translation from a standard
                 simply-typed lambda calculus into \lambda zap.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "fault tolerance; lambda calculus; reliable computing;
                 soft faults; transient hardware faults; type systems;
                 typed intermediate languages",
}

@Article{Jones:2006:SUB,
  author =       "Simon Peyton Jones and Dimitrios Vytiniotis and
                 Stephanie Weirich and Geoffrey Washburn",
  title =        "Simple unification-based type inference for {GADTs}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "50--61",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159811",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Generalized algebraic data types (GADTs), sometimes
                 known as 'guarded recursive data types' or 'first-class
                 phantom types', are a simple but powerful
                 generalization of the data types of Haskell and ML.
                 Recent works have given compelling examples of the
                 utility of GADTs, although type inference is known to
                 be difficult. Our contribution is to show how to
                 exploit programmer-supplied type annotations to make
                 the type inference task almost embarrassingly easy. Our
                 main technical innovation is wobbly types, which
                 express in a declarative way the uncertainty caused by
                 the incremental nature of typical type-inference
                 algorithms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "generalized algebraic data types; type inference",
}

@Article{Nanevski:2006:PSH,
  author =       "Aleksandar Nanevski and Greg Morrisett and Lars
                 Birkedal",
  title =        "Polymorphism and separation in {Hoare} type theory",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "62--73",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159812",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In previous work, we proposed a Hoare Type Theory
                 (HTT) which combines effectful higher-order functions,
                 dependent types and Hoare Logic specifications into a
                 unified framework. However, the framework did not
                 support polymorphism, and failed to provide a modular
                 treatment of state in specifications. In this paper, we
                 address these shortcomings by showing that the addition
                 of polymorphism alone is sufficient for capturing
                 modular state specifications in the style of Separation
                 Logic. Furthermore, we argue that polymorphism is an
                 essential ingredient of the extension, as the treatment
                 of higher-order functions requires operations not
                 encodable via the spatial connectives of Separation
                 Logic.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Hoare logic; separation logic; type theory",
}

@Article{Nakata:2006:RMP,
  author =       "Keiko Nakata and Jacques Garrigue",
  title =        "Recursive modules for programming",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "74--86",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159813",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The ML module system is useful for building
                 large-scale programs. The programmer can factor
                 programs into nested and parameterized modules, and can
                 control abstraction with signatures. Yet ML prohibits
                 recursion between modules. As a result of this
                 constraint, the programmer may have to consolidate
                 conceptually separate components into a single module,
                 intruding on modular programming. Introducing recursive
                 modules is a natural way out of this predicament.
                 Existing proposals, however, vary in expressiveness and
                 verbosity. In this paper, we propose a type system for
                 recursive modules, which can infer their signatures.
                 Opaque signatures can also be given explicitly, to
                 provide type abstraction either inside or outside the
                 recursion. The type system is decidable, and is sound
                 for a call-by-value semantics. We also present a
                 solution to the expression problem, in support of our
                 design choices.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "applicative functors; recursive modules; the
                 expression problem; type inference; type systems",
}

@Article{Owens:2006:SFM,
  author =       "Scott Owens and Matthew Flatt",
  title =        "From structures and functors to modules and units",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "87--98",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159815",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Component programming techniques encourage abstraction
                 and reuse through external linking. Some parts of a
                 program, however, must use concrete, internally
                 specified references, so a pure component system is not
                 a sufficient mechanism for structuring programs. We
                 present the combination of a static, internally-linked
                 module system and a purely abstractive component
                 system. The latter extends our previous model of typed
                 units to properly account for translucency and sharing.
                 We also show how units and modules can express an
                 SML-style system of structures and functors, and we
                 explore the consequences for recursive structures and
                 functors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "component; functor; module; structure; unit",
}

@Article{Rossberg:2006:MLD,
  author =       "Andreas Rossberg",
  title =        "The missing link: dynamic components for {ML}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "99--110",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159816",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Despite its powerful module system, ML has not yet
                 evolved for the modern world of dynamic and open
                 modular programming, to which more primitive languages
                 have adapted better so far. We present the design and
                 semantics of a simple yet expressive first-class
                 component system for ML. It provides dynamic linking in
                 a type-safe and type-flexible manner, and allows
                 selective execution in sandboxes. The system is defined
                 solely by reduction to higher-order modules plus an
                 extension with simple module-level dynamics, which we
                 call packages. To represent components outside
                 processes we employ generic pickling. We give a module
                 calculus formalising the semantics of packages and
                 pickling.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "components; distributed programming; dynamic linking;
                 dynamic typing; modules; pickling; separate
                 compilation; units",
}

@Article{Fisher:2006:SAS,
  author =       "David Fisher and Olin Shivers",
  title =        "Static analysis for syntax objects",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "111--121",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159817",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe an s-expression based syntax-extension
                 framework much like Scheme macros, with a key
                 additional facility: the ability to define static
                 semantics, such as type systems or program analysis,
                 for the new, user-defined forms or embedded languages,
                 thus allowing us to construct 'towers' of language
                 levels. In addition, the static semantics of the
                 languages at two adjacent levels in the tower can be
                 connected, allowing improved reasoning power at a
                 higher (and perhaps more restricted) level to be
                 reflected down to the static semantics of the language
                 level below. We demonstrate our system by designing
                 macros for an assembly language, together with some
                 example static analyses (termination analysis, type
                 inference and control-flow analysis).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "domain-specific languages; extensible programming
                 languages; flow analysis; language towers; lazy
                 delegation; macros; static analysis; type inference",
}

@Article{Shapiro:2006:PPC,
  author =       "Marc Shapiro",
  title =        "Practical proofs of concurrent programs",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "123--123",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159819",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "assertions; concurrent programming; Hoare logic;
                 program proofs; rely-guarantee",
}

@Article{Donnelly:2006:TE,
  author =       "Kevin Donnelly and Matthew Fluet",
  title =        "Transactional events",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "124--135",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159821",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Concurrent programs require high-level abstractions in
                 order to manage complexity and enable compositional
                 reasoning. In this paper, we introduce a novel
                 concurrency abstraction, dubbed transactional events,
                 which combines first-class synchronous message-passing
                 events with all-or-nothing transactions. This
                 combination enables simple solutions to interesting
                 problems in concurrent programming. For example,
                 guarded synchronous receive can be implemented as an
                 abstract transactional event, whereas in other
                 languages it requires a non-abstract, non-modular
                 protocol. Likewise, three-way rendezvous can also be
                 implemented as an abstract transactional event, which
                 is impossible using first-class events alone. Both
                 solutions are easy to code and easy to reason about.
                 The expressive power of transactional events arises
                 from a sequencing combinator whose semantics enforces
                 an all-or-nothing transactional property --- either
                 both of the constituent events synchronize in sequence
                 or neither of them synchronizes. This sequencing
                 combinator, along with a non-deterministic choice
                 combinator, gives transactional events the
                 compositional structure of a monad-with-plus. We
                 provide a formal semantics for and a preliminary
                 implementation of transactional events.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; first-class events; monads; synchronous
                 message passing; transactions",
}

@Article{Ziarek:2006:SMC,
  author =       "Lukasz Ziarek and Philip Schatz and Suresh
                 Jagannathan",
  title =        "Stabilizers: a modular checkpointing abstraction for
                 concurrent functional programs",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "136--147",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159822",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transient faults that arise in large-scale software
                 systems can often be repaired by re-executing the code
                 in which they occur. Ascribing a meaningful semantics
                 for safe re-execution in multi-threaded code is not
                 obvious, however. For a thread to correctly re-execute
                 a region of code, it must ensure that all other threads
                 which have witnessed its unwanted effects within that
                 region are also reverted to a meaningful earlier state.
                 If not done properly, data inconsistencies and other
                 undesirable behavior may result. however, automatically
                 determining what constitutes a consistent global
                 checkpoint is not straightforward since thread
                 interactions are a dynamic property of the program. In
                 this paper, we present a safe and efficient
                 checkpointing mechanism for Concurrent ML (CML) that
                 can be used to recover from transient faults. We
                 introduce a new linguistic abstraction called
                 stabilizers that permits the specification of
                 per-thread monitors and the restoration of globally
                 consistent checkpoints. Safe global states are computed
                 through lightweight monitoring of communication events
                 among threads (e.g. message-passing operations or
                 updates to shared variables). Our experimental results
                 on several realistic, multithreaded, server-style CML
                 applications, including a web server and a windowing
                 toolkit, show that the overheads to use stabilizers are
                 small, and lead us to conclude that they are a viable
                 mechanism for defining safe checkpoints in concurrent
                 functional programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "checkpointing; concurrent ML; concurrent programming;
                 error recovery; exception handling; transactions",
}

@Article{Dowse:2006:MDC,
  author =       "Malcolm Dowse and Andrew Butterfield",
  title =        "Modelling deterministic concurrent {I/O}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "148--159",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159823",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The problem of expressing I/O and side effects in
                 functional languages is a well-established one. This
                 paper addresses this problem from a general semantic
                 viewpoint by giving a unified framework for describing
                 shared state, I/O and deterministic concurrency. We
                 develop a modified state transformer which lets us
                 mathematically model the API, then investigate and
                 machine verify some broad conditions under which
                 confluence holds. This semantics is used as the basis
                 for a small deterministic Haskell language extension
                 called CURIO, which enforces determinism using runtime
                 checks. Our confluence condition is first shown to hold
                 for a variety of small components, such as individual
                 shared variables, 1-to-1 communication channels, and
                 I-structures. We then show how models of substantial
                 APIs (like a modification of Haskell's file I/O API
                 which permits inter-process communication) may be
                 constructed from these smaller components using
                 'combinators' in such a way that determinism is always
                 preserved. We describe combinators for product,
                 name-indexing and dynamic allocation, the last of which
                 requires some small extensions to cater for process
                 locality.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; determinism; effects; I/O; monads",
}

@Article{Chlipala:2006:MDC,
  author =       "Adam Chlipala",
  title =        "Modular development of certified program verifiers
                 with a proof assistant",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "160--171",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159825",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "I report on an experience using the Coq proof
                 assistant to develop a program verification tool with a
                 machine-checkable proof of full correctness. The
                 verifier is able to prove memory safety of x86 machine
                 code programs compiled from code that uses algebraic
                 datatypes. The tool's soundness theorem is expressed in
                 terms of the bit-level semantics of x86 programs, so
                 its correctness depends on very few assumptions. I take
                 advantage of Coq's support for programming with
                 dependent types and modules in the structure of my
                 development. The approach is based on developing a
                 library of reusable functors for transforming a
                 verifier at one level of abstraction into a verifier at
                 a lower level. Using this library, it's possible to
                 prototype a verifier based on a new type system with a
                 minimal amount of work, while obtaining a very strong
                 soundness theorem about the final product.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "interactive proof assistants; programming with
                 dependent types; proof-carrying code",
}

@Article{Hickey:2006:MMR,
  author =       "Jason Hickey and Aleksey Nogin and Xin Yu and Alexei
                 Kopylov",
  title =        "Mechanized meta-reasoning using a hybrid {HOAS\slash
                 de Bruijn} representation and reflection",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "172--183",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159826",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We investigate the development of a general-purpose
                 framework for mechanized reasoning about the
                 meta-theory of programming languages. In order to
                 provide a standard, uniform account of a programming
                 language, we propose to define it as a logic in a
                 logical framework, using the same mechanisms for
                 definition, reasoning, and automation that are
                 available to other logics. Then, in order to reason
                 about the language's meta-theory, we use reflection to
                 inject the programming language into (usually richer
                 and more expressive) meta-theory. One of the key
                 features of our approach is that structure of the
                 language is preserved when it is reflected, including
                 variables, meta-variables, and binding structure. This
                 allows the structure of proofs to be preserved as well,
                 and there is a one-to-one map from proof steps in the
                 original programming logic to proof steps in the
                 reflected logic. The act of reflecting a language is
                 automated; all definitions, theorems, and proofs are
                 preserved by the transformation and all the key lemmas
                 (such as proof and structural induction) are
                 automatically derived. The principal representation
                 used by the reflected logic is higher-order abstract
                 syntax (HOAS). However, reasoning about terms in HOAS
                 can be awkward in some cases, especially for variables.
                 For this reason, we define a computationally equivalent
                 variable-free de Bruijn representation that is
                 interchangeable with the HOAS in all contexts. The de
                 Bruijn representation inherits the properties of
                 substitution and alpha-equality from the logical
                 framework, and it is not complicated by administrative
                 issues like variable renumbering. We further develop
                 the concepts and principles of proofs, provability, and
                 structural and proof induction. This work is fully
                 implemented in the MetaPRL theorem prover. We
                 illustrate with an application to F",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "higher-order abstract syntax; languages with bindings;
                 mechanized reasoning; meta-theory; metaPRL; nuPRL;
                 reflection; type theory",
}

@Article{Rosu:2006:ESC,
  author =       "Grigore Ro{\c{s}}u",
  title =        "Equality of streams is a {$\Pi 0$} over $2$-complete
                 problem",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "184--191",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159827",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper gives a precise characterization for the
                 complexity of the problem of proving equal two streams
                 defined with a finite number of equations: $\Pi$0 over
                 2. Since the $\Pi$ 0 over 2 class includes properly
                 both the reursively enumerable and the corecursively
                 enumerable classes, this result implies that neither
                 the set of pairs of equal streams nor the set of pairs
                 of unequal streams is recursively enumerable.
                 Consequently, one can find no algorithm for determining
                 equality of streams, as well as no algorithm for
                 determining inequality of streams. In particular, there
                 is no complete proof system for equality of streams and
                 no complete system for inequality of streams.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "algebraic specification; infinite structures;
                 streams",
}

@Article{Frisch:2006:OX,
  author =       "Alain Frisch",
  title =        "{OCaml} + {XDuce}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "192--200",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159829",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents the core type system and type
                 inference algorithm of OCamlDuce, a merger between
                 OCaml and XDuce. The challenge was to combine two type
                 checkers of very different natures while preserving the
                 best properties of both (principality and automatic
                 type reconstruction on one side; very precise types and
                 implicit subtyping on the other side). Type inference
                 can be described by two successive passes: the first
                 one is an ML-like unification-based algorithm which
                 also extracts data flow constraints about XML values;
                 the second one is an XDuce-like algorithm which
                 computes XML types in a direct way. An optional
                 preprocessing pass, called strengthening, can be added
                 to allow more implicit use of XML subtyping. This pass
                 is also very similar to an ML type checker.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "CDuce; OCaml; regular expression types; type
                 inference; XDuce; XML",
}

@Article{Kawanaka:2006:BBT,
  author =       "Shinya Kawanaka and Haruo Hosoya",
  title =        "{biXid}: a bidirectional transformation language for
                 {XML}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "201--214",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159830",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Often, independent organizations define and advocate
                 different XML formats for a similar purpose and, as a
                 result, application programs need to mutually convert
                 between such formats. Existng XML transformation
                 languages, such as XSLT and XDuce, are unsatisfactory
                 for this purpose since we would have to write, e.g.,
                 two programs for the forward and the backward
                 transformations in case of two formats, incur high
                 developing and maintenance costs. This paper proposes
                 the bidirectional XML transformation language biXid,
                 allowing us to write only one program for both
                 directions of conversion. Our language adopts a common
                 paradigm programming-by-relation, where a program
                 defines a relation over documents and transforms a
                 document to another in a way satisfying this relation.
                 Our contributions here are specific language features
                 for facilitating realistic conversions whose target
                 formats are loosely in parallel but have many
                 discrepancies in details. Concretely, we (1) adopt
                 XDuce-style regular expression patterns for describing
                 and analyzing XML structures, (2) fully permit
                 ambiguity for treating formats that do not have
                 equivalent expressivenesses, and (3) allow non-linear
                 pattern variables for expressing non-trivial
                 transformations that cannot be written only with linear
                 patterns, such as conversion between unordered and
                 ordered data. We further develop an efficient
                 evaluation algorithm for biXid, consisting of the
                 'parsing' phase that transforms the input document to
                 an intermediate 'parse tree' structure and the
                 'unparsing' phase that transforms it to an output
                 document. Both phases use a variant of finite tree
                 automata for performing a one-pass scan on the input or
                 the parse tree by using a standard technique that
                 'maintains the set of all transitable states.' However,
                 the construction of the 'unparsing' phase is
                 challenging since ambiguity causes different ways of
                 consuming the parse tree and thus results in multiple
                 possible outputs that may have different structures. We
                 have implemented a prototype system of biXid and
                 confirmed that it has enough expressiveness and a
                 linear-time performance from experiments with several
                 realistic bidirectional transformations including one
                 between vCard-XML and ContactXML.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "tree automata; XML",
}

@Article{Bird:2006:FYF,
  author =       "Richard S. Bird",
  title =        "Fifteen years of functional pearls",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "215--215",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159832",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In 1991, when the Journal of Functional Programming
                 was inaugurated, the editors, Simon Peyton Jones and
                 Philip Wadler, asked me to contribute a regular column
                 to be called Functional Pearls. The idea was to emulate
                 the very successful series of essays that Jon Bentley
                 had written under the title Programming Pearls in the
                 Communications of the ACM. A possible alternative model
                 for the column was Martin Rem's Small Programming
                 Exercises that appeared regularly in the Science of
                 Computer Programming in the 1980s. In Rem's articles,
                 various programming tasks were posed in one issue, and
                 solved in the subsequent one. It was felt that similar
                 material could be adapted to a functional style, using
                 equational reasoning rather than the Dijkstra-Hoare
                 framework to derive the final product. After all, one
                 reason that functional programming stimulated the
                 interest of many at that time was that it was good for
                 equational reasoning, a slogan captured in Mark Jone's
                 GOFER system (Good For Equational Reasoning). I agreed
                 to the suggestion, but only under the proviso that
                 other contributors to the column should be sought.
                 Counting to the end of the present year, 2006, about 64
                 pearls will have appeared in JFP, of which I have
                 written 14. There are also various pearls that have
                 been presented at ICFP and at MPC (Mathematics of
                 Program Construction). The pearls range in content,
                 from (hopefully) instructive exercises in program
                 calculation --- my own area of interest, to attractive
                 presentations of new functional data structures --- of
                 which Ralf Hinze and Chris Okasaki were the main
                 contributors, as well as interesting algorithms in
                 their own right, such as Runciman's Lazy wheel sieves,
                 and Huet's Zipper .This talk will review a little of
                 the history of Functional Pearls, and tentatively try
                 to suggest what ingredients make a good pearl and how
                 pearls differ from normal research papers. Indeed, my
                 brief from the Program Chair for this talk was
                 expressed as follows: 'Well done Functional Pearls are
                 often the highlight of an ICFP conference, but many of
                 the submitted ones somehow miss the mark, by being too
                 trivial, too complicated, or somehow not quite the
                 elegant solution one hopes for. So it would be
                 interesting to hear about your experiences as to what
                 makes a good one and how to go about creating it.
                 Having accepted this daunting commission, and being
                 mindful of Horace's remark that good advice should be
                 short, I am now busily engaged in finding a pearl that
                 is not too trivial, nor too complicated, and is
                 sufficiently elegant to serve as a decent example, both
                 to illustrate the talk and to provide some technical
                 content.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bringert:2006:PAC,
  author =       "Bj{\"o}rn Bringert and Aarne Ranta",
  title =        "A pattern for almost compositional functions",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "216--226",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159834",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper introduces a pattern for almost
                 compositional functions over recursive data types, and
                 over families of mutually recursive data types. Here
                 'almost compositional' means that for a number of the
                 constructors in the type(s), the result of the function
                 depends only on the constructor and the results of
                 calling the function on the constructor's arguments.
                 The pattern consists of a generic part constructed once
                 for each data type or family of data types, and a
                 task-specific part. The generic part contains the code
                 for the predictable compositional cases, leaving the
                 interesting work to the task-specific part. Examples of
                 the pattern implemented in dependent type theory with
                 inductive families, in Haskell with generalized
                 algebraic data types and rank-2 polymorphism, and in
                 Java using a variant of the Visitor design pattern are
                 given. The relationship to the 'Scrap Your Boilerplate'
                 approach to generic programming, and to general tree
                 types in dependent type theory are also investigated.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract syntax; dependent type theory; Haskell; Java;
                 traversal; visitor pattern",
}

@Article{Katsumata:2006:AFF,
  author =       "Shin-ya Katsumata and Susumu Nishimura",
  title =        "Algebraic fusion of functions with an accumulating
                 parameter and its improvement",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "227--238",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1159803.1159835",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a unifying solution to the problem of
                 fusion of functions, where both the producer function
                 and the consumer function have one accumulating
                 parameter. The key idea in this development is to
                 formulate the producer function as a function which
                 computes over a monoid of data contexts. Upon this
                 formulation, we develop a fusion method called
                 algebraic fusion based on the elementary theory of
                 universal algebra and monoids. The producer function is
                 fused with a monoid homomorphism that is derived from
                 the definition of the consumer function, and is turned
                 into a higher-order function $f$ that computes over the
                 monoid of endofunctions. We then introduce a general
                 concept called improvement, in order to reduce the cost
                 of computing over the monoid of endofunctions (i.e.,
                 function closures). An improvement of the function $f$
                 via a monoid homomorphism $h$ is a function $g$ that
                 satisfies $f = h^\circ g$. This provides a principled
                 way of finding a first-order function representing a
                 solution to the fusion problem. It also presents a
                 clean and unifying account for varying fusion methods
                 that have been proposed so far. Furthermore, we show
                 that our method extends to support partial and infinite
                 data structures, by means of an appropriate monoid
                 structure.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "accumulating parameter; data contexts; higher-order
                 removal; monoids and monoid homomorphisms; partial and
                 infinite data structures; shortcut fusion",
}

@Article{Blume:2006:EPF,
  author =       "Matthias Blume and Umut A. Acar and Wonseok Chae",
  title =        "Extensible programming with first-class cases",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "239--250",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159836",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present language mechanisms for polymorphic,
                 extensible records and their exact dual, polymorphic
                 sums with extensible first-class cases. These features
                 make it possible to easily extend existing code with
                 new cases. In fact, such extensions do not require any
                 changes to code that adheres to a particular
                 programming style. Using that style, individual
                 extensions can be written independently and later be
                 composed to form larger components. These language
                 mechanisms provide a solution to the expression
                 problem. We study the proposed mechanisms in the
                 context of an implicitly typed, purely functional
                 language PolyR. We give a type system for the language
                 and provide rules for a 2-phase transformation: first
                 into an explicitly typed \lambda -calculus with record
                 polymorphism, and finally to efficient index-passing
                 code. The first phase eliminates sums and cases by
                 taking advantage of the duality with records. We
                 implement a version of PolyR extended with imperative
                 features and pattern matching --- we call this language
                 MLPolyR. Programs in MLPolyR require no type
                 annotations --- the implementation employs a
                 reconstruction algorithm to infer all types. The
                 compiler generates machine code (currently for PowerPC)
                 and optimizes the representation of sums by eliminating
                 closures generated by the dual construction.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "duality; first-class cases; records; sums",
}

@Article{Vytiniotis:2006:BTI,
  author =       "Dimitrios Vytiniotis and Stephanie Weirich and Simon
                 Peyton Jones",
  title =        "Boxy types: inference for higher-rank types and
                 impredicativity",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "251--262",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159838",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Languages with rich type systems are beginning to
                 employ a blend of type inference and type checking, so
                 that the type inference engine is guided by
                 programmer-supplied type annotations. In this paper we
                 show, for the first time, how to combine the virtues of
                 two well-established ideas: unification-based
                 inference, and bidirectional propagation of type
                 annotations. The result is a type system that
                 conservatively extends Hindley--Milner, and yet
                 supports both higher-rank types and impredicativity.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "higher-rank types; impredicativity; type inference",
}

@Article{Abadi:2006:ACC,
  author =       "Mart{\'\i}n Abadi",
  title =        "Access control in a core calculus of dependency",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "263--273",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159839",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Dependency Core Calculus (DCC) is an extension of
                 the computational lambda calculus that was designed in
                 order to capture the notion of dependency that arises
                 in information-flow control, partial evaluation, and
                 other programming-language settings. We show that,
                 unexpectedly, DCC can also be used as a calculus for
                 access control in distributed systems. Initiating the
                 study of DCC from this perspective, we explore some of
                 its appealing properties.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "authorization; types",
}

@Article{Lin:2006:PMO,
  author =       "Chuan-kai Lin",
  title =        "Programming monads operationally with {Unimo}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "274--285",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159840",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Monads are widely used in Haskell for modeling
                 computational effects, but defining monads remains a
                 daunting challenge. Since every part of a monad's
                 definition depends on its computational effects,
                 programmers cannot leverage the common behavior of all
                 monads easily and thus must build from scratch each
                 monad that models a new computational effect. I propose
                 the Unimo framework which allows programmers to define
                 monads and monad transformers in a modular manner.
                 Unimo contains a heavily parameterized observer
                 function which enforces the monad laws, and programmers
                 define a monad by invoking the observer function with
                 arguments that specify the computational effects of the
                 monad. Since Unimo provides the common behavior of all
                 monads in a reusable form, programmers no longer need
                 to rebuild the semantic boilerplate for each monad and
                 can instead focus on the more interesting and rewarding
                 task of modeling the desired computational effects.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Haskell; monad transformers; monads; Unimo",
}

@Article{Denielou:2006:APS,
  author =       "Pierre-Malo Deni{\'e}lou and James J. Leifer",
  title =        "Abstraction preservation and subtyping in distributed
                 languages",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "286--297",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159841",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In most programming languages, type abstraction is
                 guaranteed by syntactic scoping in a single program,
                 but is not preserved by marshalling during distributed
                 communication. A solution is to generate hash types at
                 compile time that consist of a fingerprint of the
                 source code implementing the data type. These hash
                 types can be tupled with a marshalled value and
                 compared efficiently at unmarshall time to guarantee
                 abstraction safety. In this paper, we extend a core
                 calculus of ML-like modules, functions, distributed
                 communication, and hash types, to integrate structural
                 subtyping, user-declared subtyping between abstract
                 types, and bounded existential types. Our semantics
                 makes two contributions: (1) the explicit tracking of
                 the interaction between abstraction boundaries and
                 subtyping; (2) support for user-declared module
                 upgrades with propagation of the resulting subhashing
                 relation throughout the network during communication.
                 We prove type preservation, progress, determinacy, and
                 erasure for our system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "module systems; programming language semantics;
                 serialisation and distributed computation; subtyping;
                 type theory",
}

@Article{Hutchins:2006:EDCa,
  author =       "DeLesley Hutchins",
  title =        "Eliminating distinctions of class: using prototypes to
                 model virtual classes",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "1--20",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167475",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In mainstream OO languages, inheritance can be used to
                 add new methods, or to override existing methods.
                 Virtual classes and feature oriented programming are
                 techniques which extend the mechanism of inheritance so
                 that it is possible to refine nested classes as well.
                 These techniques are attractive for programming in the
                 large, because inheritance becomes a tool for
                 manipulating whole class hierarchies rather than
                 individual classes. Nevertheless, it has proved
                 difficult to design static type systems for virtual
                 classes, because virtual classes introduce dependent
                 types. The compile-time type of an expression may
                 depend on the run-time values of objects in that
                 expression. We present a formal object calculus which
                 implements virtual classes in a type-safe manner. Our
                 type system uses a novel technique based on prototypes,
                 which blur the distinction between compile-time and
                 run-time. At run-time, prototypes act as objects, and
                 they can be used in ordinary computations. At
                 compile-time, they act as types. Prototypes are similar
                 in power to dependent types, and subtyping is shown to
                 be a form of partial evaluation. We prove that
                 prototypes are type-safe but undecidable, and briefly
                 outline a decidable semi-algorithm for dealing with
                 them.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpretation; dependent types; features;
                 mixins; partial evaluation; prototypes; singleton
                 types; virtual classes; virtual types",
}

@Article{Nystrom:2006:JNIa,
  author =       "Nathaniel Nystrom and Xin Qi and Andrew C. Myers",
  title =        "{J\&}: nested intersection for scalable software
                 composition",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "21--36",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167476",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper introduces a programming language that
                 makes it convenient to compose large software systems,
                 combining their features in a modular way. J\& supports
                 nested intersection, building on earlier work on nested
                 inheritance in the language Jx. Nested inheritance
                 permits modular, type-safe extension of a package
                 (including nested packages and classes), while
                 preserving existing type relationships. Nested
                 intersection enables composition and extension of two
                 or more packages, combining their types and behavior
                 while resolving conflicts with a relatively small
                 amount of code. The utility of J\& is demonstrated by
                 using it to construct two composable, extensible
                 frameworks: a compiler framework for Java, and a
                 peer-to-peer networking system. Both frameworks support
                 composition of extensions. For example, two compilers
                 adding different, domain-specific features to Java can
                 be composed to obtain a compiler for a language that
                 supports both sets of features.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; nested inheritance; nested intersection",
}

@Article{Warth:2006:SSOa,
  author =       "Alessandro Warth and Milan Stanojevi{\'c} and Todd
                 Millstein",
  title =        "Statically scoped object adaptation with expanders",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "37--56",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167477",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper introduces the expander, a new
                 object-oriented (OO) programming language construct
                 designed to support object adaptation. Expanders allow
                 existing classes to be noninvasively updated with new
                 methods, fields, and superinterfaces. Each client can
                 customize its view of a class by explicitly importing
                 any number of expanders. This view then applies to all
                 instances of that class, including objects passed to
                 the client from other components. A form of expander
                 overriding allows expanders to interact naturally with
                 OO-style inheritance. We describe the design,
                 implementation, and evaluation of eJava, an extension
                 to Java supporting expanders. We illustrate eJava's
                 syntax and semantics through several examples. The
                 statically scoped nature of expander usage allows for a
                 modular static type system that prevents several
                 important classes of errors. We describe this modular
                 static type system informally, formalize eJava and its
                 type system in an extension to Featherweight Java, and
                 prove a type soundness theorem for the formalization.
                 We also describe a modular compilation strategy for
                 eJava, which we have implemented using the Polyglot
                 extensible compiler framework. Finally, we illustrate
                 the practical benefits of eJava by using this compiler
                 in two experiments.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "expanders; modular typechecking; object adaptation",
}

@Article{Andreae:2006:FIP,
  author =       "Chris Andreae and James Noble and Shane Markstrum and
                 Todd Millstein",
  title =        "A framework for implementing pluggable type systems",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "57--74",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167479",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:51:58 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Pluggable types have been proposed to support multiple
                 type systems in the same programming language. We have
                 designed and implemented JavaCOP, a program constraint
                 system for implementing practical pluggable type
                 systems for Java. JavaCOP enforces user-defined typing
                 constraints written in a declarative and expressive
                 rule language. We have validated our design by
                 (re)implementing a range of type systems and program
                 checkers. By using a program constraint system to
                 implement pluggable types, programmers are able to
                 check that their programs will operate correctly in
                 restricted environments, adhere to strict programming
                 rules, avoid null pointer errors or scoped memory
                 exceptions, and meet style guidelines, while
                 programming language researchers can easily experiment
                 with novel type systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "JavaCOP; pluggable type systems",
}

@Article{Fairbanks:2006:DFMa,
  author =       "George Fairbanks and David Garlan and William
                 Scherlis",
  title =        "Design fragments make using frameworks easier",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "75--88",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167480",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Object oriented frameworks impose additional burdens
                 on programmers that libraries did not, such as
                 requiring the programmer to understand the method
                 callback sequence, respecting behavior constraints
                 within these methods, and devising solutions within a
                 constrained solution space. To overcome these burdens,
                 we express the repeated patterns of engagement with the
                 framework as a design fragment. We analyzed the 20 demo
                 applets provided by Sun and created a representative
                 catalog of design fragments of conventional best
                 practice. By evaluating 36 applets pulled from the
                 Internet we show that these design fragments are
                 common, many applets copied the structure of the Sun
                 demos, and that creation of a catalog of design
                 fragments is practical. Design fragments give
                 programmers immediate benefit through tool-based
                 conformance assurance and long-term benefit through
                 expression of design intent.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "design fragments; frameworks; object-oriented
                 programming; patterns",
}

@Article{Cohen:2006:JJTa,
  author =       "Tal Cohen and Joseph (Yossi) Gil and Itay Maman",
  title =        "{JTL}: the {Java} tools language",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "89--108",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167481",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present an overview of JTL (the Java Tools
                 Language, pronounced 'Gee-tel'), a novel language for
                 querying JAVA [8] programs. JTL was designed to serve
                 the development of source code software tools for JAVA,
                 and as a small language which to aid programming
                 language extensions to JAVA. Applications include
                 definition of pointcuts for aspect-oriented
                 programming, fixing type constraints for generic
                 programming, specification of encapsulation policies,
                 definition of micro-patterns, etc. We argue that the
                 JTL expression of each of these is systematic, concise,
                 intuitive and general. JTL relies on a simply-typed
                 relational database for program representation, rather
                 than an abstract syntax tree. The underlying semantics
                 of the language is restricted to queries formulated in
                 First Order Predicate Logic augmented with transitive
                 closure (FOPL). Special effort was taken to ensure
                 terse, yet readable expression of logical conditions.
                 The JTL pattern public abstract class, for example,
                 matches all abstract classes which are publicly
                 accessible, while class (public clone();) matches all
                 classes in which method clone is public. To this end,
                 JTL relies on a DATALOG-like syntax and semantics,
                 enriched with quantifiers and pattern matching which
                 all but entirely eliminate the need for recursive
                 calls. JTL's query analyzer gives special attention to
                 the fragility of the 'closed world assumption' in
                 examining JAVA software, and determines whether a query
                 relies on such an assumption. The performance of the
                 JTL interpreter is comparable to that of JQuery after
                 it generated its database cache, and at least an order
                 of magnitude faster when the cache has to be rebuilt.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "declarative programming; reverse engineering",
}

@Article{Bockisch:2006:AVMa,
  author =       "Christoph Bockisch and Matthew Arnold and Tom
                 Dinkelaker and Mira Mezini",
  title =        "Adapting virtual machine techniques for seamless
                 aspect support",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "109--124",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167483",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Current approaches to compiling aspect-oriented
                 programs are inefficient. This inefficiency has
                 negative effects on the productivity of the development
                 process and is especially prohibitive for dynamic
                 aspect deployment. In this work, we present how
                 well-known virtual machine techniques can be used with
                 only slight modifications to support fast aspect
                 deployment while retaining runtime performance. Our
                 implementation accelerates dynamic aspect deployment by
                 several orders of magnitude relative to mainstream
                 aspect-oriented environments. We also provide a
                 detailed comparison of alternative implementations of
                 execution environments with support for dynamic aspect
                 deployment.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect weaving; aspect-oriented programming; dynamic
                 deployment; envelope-based weaving; virtual machine
                 support",
}

@Article{Bockisch:2006:ECFa,
  author =       "Christoph Bockisch and Sebastian Kanthak and Michael
                 Haupt and Matthew Arnold and Mira Mezini",
  title =        "Efficient control flow quantification",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "125--138",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167484",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Aspect-oriented programming (AOP) is increasingly
                 gaining in popularity. However, the focus of
                 aspect-oriented language research has been mostly on
                 language design issues; efficient implementation
                 techniques have been less popular. As a result, the
                 performance of certain AOP constructs is still poor.
                 This is in particular true for constructs that rely on
                 dynamic properties of the execution (e.g., the cflow
                 construct). In this paper, we present efficient
                 implementation techniques for cflow that exploit direct
                 access to internal structures of the virtual machine
                 running an application, such as the call stack, as well
                 as the integration of these techniques into the
                 just-in-time compiler code generation process. Our
                 results show that AOP has the potential to make
                 programs that need to define control flow-dependent
                 behavior not only more modular but also more efficient.
                 By making means for control flow-dependent behavior
                 part of the language, AOP opens the possibility of
                 applying sophisticated compiler optimizations that are
                 out of reach for application programmers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented programming; control flow; virtual
                 machine support",
}

@Article{Eugster:2006:UPJa,
  author =       "Patrick Eugster",
  title =        "Uniform proxies for {Java}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "139--152",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167485",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The proxy abstraction has a longlasting tradition in
                 object settings. From design pattern to inherent
                 language support, from remote method invocations to
                 simple forms of behavioral reflection --- incarnations
                 as well as applications of proxies are innumerable.
                 Since version 1.3, Java supports the concept of dynamic
                 proxy. Such an object conforms to a set of types
                 specified by the program and can be used wherever an
                 expression of any of these types is expected, yet
                 reifies invocations performed on it. Dynamic proxies
                 have been applied to implement paradigms as diverse as
                 behavioral reflection, structural conformance, or
                 multi-methods. Alas, these proxies are only available
                 'for interfaces'. The case of creating dynamic proxies
                 for a set of types including a class type has not been
                 considered, meaning that it is currently not possible
                 to create a dynamic proxy mimicking an instance of a
                 given class. This weakness strongly limits any
                 application of dynamic proxies. In this paper we unfold
                 the current support for dynamic proxies in Java,
                 assessing it in the light of a set of generic criteria
                 for proxy implementations. We present an approach to
                 supporting dynamic proxies 'for classes' in Java,
                 consisting in transformations performed on classes at
                 load-time, including a generic scheme for enforcing
                 encapsulation upon field accesses. These
                 transformations seemlessly extend the scope of the
                 current support for dynamic proxies. We discuss the
                 precise benefits and costs of our extension in terms of
                 the criteria introduced, and illustrate the usefulness
                 of uniformly available proxies by implementing future
                 method invocations both safely and transparently.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "future; Java; proxy; transformation",
}

@Article{Maebe:2006:JSBa,
  author =       "Jonas Maebe and Dries Buytaert and Lieven Eeckhout and
                 Koen {De Bosschere}",
  title =        "{Javana}: a system for building customized {Java}
                 program analysis tools",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "153--168",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167487",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Understanding the behavior of applications running on
                 high-level language virtual machines, as is the case in
                 Java, is non-trivial because of the tight entanglement
                 at the lowest execution level between the application
                 and the virtual machine. This paper proposes Javana, a
                 system for building Java program analysis tools. Javana
                 provides an easy-to-use instrumentation infrastructure
                 that allows for building customized profiling tools
                 very quickly. Javana runs a dynamic binary
                 instrumentation tool underneath the virtual machine.
                 The virtual machine communicates with the
                 instrumentation layer through an event handling
                 mechanism for building a vertical map that links
                 low-level native instruction pointers and memory
                 addresses to high-level language concepts such as
                 objects, methods, threads, lines of code, etc. The
                 dynamic binary instrumentation tool then intercepts all
                 memory accesses and instructions executed and provides
                 the Javana end user with high-level language
                 information for all memory accesses and natively
                 executed instructions. We demonstrate the power of
                 Javana through a number of applications: memory address
                 tracing, vertical cache simulation and object lifetime
                 computation. For each of these applications, the
                 instrumentation specification requires only a small
                 number of lines of code. Developing similarly powerful
                 profiling tools within a virtual machine (as done in
                 current practice) is both time-consuming and
                 error-prone; in addition, the accuracy of the obtained
                 profiling results might be questionable as we show in
                 this paper.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented instrumentation; customized program
                 analysis tool; Java",
}

@Article{Blackburn:2006:DBJa,
  author =       "Stephen M. Blackburn and Robin Garner and Chris
                 Hoffmann and Asjad M. Khang and Kathryn S. McKinley and
                 Rotem Bentzur and Amer Diwan and Daniel Feinberg and
                 Daniel Frampton and Samuel Z. Guyer and Martin Hirzel
                 and Antony Hosking and Maria Jump and Han Lee and J.
                 Eliot B. Moss and B. Moss and Aashish Phansalkar and
                 Darko Stefanovi{\'c} and Thomas VanDrunen and Daniel
                 von Dincklage and Ben Wiedermann",
  title =        "The {DaCapo} benchmarks: {Java} benchmarking
                 development and analysis",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "169--190",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167488",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Since benchmarks drive computer science research and
                 industry product development, which ones we use and how
                 we evaluate them are key questions for the community.
                 Despite complex runtime tradeoffs due to dynamic
                 compilation and garbage collection required for Java
                 programs, many evaluations still use methodologies
                 developed for C, C++, and Fortran. SPEC, the dominant
                 purveyor of benchmarks, compounded this problem by
                 institutionalizing these methodologies for their Java
                 benchmark suite. This paper recommends benchmarking
                 selection and evaluation methodologies, and introduces
                 the DaCapo benchmarks, a set of open source,
                 client-side Java benchmarks. We demonstrate that the
                 complex interactions of (1) architecture, (2) compiler,
                 (3) virtual machine, (4) memory management, and (5)
                 application require more extensive evaluation than C,
                 C++, and Fortran which stress (4) much less, and do not
                 require \1. We use and introduce new value,
                 time-series, and statistical metrics for static and
                 dynamic properties such as code complexity, code size,
                 heap composition, and pointer mutations. No benchmark
                 suite is definitive, but these metrics show that DaCapo
                 improves over SPEC Java in a variety of ways, including
                 more complex code, richer object behaviors, and more
                 demanding memory system requirements. This paper takes
                 a step towards improving methodologies for choosing and
                 evaluating benchmarks to foster innovation in system
                 design and implementation for Java and other managed
                 languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "benchmark; DaCapo; Java; methodology; SPEC",
}

@Article{Titzer:2006:VOHa,
  author =       "Ben L. Titzer",
  title =        "{Virgil}: objects on the head of a pin",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "191--208",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167489",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Embedded microcontrollers are becoming increasingly
                 prolific, serving as the primary or auxiliary processor
                 in products and research systems from microwaves to
                 sensor networks. Microcontrollers represent perhaps the
                 most severely resource-constrained embedded processors,
                 often with as little as a few bytes of memory and a few
                 kilobytes of code space. Language and compiler
                 technology has so far been unable to bring the benefits
                 of modern object-oriented languages to such processors.
                 In this paper, I will present the design and
                 implementation of Virgil, a lightweight object-oriented
                 language designed with careful consideration for
                 resource-limited domains. Virgil explicitly separates
                 initialization time from runtime, allowing an
                 application to build complex data structures during
                 compilation and then run directly on the bare hardware
                 without a virtual machine or any language runtime. This
                 separation allows the entire program heap to be
                 available at compile time and enables three new
                 data-sensitive optimizations: reachable members
                 analysis, reference compression, and ROM-ization.
                 Experimental results demonstrate that Virgil is well
                 suited for writing microcontroller programs, with five
                 demonstrative applications fitting in less than 256
                 bytes of RAM with fewer than 50 bytes of metadata.
                 Further results show that the optimizations presented
                 in this paper reduced code size between 20\% and 80\%
                 and RAM size by as much as 75\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data-sensitive optimization; dead code elimination;
                 embedded systems; heap compression; microcontrollers;
                 multi-stage computation; sensor networks; standalone
                 programs; static analysis; systems software;
                 whole-program compilation",
}

@Article{Bravenboer:2006:DFEa,
  author =       "Martin Bravenboer and {\'E}ric Tanter and Eelco
                 Visser",
  title =        "Declarative, formal, and extensible syntax definition
                 for {aspectJ}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "209--228",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167491",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Aspect-Oriented Programming (AOP) is attracting
                 attention from both research and industry, as
                 illustrated by the ever-growing popularity of AspectJ,
                 the de facto standard AOP extension of Java. From a
                 compiler construction perspective AspectJ is
                 interesting as it is a typical example of compositional
                 language, i.e., a language composed of a number of
                 separate languages with different syntactical styles:
                 in addition to plain Java, AspectJ includes a language
                 for defining pointcuts and one for defining advices.
                 Language composition represents a non-trivial challenge
                 for conventional parsing techniques. First, combining
                 several languages with different lexical syntax leads
                 to considerable complexity in the lexical states to
                 processed. Second, as new language features for AOP are
                 being explored, many research proposals are concerned
                 with further extending the AspectJ language, resulting
                 in a need for an extensible syntax definition. This
                 paper shows how scannerless parsing elegantly addresses
                 the issues encountered by conventional techniques when
                 parsing AspectJ . We present the design of a modular,
                 extensible, and formal definition of the lexical and
                 context-free aspects of the AspectJ syntax in the
                 Syntax Definition Formalism SDF, which is implemented
                 by a scannerless, generalized-LR parser (SGLR). We
                 introduce grammar mixins as a novel application of
                 SDF's modularity features, which allows the declarative
                 definition of different keyword policies and
                 combination of extensions. We illustrate the modular
                 extensibility of our definition with syntax extensions
                 taken from current research on aspect languages.
                 Finally, benchmarks show the reasonable performance of
                 scannerless generalized-LR parsing for this grammar.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspectJ; generalized-LR parsing; grammar mixins;
                 lexical syntax; scannerless parsing; syntax definition;
                 syntax extension",
}

@Article{Cavazos:2006:MSDa,
  author =       "John Cavazos and Michael F. P. O'Boyle",
  title =        "Method-specific dynamic compilation using logistic
                 regression",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "229--240",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167492",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Determining the best set of optimizations to apply to
                 a program has been a long standing problem for compiler
                 writers. To reduce the complexity of this task,
                 existing approaches typically apply the same set of
                 optimizations to all procedures within a program,
                 without regard to their particular structure. This
                 paper develops a new method-specific approach that
                 automatically selects the best optimizations on a per
                 method basis within a dynamic compiler. Our approach
                 uses the machine learning technique of logistic
                 regression to automatically derive a predictive model
                 that determines which optimizations to apply based on
                 the features of a method. This technique is implemented
                 in the Jikes RVM Java JIT compiler. Using this approach
                 we reduce the average total execution time of the
                 SPECjvm98 benchmarks by 29\%. When the same heuristic
                 is applied to the DaCapo+ benchmark suite, we obtain an
                 average 33\% reduction over the default level O2
                 setting.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler optimization; Java; Jikes RVM; logistic
                 regression; machine learning",
}

@Article{Ogata:2006:RCIa,
  author =       "Kazunori Ogata and Tamiya Onodera and Kiyokuni
                 Kawachiya and Hideaki Komatsu and Toshio Nakatani",
  title =        "Replay compilation: improving debuggability of a
                 just-in-time compiler",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "241--252",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167493",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The performance of Java has been tremendously improved
                 by the advance of Just-in-Time (JIT) compilation
                 technologies. However, debugging such a dynamic
                 compiler is much harder than a static compiler.
                 Recompiling the problematic method to produce a
                 diagnostic output does not necessarily work as
                 expected, because the compilation of a method depends
                 on runtime information at the time of compilation. In
                 this paper, we propose a new approach, called replay
                 JIT compilation, which can reproduce the same
                 compilation remotely by using two compilers, the
                 state-saving compiler and the replaying compiler. The
                 state-saving compiler is used in a normal run, and,
                 while compiling a method, records into a log all of the
                 input for the compiler. The replaying compiler is then
                 used in a debugging run with the system dump, to
                 recompile a method with the options for diagnostic
                 output. We reduced the overhead to save the input by
                 using the system dump and by categorizing the input
                 based on how its value changes. In our experiment, the
                 increase of the compilation time for saving the input
                 was only 1\%, and the size of the additional memory
                 needed for saving the input was only 10\% of the
                 compiler-generated code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debuggability; deterministic replay; dynamic
                 optimization; Java; JIT compiler; problem
                 determination; replay compilation",
}

@Article{Herlihy:2006:FFIa,
  author =       "Maurice Herlihy and Victor Luchangco and Mark Moir",
  title =        "A flexible framework for implementing software
                 transactional memory",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "253--262",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167495",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe DSTM2, a Java{\TM} software library that
                 provides a flexible framework for implementing
                 object-based software transactional memory (STM). The
                 library uses transactional factories to transform
                 sequential (unsynchronized) classes into atomic
                 (transactionally synchronized) ones, providing a
                 substantial improvement over the awkward programming
                 interface of our previous DSTM library. Furthermore,
                 researchers can experiment with alternative STM
                 mechanisms by providing their own factories. We
                 demonstrate this flexibility by presenting two
                 factories: one that uses essentially the same
                 mechanisms as the original DSTM (with some
                 enhancements),and another that uses a completely
                 different approach. Because DSTM2 is packaged as a Java
                 library, a wide range of programmers can easily try it
                 out, and the community can begin to gain experience
                 with transactional programming. Furthermore,
                 researchers will be able to use the body of
                 transactional programs that arises from this community
                 experience to test and evaluate different STM
                 mechanisms simply by supplying new transactional
                 factories. We believe that this flexible approach will
                 help to build consensus about the best ways to
                 implement transactions, and will avoid the premature
                 'lock-in' that may arise if STM mechanisms are baked
                 into compilers before such experimentation is done.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomicity; concurrency; Java library; obstruction-free
                 factory; shadow factory; software transactional memory
                 (STM); transactions",
}

@Article{Russell:2006:ESRa,
  author =       "Kenneth Russell and David Detlefs",
  title =        "Eliminating synchronization-related atomic operations
                 with biased locking and bulk rebiasing",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "263--272",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167496",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Java{\TM} programming language contains built-in
                 synchronization primitives for use in constructing
                 multithreaded programs. Efficient implementation of
                 these synchronization primitives is necessary in order
                 to achieve high performance. Recent research [9, 12,
                 10, 3, 7] has focused on the run-time elimination of
                 the atomic operations required to implement object
                 monitor synchronization primitives. This paper
                 describes a novel technique called store-free biased
                 locking which eliminates all synchronization-related
                 atomic operations on uncontended object monitors. The
                 technique supports the bulk transfer of object
                 ownership from one thread to another, and the selective
                 disabling of the optimization where unprofitable, using
                 epoch-based bulk rebiasing and revocation. It has been
                 implemented in the production version of the Java
                 HotSpot{\TM}VM and has yielded significant performance
                 improvements on a range of benchmarks and applications.
                 The technique is applicable to any virtual
                 machine-based programming language implementation with
                 mostly block-structured locking primitives.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomic; bias; Java; lock; monitor; optimization;
                 rebias; reservation; revoke; synchronization",
}

@Article{Chin:2006:FBAa,
  author =       "Wei-Ngan Chin and Florin Craciun and Siau-Cheng Khoo
                 and Corneliu Popeea",
  title =        "A flow-based approach for variant parametric types",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "273--290",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167498",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A promising approach for type-safe generic codes in
                 the object-oriented paradigm is variant parametric
                 type, which allows covariant and contravariant
                 subtyping on fields where appropriate. Previous
                 approaches formalise variant type as a special case of
                 the existential type system. In this paper, we present
                 a new framework based on flow analysis and modular type
                 checking to provide a simple but accurate model for
                 capturing generic types. Our scheme stands to benefit
                 from past (and future) advances in flow analysis and
                 subtyping constraints. Furthermore, it fully supports
                 casting for variant types with a special reflection
                 mechanism, called cast capture, to handle objects with
                 unknown types. We have built a constraint-based type
                 checker and have proven its soundness. We have also
                 successfully annotated a suite of Java libraries and
                 client code with our flow-based variant type system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "constraints; flow analysis; genericity; subtyping;
                 variant parametric types",
}

@Article{Gregor:2006:CLSa,
  author =       "Douglas Gregor and Jaakko J{\"a}rvi and Jeremy Siek
                 and Bjarne Stroustrup and Gabriel Dos Reis and Andrew
                 Lumsdaine",
  title =        "{Concepts}: linguistic support for generic programming
                 in {C++}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "291--310",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167499",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Generic programming has emerged as an important
                 technique for the development of highly reusable and
                 efficient software libraries. In C++, generic
                 programming is enabled by the flexibility of templates,
                 the C++ type parametrization mechanism. However, the
                 power of templates comes with a price: generic
                 (template) libraries can be more difficult to use and
                 develop than non-template libraries and their misuse
                 results in notoriously confusing error messages. As
                 currently defined in C++98, templates are
                 unconstrained, and type-checking of templates is
                 performed late in the compilation process, i.e., after
                 the use of a template has been combined with its
                 definition. To improve the support for generic
                 programming in C++, we introduce concepts to express
                 the syntactic and semantic behavior of types and to
                 constrain the type parameters in a C++ template. Using
                 concepts, type-checking of template definitions is
                 separated from their uses, thereby making templates
                 easier to use and easier to compile. These improvements
                 are achieved without limiting the flexibility of
                 templates or decreasing their performance --- in fact
                 their expressive power is increased. This paper
                 describes the language extensions supporting concepts,
                 their use in the expression of the C++ Standard
                 Template Library, and their implementation in the
                 ConceptGCC compiler. Concepts are candidates for
                 inclusion in the upcoming revision of the ISO C++
                 standard, C++0x.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C++ templates; C++0x; concepts; constrained generics;
                 generic programming; parametric polymorphism",
}

@Article{Potanin:2006:GOGa,
  author =       "Alex Potanin and James Noble and Dave Clarke and
                 Robert Biddle",
  title =        "Generic ownership for generic {Java}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "311--324",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167500",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Ownership types enforce encapsulation in
                 object-oriented programs by ensuring that objects
                 cannot be leaked beyond object(s) that own them.
                 Existing ownership programming languages either do not
                 support parametric polymorphism (type genericity) or
                 attempt to add it on top of ownership restrictions.
                 Generic Ownership provides per-object ownership on top
                 of a sound generic imperative language. The resulting
                 system not only provides ownership guarantees
                 comparable to established systems, but also requires
                 few additional language mechanisms due to full reuse of
                 parametric polymorphism. We formalise the core of
                 Generic Ownership, highlighting that only restriction
                 of this calls and owner subtype preservation are
                 required to achieve deep ownership. Finally we describe
                 how Ownership Generic Java (OGJ) was implemented as a
                 minimal extension to Generic Java in the hope of
                 bringing ownership types into mainstream programming.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "generics; Java; ownership; type systems",
}

@Article{Liu:2006:FFCa,
  author =       "Yu David Liu and Scott F. Smith",
  title =        "A formal framework for component deployment",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "325--344",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167502",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software deployment is a complex process, and
                 industrial-strength frameworks such as .NET, Java, and
                 CORBA all provide explicit support for component
                 deployment. However, these frameworks are not built
                 around fundamental principles as much as they are
                 engineering efforts closely tied to particulars of the
                 respective systems. Here we aim to elucidate the
                 fundamental principles of software deployment, in a
                 platform-independent manner. Issues that need to be
                 addressed include deployment unit design, when, where
                 and how to wire components together, versioning,
                 version dependencies, and hot-deployment of components.
                 We define the application buildbox as the place where
                 software is developed and deployed, and define a formal
                 Labeled Transition System (LTS) on the buildbox with
                 transitions for deployment operations that include
                 build, install, ship, and update. We establish formal
                 properties of the LTS, including the fact that if a
                 component is shipped with a certain version dependency,
                 then at run time that dependency must be satisfied with
                 a compatible version. Our treatment of deployment is
                 both platform- and vendor-independent, and we show how
                 it models the core mechanisms of the
                 industrial-strength deployment frameworks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "component; deployment; version",
}

@Article{Wasserrab:2006:OSTa,
  author =       "Daniel Wasserrab and Tobias Nipkow and Gregor Snelting
                 and Frank Tip",
  title =        "An operational semantics and type safety proof for
                 multiple inheritance in {C++}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "345--362",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167503",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present an operational semantics and type safety
                 proof for multiple inheritance in C++. The semantics
                 models the behaviour of method calls, field accesses,
                 and two forms of casts in C++ class hierarchies
                 exactly, and the type safety proof was formalized and
                 machine-checked in Isabelle/HOL. Our semantics enables
                 one, for the first time, to understand the behaviour of
                 operations on C++ class hierarchies without referring
                 to implementation-level artifacts such as virtual
                 function tables. Moreover, it can --- as the semantics
                 is executable --- act as a reference for compilers, and
                 it can form the basis for more advanced correctness
                 proofs of, e.g., automated program transformations. The
                 paper presents the semantics and type safety proof, and
                 a discussion of the many subtleties that we encountered
                 in modeling the intricate multiple inheritance model of
                 C++.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C++; multiple inheritance; semantics; type safety",
}

@Article{Darga:2006:ESMa,
  author =       "Paul T. Darga and Chandrasekhar Boyapati",
  title =        "Efficient software model checking of data structure
                 properties",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "363--382",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167504",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents novel language and analysis
                 techniques that significantly speed up software model
                 checking of data structure properties. Consider
                 checking a red-black tree implementation. Traditional
                 software model checkers systematically generate all
                 red-black tree states (within some given bounds) and
                 check every red-black tree operation (such as insert,
                 delete, or lookup) on every red-black tree state. Our
                 key idea is as follows. As our checker checks a
                 red-black tree operation $o$ on a red-black tree state
                 s, it uses program analysis techniques to identify
                 other red-black tree states ${s'}_1$, ${s'}_2$,
                 \ldots{}, ${s'}_k$ on which the operation $o$ behaves
                 similarly. Our analyses guarantee that if $o$ executes
                 correctly on s, then $o$ will execute correctly on
                 every ${s'}_i$. Our checker therefore does not need to
                 check $o$ on any ${s'}_i$ once it checks $o$ on s. It
                 thus safely prunes those state transitions from its
                 search space, while still achieving complete test
                 coverage within the bounded domain. Our preliminary
                 results show orders of magnitude improvement over
                 previous approaches. We believe our techniques can make
                 model checking significantly faster, and thus enable
                 checking of much larger programs and complex program
                 properties than currently possible.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "program analysis; software model checking",
}

@Article{Kit:2006:IRCa,
  author =       "Lo Kwun Kit and Chan Kwun Man and Elisa Baniassad",
  title =        "Isolating and relating concerns in requirements using
                 latent semantic analysis",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "383--396",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167506",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Aspect-oriented requirements analysis involves the
                 identification of concerns that behaviorally influence
                 other concerns. Such concerns are described in
                 requirements called emphaspectual requirements:
                 requirements that detail the influence of one concern
                 over another. The current state of the art for
                 aspect-oriented requirements analysis is Theme/Doc,
                 which allows lexical analysis of requirements based on
                 a set of developer-chosen keywords. It provides a
                 graphical depiction of how concerns relate to
                 requirements, and affords identification of potential
                 aspectual requirements. In addition, clusters of
                 requirements and concerns are identified to arrive at a
                 more useful set of concerns than those initially
                 identified. Because of the lexical nature of the
                 Theme/Doc approach, aspectual requirements are missed,
                 or wrongly identified. Additionally, requirements may
                 be wrongly clustered if they contain ambiguous terms.
                 In this work we explored whether the use of a
                 statistical approach for textual analysis, Latent
                 Semantic Analysis (LSA), would improve upon the lexical
                 approach used by Theme/Doc. We found that LSA helps
                 identify useful concern clusters, and helps reduce the
                 number of falsely identified aspectual requirements.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented requirements analysis; early aspects;
                 latent semantic analysis; theme/doc; visualisation",
}

@Article{Baxter:2006:USJa,
  author =       "Gareth Baxter and Marcus Frean and James Noble and
                 Mark Rickerby and Hayden Smith and Matt Visser and
                 Hayden Melton and Ewan Tempero",
  title =        "Understanding the shape of {Java} software",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "397--412",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167507",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Large amounts of Java software have been written since
                 the language's escape into unsuspecting software
                 ecology more than ten years ago. Surprisingly little is
                 known about the structure of Java programs in the wild:
                 about the way methods are grouped into classes and then
                 into packages, the way packages relate to each other,
                 or the way inheritance and composition are used to put
                 these programs together. We present the results of the
                 first in-depth study of the structure of Java programs.
                 We have collected a number of Java programs and
                 measured their key structural attributes. We have found
                 evidence that some relationships follow power-laws,
                 while others do not. We have also observed variations
                 that seem related to some characteristic of the
                 application itself. This study provides important
                 information for researchers who can investigate how and
                 why the structural relationships we find may have
                 originated, what they portend, and how they can be
                 managed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Java; object-oriented design; power-law
                 distributions",
}

@Article{Sahavechaphan:2006:XMSa,
  author =       "Naiyana Sahavechaphan and Kajal Claypool",
  title =        "{XSnippet}: mining {For} sample code",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "413--430",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167508",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It is common practice for software developers to use
                 examples to guide development efforts. This largely
                 unwritten, yet standard, practice of 'develop by
                 example' is often supported by examples bundled with
                 library or framework packages, provided in textbooks,
                 and made available for download on both official and
                 unofficial web sites. However, the vast number of
                 examples that are embedded in the billions of lines of
                 already developed library and framework code are
                 largely untapped. We have developed XSnippet, a
                 context-sensitive code assistant framework that allows
                 developers to query a sample repository for code
                 snippets that are relevant to the programming task at
                 hand. In particular, our work makes three primary
                 contributions. First, a range of queries is provided to
                 allow developers to switch between a
                 context-independent retrieval of code snippets to
                 various degrees of context-sensitive retrieval for
                 object instantiation queries. Second, a novel
                 graph-based code mining algorithm is provided to
                 support the range of queries and enable mining within
                 and across method boundaries. Third, an innovative
                 context-sensitive ranking heuristic is provided that
                 has been experimentally proven to provide better
                 ranking for best-fit code snippets than
                 context-independent heuristics such as shortest path
                 and frequency. Our experimental evaluation has shown
                 that XSnippet has significant potential to assist
                 developers, and provides better coverage of tasks and
                 better rankings for best-fit snippets than other code
                 assistant systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code assistants; code mining; code reuse; ranking code
                 samples",
}

@Article{Gabriel:2006:CSa,
  author =       "Richard P. Gabriel and Ron Goldman",
  title =        "Conscientious software",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "433--450",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167473.1167510",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software needs to grow up and become responsible for
                 itself and its own future by participating in its own
                 installation and customization, maintaining its own
                 health, and adapting itself to new circumstances, new
                 users, and new uses. To create such software will
                 require us to change some of our underlying assumptions
                 about how we write programs. A promising approach seems
                 to be to separate software that does the work
                 (allopoietic)from software that keeps the system alive
                 (autopoietic).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "autopoiesis; continuous (re)design; emergence;
                 feedback; repair; robustness; self-sustaining systems;
                 self-testing; software; software complexity;
                 stigmergy",
}

@Article{Simonyi:2006:ISa,
  author =       "Charles Simonyi and Magnus Christerson and Shane
                 Clifford",
  title =        "Intentional software",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "451--464",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167511",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Wysiwyg editors simplified document creation by
                 separating the document contents from the looks and by
                 automating the re-application of the looks to changing
                 contents. In the same way Intentional Software
                 simplifies software creation by separating the software
                 contents in terms of their various domains from the
                 implementation of the software and by enabling
                 automatic re-generation of the software as the contents
                 change. This way, domain experts can work in parallel
                 with programmers in their respective areas of
                 expertise; and the repeated intermingling can be
                 automated. Intentional Software is supported by a
                 Domain Workbench tool where multiple domains can be
                 defined, created, edited, transformed and integrated
                 during software creation. Key features include a
                 uniform representation of multiple interrelated
                 domains, the ability to project the domains in multiple
                 editable notations, and simple access for a program
                 generator.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "generative programming; intentional software",
}

@Article{Waldo:2006:SDa,
  author =       "Jim Waldo",
  title =        "On system design",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "467--480",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167513",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this essay, I consider some of the factors that are
                 making it more and more difficult to expend the effort
                 necessary to do system design. Because of changes in
                 the economics of the field in both industry and
                 research, we have become less able to take the time
                 needed to do real system design, and to train the next
                 generation of designers. Because of the intellectual
                 property landscape, we are less able to discuss system
                 design. The end result is that we do less good system
                 design than we used to, at least in those environments
                 where system design used to be most common. But there
                 are reasons to be optimistic about the future of system
                 design, which appears to be happening in
                 non-traditional ways and in non-traditional venues.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "education; system design; training",
}

@Article{Steimann:2006:PSAa,
  author =       "Friedrich Steimann",
  title =        "The paradoxical success of aspect-oriented
                 programming",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "481--497",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167514",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Aspect-oriented programming is considered a promising
                 new technology. As object-oriented programming did
                 before, it is beginning to pervade all areas of
                 software engineering. With its growing popularity,
                 practitioners and academics alike are wondering whether
                 they should start looking into it, or otherwise risk
                 having missed an important development. The author of
                 this essay finds that much of aspect-oriented
                 programming's success seems to be based on the
                 conception that it improves both modularity and the
                 structure of code, while in fact, it works against the
                 primary purposes of the two, namely independent
                 development and understandability of programs. Not
                 seeing any way of fixing this situation, he thinks the
                 success of aspect-oriented programming to be
                 paradoxical.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented programming; globalization of
                 variables; independent development; modularization;
                 program structure; readability; software engineering",
}

@Article{Rosenblum:2006:IVC,
  author =       "Mendel Rosenblum",
  title =        "Impact of virtualization on computer architecture and
                 operating systems",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "1--1",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168858",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Abstract This talk describes how virtualization is
                 changing the way computing is done in the industry
                 today and how it is causing users to rethink how they
                 view hardware, operating systems, and application
                 programs. The talk will describe this new view on
                 computing and the benefits driving users to adopt it.
                 The changing roles for hardware and operating systems
                 will be discussed along with what changes will be
                 needed to efficiently and simply support this new
                 computing model. I will conclude with a discussion of
                 areas where industry could use input from the ASPLOS
                 research community.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Adams:2006:CSH,
  author =       "Keith Adams and Ole Agesen",
  title =        "A comparison of software and hardware techniques for
                 x86 virtualization",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "2--13",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168860",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Until recently, the x86 architecture has not permitted
                 classical trap-and-emulate virtualization. Virtual
                 Machine Monitors for x86, such as VMware {\reg}
                 Workstation and Virtual PC, have instead used binary
                 translation of the guest kernel code. However, both
                 Intel and AMD have now introduced architectural
                 extensions to support classical virtualization. We
                 compare an existing software VMM with a new VMM
                 designed for the emerging hardware support.
                 Surprisingly, the hardware VMM often suffers lower
                 performance than the pure software VMM. To determine
                 why, we study architecture-level events such as page
                 table updates, context switches and I/O, and find their
                 costs vastly different among native, software VMM and
                 hardware VMM execution. We find that the hardware
                 support fails to provide an unambiguous performance
                 advantage for two primary reasons: first, it offers no
                 support for MMU virtualization; second, it fails to
                 co-exist with existing software techniques for MMU
                 virtualization. We look ahead to emerging techniques
                 for addressing this MMU virtualization problem in the
                 context of hardware-assisted virtualization.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic binary translation; MMU; nested paging; SVM;
                 TLB; virtual machine monitor; virtualization; VT; x86",
}

@Article{Jones:2006:GMB,
  author =       "Stephen T. Jones and Andrea C. Arpaci-Dusseau and
                 Remzi H. Arpaci-Dusseau",
  title =        "{Geiger}: monitoring the buffer cache in a virtual
                 machine environment",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "14--24",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168861",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Virtualization is increasingly being used to address
                 server management and administration issues like
                 flexible resource allocation, service isolation and
                 workload migration. In a virtualized environment, the
                 virtual machine monitor (VMM) is the primary resource
                 manager and is an attractive target for implementing
                 system features like scheduling, caching, and
                 monitoring. However, the lack of runtime information
                 within the VMM about guest operating systems, sometimes
                 called the semantic gap, is a significant obstacle to
                 efficiently implementing some kinds of services. In
                 this paper we explore techniques that can be used by a
                 VMM to passively infer useful information about a guest
                 operating system's unified buffer cache and virtual
                 memory system. We have created a prototype
                 implementation of these techniques inside the Xen VMM
                 called Geiger and show that it can accurately infer
                 when pages are inserted into and evicted from a
                 system's buffer cache. We explore several nuances
                 involved in passively implementing eviction detection
                 that have not previously been addressed, such as the
                 importance of tracking disk block liveness, the effect
                 of file system journaling, and the importance of
                 accounting for the unified caches found in modern
                 operating systems. Using case studies we show that the
                 information provided by Geiger enables a VMM to
                 implement useful VMM-level services. We implement a
                 novel working set size estimator which allows the VMM
                 to make more informed memory allocation decisions. We
                 also show that a VMM can be used to drastically improve
                 the hit rate in remote storage caches by using
                 eviction-based cache placement without modifying the
                 application or operating system storage interface. Both
                 case studies hint at a future where inference
                 techniques enable a broad new class of VMM-level
                 functionality.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "inference; virtual machine",
}

@Article{Crandall:2006:TSD,
  author =       "Jedidiah R. Crandall and Gary Wassermann and Daniela
                 A. S. de Oliveira and Zhendong Su and S. Felix Wu and
                 Frederic T. Chong",
  title =        "Temporal search: detecting hidden malware timebombs
                 with virtual machines",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "25--36",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168862",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Worms, viruses, and other malware can be ticking bombs
                 counting down to a specific time, when they might, for
                 example, delete files or download new instructions from
                 a public web server. We propose a novel
                 virtual-machine-based analysis technique to
                 automatically discover the timetable of a piece of
                 malware, or when events will be triggered, so that
                 other types of analysis can discern what those events
                 are. This information can be invaluable for responding
                 to rapid malware, and automating its discovery can
                 provide more accurate information with less delay than
                 careful human analysis. Developing an automated system
                 that produces the timetable of a piece of malware is a
                 challenging research problem. In this paper, we
                 describe our implementation of a key component of such
                 a system: the discovery of timers without making
                 assumptions about the integrity of the infected
                 system's kernel. Our technique runs a virtual machine
                 at slightly different rates of perceived time (time as
                 seen by the virtual machine), and identifies time
                 counters by correlating memory write frequency to timer
                 interrupt frequency. We also analyze real malware to
                 assess the feasibility of using full-system,
                 machine-level symbolic execution on these timers to
                 discover predicates. Because of the intricacies of the
                 Gregorian calendar (leap years, different number of
                 days in each month, etc.) these predicates will not be
                 direct expressions on the timer but instead an
                 annotated trace; so we formalize the calculation of a
                 timetable as a weakest precondition calculation. Our
                 analysis of six real worms sheds light on two
                 challenges for future work: 1) time-dependent malware
                 behavior often does not follow a linear timetable; and
                 2) that an attacker with knowledge of the analysis
                 technique can evade analysis. Our current results are
                 promising in that with simple symbolic execution we are
                 able to discover predicates on the day of the month for
                 four real worms. Then through more traditional manual
                 analysis we conclude that a more control-flow-sensitive
                 symbolic execution implementation would discover all
                 predicates for the malware we analyzed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "malware; virtual machines; worms",
}

@Article{Lu:2006:ADA,
  author =       "Shan Lu and Joseph Tucek and Feng Qin and Yuanyuan
                 Zhou",
  title =        "{AVIO}: detecting atomicity violations via access
                 interleaving invariants",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "37--48",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168864",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Concurrency bugs are among the most difficult to test
                 and diagnose of all software bugs. The multicore
                 technology trend worsens this problem. Most previous
                 concurrency bug detection work focuses on one bug
                 subclass, data races, and neglects many other important
                 ones such as atomicity violations, which will soon
                 become increasingly important due to the emerging trend
                 of transactional memory models. This paper proposes an
                 innovative, comprehensive, invariant-based approach
                 called AVIO to detect atomicity violations. Our idea is
                 based on a novel observation called access interleaving
                 invariant, which is a good indication of programmers'
                 assumptions about the atomicity of certain code
                 regions. By automatically extracting such invariants
                 and detecting violations of these invariants at run
                 time, AVIO can detect a variety of atomicity
                 violations. Based on this idea, we have designed and
                 built two implementations of AVIO and evaluated the
                 trade-offs between them. The first implementation,
                 AVIO-S, is purely in software, while the second,
                 AVIO-H, requires some simple extensions to the cache
                 coherence hardware. AVIO-S is cheaper and more accurate
                 but incurs much higher overhead and thus more run-time
                 perturbation than AVIOH. Therefore, AVIO-S is more
                 suitable for in-house bug detection and postmortem bug
                 diagnosis, while AVIO-H can be used for bug detection
                 during production runs. We evaluate both
                 implementations of AVIO using large realworld server
                 applications (Apache and MySQL) with six representative
                 real atomicity violation bugs, and SPLASH-2 benchmarks.
                 Our results show that AVIO detects more tested
                 atomicity violations of various types and has 25 times
                 fewer false positives than previous solutions on
                 average.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomicity violation; bug detection; concurrency bug;
                 concurrent program; hardware support; program
                 invariant",
}

@Article{Xu:2006:RTR,
  author =       "Min Xu and Mark D. Hill and Rastislav Bodik",
  title =        "A regulated transitive reduction {(RTR)} for longer
                 memory race recording",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "49--60",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168919.1168865",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multithreaded deterministic replay has important
                 applications in cyclic debugging, fault tolerance and
                 intrusion analysis. Memory race recording is a key
                 technology for multithreaded deterministic replay. In
                 this paper, we considerably improve our previous
                 always-on Flight Data Recorder (FDR) in four ways:\par
                 \begin{itemize} \item Longer recording by reducing the
                 log size growth rate to approximately one byte per
                 thousand dynamic instructions. \item Lower hardware
                 cost by reducing the cost to 24 KB per processor core.
                 \item Simpler design by modifying only the cache
                 coherence protocol, but not the cache. \item Broader
                 applicability by supporting both Sequential Consistency
                 (SC) and Total Store Order (TSO) memory consistency
                 models (existing recorders support only SC).
                 \end{itemize} These improvements stem from several
                 ideas: (1) a Regulated Transitive Reduction (RTR)
                 recording algorithm that creates stricter and
                 vectorizable dependencies to reduce the log growth
                 rate; (2) a Set/LRU timestamp approximation method that
                 better approximates timestamps of uncached memory
                 locations to reduce the hardware cost; (3) an
                 order-value-hybrid recording method that explicitly
                 logs the value of potential SC-violating load
                 instructions to support multiprocessor systems with
                 TSO.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "determinism; multithreading; race recording",
}

@Article{Bond:2006:BBE,
  author =       "Michael D. Bond and Kathryn S. McKinley",
  title =        "{Bell}: bit-encoding online memory leak detection",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "61--72",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168866",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Memory leaks compromise availability and security by
                 crippling performance and crashing programs. Leaks are
                 difficult to diagnose because they have no immediate
                 symptoms. Online leak detection tools benefit from
                 storing and reporting per-object sites (e.g.,
                 allocation sites) for potentially leaking objects. In
                 programs with many small objects, per-object sites add
                 high space overhead, limiting their use in production
                 environments. This paper introduces Bit-Encoding Leak
                 Location (Bell), a statistical approach that encodes
                 per-object sites to a single bit per object. A bit
                 loses information about a site, but given sufficient
                 objects that use the site and a known, finite set of
                 possible sites, Bell uses brute-force decoding to
                 recover the site with high accuracy. We use this
                 approach to encode object allocation and last-use sites
                 in Sleigh, a new leak detection tool. Sleigh detects
                 stale objects (objects unused for a long time) and uses
                 Bell decoding to report their allocation and last-use
                 sites. Our implementation steals four unused bits in
                 the object header and thus incurs no per-object space
                 overhead. Sleigh's instrumentation adds 29\% execution
                 time overhead, which adaptive profiling reduces to
                 11\%. Sleigh's output is directly useful for finding
                 and fixing leaks in SPEC JBB2000 and Eclipse, although
                 sufficiently many objects must leak before Bell
                 decoding can report sites with confidence. Bell is
                 suitable for other leak detection approaches that store
                 per-object sites, and for other problems amenable to
                 statistical per-object metadata.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "low-overhead monitoring; managed languages; memory
                 leaks; probabilistic approaches",
}

@Article{Shyam:2006:ULC,
  author =       "Smitha Shyam and Kypros Constantinides and Sujay
                 Phadke and Valeria Bertacco and Todd Austin",
  title =        "Ultra low-cost defect protection for microprocessor
                 pipelines",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "73--82",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168868",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The sustained push toward smaller and smaller
                 technology sizes has reached a point where device
                 reliability has moved to the forefront of concerns for
                 next-generation designs. Silicon failure mechanisms,
                 such as transistor wearout and manufacturing defects,
                 are a growing challenge that threatens the yield and
                 product lifetime of future systems. In this paper we
                 introduce the BulletProof pipeline, the first ultra
                 low-cost mechanism to protect a microprocessor pipeline
                 and on-chip memory system from silicon defects. To
                 achieve this goal we combine area-frugal on-line
                 testing techniques and system-level checkpointing to
                 provide the same guarantees of reliability found in
                 traditional solutions, but at much lower cost. Our
                 approach utilizes a microarchitectural checkpointing
                 mechanism which creates coarse-grained epochs of
                 execution, during which distributed on-line built in
                 self-test (BIST) mechanisms validate the integrity of
                 the underlying hardware. In case a failure is detected,
                 we rely on the natural redundancy of instruction-level
                 parallel processors to repair the system so that it can
                 still operate in a degraded performance mode. Using
                 detailed circuit-level and architectural simulation, we
                 find that our approach provides very high coverage of
                 silicon defects (89\%) with little area cost (5.8\%).
                 In addition, when a defect occurs, the subsequent
                 degraded mode of operation was found to have only
                 moderate performance impacts, (from 4\% to 18\%
                 slowdown).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "defect-protection; low-cost; pipelines; reliability",
}

@Article{Reddy:2006:UPB,
  author =       "Vimal K. Reddy and Eric Rotenberg and Sailashri
                 Parthasarathy",
  title =        "Understanding prediction-based partial redundant
                 threading for low-overhead, high- coverage fault
                 tolerance",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "83--94",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168917.1168869",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Redundant threading architectures duplicate all
                 instructions to detect and possibly recover from
                 transient faults. Several lighter weight Partial
                 Redundant Threading (PRT) architectures have been
                 proposed recently. (i) Opportunistic Fault Tolerance
                 duplicates instructions only during periods of poor
                 single-thread performance. (ii) ReStore does not
                 explicitly duplicate instructions and instead exploits
                 mispredictions among highly confident branch
                 predictions as symptoms of faults. (iii) Slipstream
                 creates a reduced alternate thread by replacing many
                 instructions with highly confident predictions. We
                 explore PRT as a possible direction for achieving the
                 fault tolerance of full duplication with the
                 performance of single-thread execution. Opportunistic
                 and ReStore yield partial coverage since they are
                 restricted to using only partial duplication or only
                 confident predictions, respectively. Previous analysis
                 of Slipstream fault tolerance was cursory and concluded
                 that only duplicated instructions are covered. In this
                 paper, we attempt to better understand Slipstream's
                 fault tolerance, conjecturing that the mixture of
                 partial duplication and confident predictions actually
                 closely approximates the coverage of full duplication.
                 A thorough dissection of prediction scenarios confirms
                 that faults in nearly 100\% of instructions are
                 detectable. Fewer than 0.1\% of faulty instructions are
                 not detectable due to coincident faults and
                 mispredictions. Next we show that the current recovery
                 implementation fails to leverage excellent detection
                 capability, since recovery sometimes initiates
                 belatedly, after already retiring a detected faulty
                 instruction. We propose and evaluate a suite of simple
                 microarchitectural alterations to recovery and
                 checking. Using the best alterations, Slipstream can
                 recover from faults in 99\% of instructions, compared
                 to only 78\% of instructions without alterations. Both
                 results are much higher than predicted by past
                 research, which claims coverage for only duplicated
                 instructions, or 65\% of instructions. On an 8-issue
                 SMT processor, Slipstream performs within 1.3\% of
                 single-thread execution whereas full duplication slows
                 performance by 14\%. A key byproduct of this paper is a
                 novel analysis framework in which every dynamic
                 instruction is considered to be hypothetically faulty,
                 thus not requiring explicit fault injection. Fault
                 coverage is measured in terms of the fraction of
                 candidate faulty instructions that are directly or
                 indirectly detectable before.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "branch prediction; chip multiprocessor (CMP);
                 redundant multithreading; simultaneous multithreading
                 (SMT); slipstream processor; time redundancy; transient
                 faults; value prediction",
}

@Article{Parashar:2006:SSB,
  author =       "Angshuman Parashar and Anand Sivasubramaniam and
                 Sudhanva Gurumurthi",
  title =        "{SlicK}: slice-based locality exploitation for
                 efficient redundant multithreading",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "95--105",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168870",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transient faults are expected a be a major design
                 consideration in future microprocessors. Recent
                 proposals for transient fault detection in processor
                 cores have revolved around the idea of redundant
                 threading, which involves redundant execution of a
                 program across multiple execution contexts. This paper
                 presents a new approach to redundant threading by
                 bringing together the concepts of slice-level execution
                 and value and control-flow locality into a novel
                 partial redundant threading mechanism called SlicK .The
                 purpose of redundant execution is to check the
                 integrity of the outputs propagating out of the core
                 (typically through stores). SlicK implements redundancy
                 at the granularity of backward-slices of these output
                 instructions and exploits value and control-flow
                 locality to avoid redundantly executing slices that
                 lead to predictable outputs, thereby avoiding redundant
                 execution of a significant fraction of instructions
                 while maintaining extremely low vulnerabilities for
                 critical processor structures. We propose the
                 microarchitecture of a backward-slice extractor called
                 SliceEM that is able to identify backward slices
                 without interrupting the instruction flow, and show how
                 this extractor and a set of predictors can be
                 integrated into a redundant threading mechanism to form
                 SlicK. Detailed simulations with SPEC CPU2000
                 benchmarks show that SlicK can provide around 10.2\%
                 performance improvement over a well known redundant
                 threading mechanism, buying back over 50\% of the loss
                 suffered due to redundant execution. SlicK can keep the
                 Architectural Vulnerability Factors of processor
                 structures to typically 0\%-2\%. More importantly,
                 SlicK's slice-based mechanisms provide future
                 opportunities for exploring interesting points in the
                 performance-reliability design space based on market
                 segment needs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "backward slice extraction; microarchitecture;
                 redundant threading; transient faults",
}

@Article{Heath:2006:MFT,
  author =       "Taliver Heath and Ana Paula Centeno and Pradeep George
                 and Luiz Ramos and Yogesh Jaluria",
  title =        "{Mercury} and {Freon}: temperature emulation and
                 management for server systems",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "106--116",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168872",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Power densities have been increasing rapidly at all
                 levels of server systems. To counter the high
                 temperatures resulting from these densities, systems
                 researchers have recently started work on
                 software-based thermal management. Unfortunately,
                 research in this new area has been hindered by the
                 limitations imposed by simulators and real
                 measurements. In this paper, we introduce Mercury, a
                 software suite that avoids these limitations by
                 accurately emulating temperatures based on simple
                 layout, hardware, and component utilization data. Most
                 importantly, Mercury runs the entire software stack
                 natively, enables repeatable experiments, and allows
                 the study of thermal emergencies without harming
                 hardware reliability. We validate Mercury using real
                 measurements and a widely used commercial simulator. We
                 use Mercury to develop Freon, a system that manages
                 thermal emergencies in a server cluster without
                 unnecessary performance degradation. Mercury will soon
                 become available from
                 \url{http://www.darklab.rutgers.edu}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "energy conservation; server clusters; temperature
                 modeling; thermal management",
}

@Article{Kgil:2006:PUS,
  author =       "Taeho Kgil and Shaun D'Souza and Ali Saidi and Nathan
                 Binkert and Ronald Dreslinski and Trevor Mudge and
                 Steven Reinhardt and Krisztian Flautner",
  title =        "{PicoServer}: using {$3$D} stacking technology to
                 enable a compact energy efficient chip multiprocessor",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "117--128",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168873",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, we show how 3D stacking technology can
                 be used to implement a simple, low-power,
                 high-performance chip multiprocessor suitable for
                 throughput processing. Our proposed architecture,
                 PicoServer, employs 3D technology to bond one die
                 containing several simple slow processing cores to
                 multiple DRAM dies sufficient for a primary memory. The
                 3D technology also enables wide low-latency buses
                 between processors and memory. These remove the need
                 for an L2 cache allowing its area to be re-allocated to
                 additional simple cores. The additional cores allow the
                 clock frequency to be lowered without impairing
                 throughput. Lower clock frequency in turn reduces power
                 and means that thermal constraints, a concern with 3D
                 stacking, are easily satisfied. The PicoServer
                 architecture specifically targets Tier 1 server
                 applications, which exhibit a high degree of thread
                 level parallelism. An architecture targeted to
                 efficient throughput is ideal for this application
                 domain. We find for a similar logic die area, a 12 CPU
                 system with 3D stacking and no L2 cache outperforms an
                 8 CPU system with a large on-chip L2 cache by about
                 14\% while consuming 55\% less power. In addition, we
                 show that a PicoServer performs comparably to a Pentium
                 4-like class machine while consuming only about 1/10 of
                 the power, even when conservative assumptions are made
                 about the power consumption of the PicoServer.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "3D stacking technology; chip multiprocessor;
                 full-system simulation; low power; tier 1 server;
                 web/file/streaming server",
}

@Article{Coons:2006:SPS,
  author =       "Katherine E. Coons and Xia Chen and Doug Burger and
                 Kathryn S. McKinley and Sundeep K. Kushwaha",
  title =        "A spatial path scheduling algorithm for {EDGE}
                 architectures",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "129--140",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168875",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Growing on-chip wire delays are motivating
                 architectural features that expose on-chip
                 communication to the compiler. EDGE architectures are
                 one example of communication-exposed microarchitectures
                 in which the compiler forms dataflow graphs that
                 specify how the microarchitecture maps instructions
                 onto a distributed execution substrate. This paper
                 describes a compiler scheduling algorithm called
                 spatial path scheduling that factors in previously
                 fixed locations --- called anchor points --- for each
                 placement. This algorithm extends easily to different
                 spatial topologies. We augment this basic algorithm
                 with three heuristics: (1) local and global ALU and
                 network link contention modeling, (2) global critical
                 path estimates, and (3) dependence chain path
                 reservation. We use simulated annealing to explore
                 possible performance improvements and to motivate the
                 augmented heuristics and their weighting functions. We
                 show that the spatial path scheduling algorithm
                 augmented with these three heuristics achieves a 21\%
                 average performance improvement over the best prior
                 algorithm and comes within an average of 5\% of the
                 annealed performance for our benchmarks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "EDGE architecture; instruction scheduling; path
                 scheduling; simulated annealing",
}

@Article{Mercaldi:2006:IST,
  author =       "Martha Mercaldi and Steven Swanson and Andrew Petersen
                 and Andrew Putnam and Andrew Schwerin and Mark Oskin
                 and Susan J. Eggers",
  title =        "Instruction scheduling for a tiled dataflow
                 architecture",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "141--150",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168876",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper explores hierarchical instruction
                 scheduling for a tiled processor. Our results show that
                 at the top level of the hierarchy, a simple
                 profile-driven algorithm effectively minimizes operand
                 latency. After this schedule has been partitioned into
                 large sections, the bottom-level algorithm must more
                 carefully analyze program structure when producing the
                 final schedule. Our analysis reveals that at this
                 bottom level, good scheduling depends upon carefully
                 balancing instruction contention for processing
                 elements and operand latency between producer and
                 consumer instructions. We develop a parameterizable
                 instruction scheduler that more effectively optimizes
                 this trade-off. We use this scheduler to determine the
                 contention-latency sweet spot that generates the best
                 instruction schedule for each application. To avoid
                 this application-specific tuning, we also determine the
                 parameters that produce the best performance across all
                 applications. The result is a contention-latency
                 setting that generates instruction schedules for all
                 applications in our workload that come within 17\% of
                 the best schedule for each.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dataflow; instruction scheduling; tiled
                 architectures",
}

@Article{Gordon:2006:ECG,
  author =       "Michael I. Gordon and William Thies and Saman
                 Amarasinghe",
  title =        "Exploiting coarse-grained task, data, and pipeline
                 parallelism in stream programs",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "151--162",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168877",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As multicore architectures enter the mainstream, there
                 is a pressing demand for high-level programming models
                 that can effectively map to them. Stream programming
                 offers an attractive way to expose coarse-grained
                 parallelism, as streaming applications (image, video,
                 DSP, etc.) are naturally represented by independent
                 filters that communicate over explicit data channels.
                 In this paper, we demonstrate an end-to-end stream
                 compiler that attains robust multicore performance in
                 the face of varying application characteristics. As
                 benchmarks exhibit different amounts of task, data, and
                 pipeline parallelism, we exploit all types of
                 parallelism in a unified manner in order to achieve
                 this generality. Our compiler, which maps from the
                 StreamIt language to the 16-core Raw architecture,
                 attains a 11.2x mean speedup over a single-core
                 baseline, and a 1.84x speedup over our previous work.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "coarse-grained dataflow; multicore; Raw; software
                 pipelining; StreamIt; streams",
}

@Article{Mishra:2006:TES,
  author =       "Mahim Mishra and Timothy J. Callahan and Tiberiu
                 Chelcea and Girish Venkataramani and Seth C. Goldstein
                 and Mihai Budiu",
  title =        "{Tartan}: evaluating spatial computation for whole
                 program execution",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "163--174",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168878",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Spatial Computing (SC) has been shown to be an
                 energy-efficient model for implementing program
                 kernels. In this paper we explore the feasibility of
                 using SC for more than small kernels. To this end, we
                 evaluate the performance and energy efficiency of
                 entire applications on Tartan, a general-purpose
                 architecture which integrates a reconfigurable fabric
                 (RF) with a superscalar core. Our compiler
                 automatically partitions and compiles an application
                 into an instruction stream for the core and a
                 configuration for the RF. We use a detailed simulator
                 to capture both timing and energy numbers for all parts
                 of the system. Our results indicate that a hierarchical
                 RF architecture, designed around a scalable
                 interconnect, is instrumental in harnessing the
                 benefits of spatial computation. The interconnect uses
                 static configuration and routing at the lower levels
                 and a packet-switched, dynamically-routed network at
                 the top level. Tartan is most energy efficient when
                 almost all of the application is mapped to the RF,
                 indicating the need for the RF to support most
                 general-purpose programming constructs. Our initial
                 investigation reveals that such a system can provide,
                 on average, an order of magnitude improvement in
                 energy-delay compared to an aggressive superscalar core
                 on single-threaded workloads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "asynchronous circuits; dataflow machine; defect
                 tolerance; low power; reconfigurable hardware; spatial
                 computation",
}

@Article{Eyerman:2006:PCA,
  author =       "Stijn Eyerman and Lieven Eeckhout and Tejas Karkhanis
                 and James E. Smith",
  title =        "A performance counter architecture for computing
                 accurate {CPI} components",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "175--184",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168917.1168880",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A common way of representing processor performance is
                 to use Cycles per Instruction (CPI) `stacks' which
                 break performance into a baseline CPI plus a number of
                 individual miss event CPI components. CPI stacks can be
                 very helpful in gaining insight into the behavior of an
                 application on a given microprocessor; consequently,
                 they are widely used by software application developers
                 and computer architects. However, computing CPI stacks
                 on superscalar out-of-order processors is challenging
                 because of various overlaps among execution and miss
                 events (cache misses, TLB misses, and branch
                 mispredictions). This paper shows that meaningful and
                 accurate CPI stacks can be computed for superscalar
                 out-of-order processors. Using interval analysis, a
                 novel method for analyzing out-of-order processor
                 performance, we gain understanding into the performance
                 impact of the various miss events. Based on this
                 understanding, we propose a novel way of architecting
                 hardware performance counters for building accurate CPI
                 stacks. The additional hardware for implementing these
                 counters is limited and comparable to existing hardware
                 performance counter architectures while being
                 significantly more accurate than previous approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hardware performance counter architecture; superscalar
                 processor performance modeling",
}

@Article{Lee:2006:AER,
  author =       "Benjamin C. Lee and David M. Brooks",
  title =        "Accurate and efficient regression modeling for
                 microarchitectural performance and power prediction",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "185--194",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168881",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose regression modeling as an efficient
                 approach for accurately predicting performance and
                 power for various applications executing on any
                 microprocessor configuration in a large
                 microarchitectural design space. This paper addresses
                 fundamental challenges in microarchitectural simulation
                 cost by reducing the number of required simulations and
                 using simulated results more effectively via
                 statistical modeling and inference. Specifically, we
                 derive and validate regression models for performance
                 and power. Such models enable computationally efficient
                 statistical inference, requiring the simulation of only
                 1 in 5 million points of a joint
                 microarchitecture-application design space while
                 achieving median error rates as low as 4.1 percent for
                 performance and 4.3 percent for power. Although both
                 models achieve similar accuracy, the sources of
                 accuracy are strikingly different. We present
                 optimizations for a baseline regression model to obtain
                 (1) application-specific models to maximize accuracy in
                 performance prediction and (2) regional power models
                 leveraging only the most relevant samples from the
                 microarchitectural design space to maximize accuracy in
                 power prediction. Assessing sensitivity to the number
                 of samples simulated for model formulation, we find
                 fewer than 4,000 samples from a design space of
                 approximately 22 billion points are sufficient.
                 Collectively, our results suggest significant potential
                 in accurate and efficient statistical inference for
                 microarchitectural design space exploration via
                 regression models.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "inference; microarchitecture; regression; simulation;
                 statistics",
}

@Article{Ipek:2006:EEA,
  author =       "Engin {\"I}pek and Sally A. McKee and Rich Caruana and
                 Bronis R. de Supinski and Martin Schulz",
  title =        "Efficiently exploring architectural design spaces via
                 predictive modeling",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "195--206",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168917.1168882",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Architects use cycle-by-cycle simulation to evaluate
                 design choices and understand tradeoffs and
                 interactions among design parameters. Efficiently
                 exploring exponential-size design spaces with many
                 interacting parameters remains an open problem: the
                 sheer number of experiments renders detailed simulation
                 intractable. We attack this problem via an automated
                 approach that builds accurate, confident predictive
                 design-space models. We simulate sampled points, using
                 the results to teach our models the function describing
                 relationships among design parameters. The models
                 produce highly accurate performance estimates for other
                 points in the space, can be queried to predict
                 performance impacts of architectural changes, and are
                 very fast compared to simulation, enabling efficient
                 discovery of tradeoffs among parameters in different
                 regions. We validate our approach via sensitivity
                 studies on memory hierarchy and CPU design spaces: our
                 models generally predict IPC with only 1-2\% error and
                 reduce required simulation by two orders of magnitude.
                 We also show the efficacy of our technique for
                 exploring chip multiprocessor (CMP) design spaces: when
                 trained on a 1\% sample drawn from a CMP design space
                 with 250K points and up to 55x performance swings among
                 different system configurations, our models predict
                 performance with only 4-5\% error on average. Our
                 approach combines with techniques to reduce time per
                 simulation, achieving net time savings of three-four
                 orders of magnitude.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "artificial neural networks; design space exploration;
                 performance prediction; sensitivity studies",
}

@Article{Kharbutli:2006:CEP,
  author =       "Mazen Kharbutli and Xiaowei Jiang and Yan Solihin and
                 Guru Venkataramani and Milos Prvulovic",
  title =        "Comprehensively and efficiently protecting the heap",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "207--218",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168884",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The goal of this paper is to propose a scheme that
                 provides comprehensive security protection for the
                 heap. Heap vulnerabilities are increasingly being
                 exploited for attacks on computer programs. In most
                 implementations, the heap management library keeps the
                 heap meta-data (heap structure information) and the
                 application's heap data in an interleaved fashion and
                 does not protect them against each other. Such
                 implementations are inherently unsafe: vulnerabilities
                 in the application can cause the heap library to
                 perform unintended actions to achieve control-flow and
                 non-control attacks. Unfortunately, current heap
                 protection techniques are limited in that they use too
                 many assumptions on how the attacks will be performed,
                 require new hardware support, or require too many
                 changes to the software developers' toolchain. We
                 propose Heap Server, a new solution that does not have
                 such drawbacks. Through existing virtual memory and
                 inter-process protection mechanisms, Heap Server
                 prevents the heap meta-data from being illegally
                 overwritten, and heap data from being meaningfully
                 overwritten. We show that through aggressive
                 optimizations and parallelism, Heap Server protects the
                 heap with nearly-negligible performance overheads even
                 on heap-intensive applications. We also verify the
                 protection against several real-world exploits and
                 attack kernels.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "computer security; heap attacks; heap security; heap
                 server",
}

@Article{Chilimbi:2006:HIH,
  author =       "Trishul M. Chilimbi and Vinod Ganapathy",
  title =        "{HeapMD}: identifying heap-based bugs using anomaly
                 detection",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "219--228",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168919.1168885",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present the design, implementation, and evaluation
                 of HeapMD, a dynamic analysis tool that finds
                 heap-based bugs using anomaly detection. HeapMD is
                 based upon the observation that, in spite of the
                 evolving nature of the heap, several of its properties
                 remain stable. HeapMD uses this observation in a novel
                 way: periodically, during the execution of the program,
                 it computes a suite of metrics which are sensitive to
                 the state of the heap. These metrics track heap
                 behavior, and the stability of the heap reflects
                 quantitatively in the values of these metrics. The
                 'normal' ranges of stable metrics, obtained by running
                 a program on multiple inputs, are then treated as
                 indicators of correct behaviour, and are used in
                 conjunction with an anomaly detector to find heap-based
                 bugs. Using HeapMD, we were able to find 40 heap-based
                 bugs, 31 of them previously unknown, in 5 large,
                 commercial applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "anomaly detection; bugs; debugging; heap; metrics",
}

@Article{Narayanasamy:2006:RSM,
  author =       "Satish Narayanasamy and Cristiano Pereira and Brad
                 Calder",
  title =        "Recording shared memory dependencies using strata",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "229--240",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168886",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Significant time is spent by companies trying to
                 reproduce and fix bugs. BugNet and FDR are recent
                 architecture proposals that provide architecture
                 support for deterministic replay debugging. They focus
                 on continuously recording information about the
                 program's execution, which can be communicated back to
                 the developer. Using that information, the developer
                 can deterministically replay the program's execution to
                 reproduce and fix the bugs. In this paper, we propose
                 using Strata to efficiently capture the shared memory
                 dependencies. A stratum creates a time layer across all
                 the logs for the running threads, which separates all
                 the memory operations executed before and after the
                 stratum. A strata log allows us to determine all the
                 shared memory dependencies during replay and thereby
                 supports deterministic replay debugging for
                 multi-threaded programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debugging; dependencies; logging; replay; shared
                 memory; strata",
}

@Article{Patwardhan:2006:DTS,
  author =       "Jaidev P. Patwardhan and Vijeta Johri and Chris Dwyer
                 and Alvin R. Lebeck",
  title =        "A defect tolerant self-organizing nanoscale {SIMD}
                 architecture",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "241--251",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168888",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The continual decrease in transistor size (through
                 either scaled CMOS or emerging nano-technologies)
                 promises to usher in an era of tera to peta-scale
                 integration. However, this decrease in size is also
                 likely to increase defect densities, contributing to
                 the exponentially increasing cost of top-down
                 lithography. Bottom-up manufacturing techniques, like
                 self assembly, may provide a viable lower-cost
                 alternative to top-down lithography, but may also be
                 prone to higher defects. Therefore, regardless of
                 fabrication methodology, defect tolerant architectures
                 are necessary to exploit the full potential of future
                 increased device densities. This paper explores a
                 defect tolerant SIMD architecture. A key feature of our
                 design is the ability of a large number of limited
                 capability nodes with high defect rates (up to 30\%) to
                 self-organize into a set of SIMD processing elements.
                 Despite node simplicity and high defect rates, we show
                 that by supporting the familiar data parallel
                 programming model the architecture can execute a
                 variety of programs. The architecture efficiently
                 exploits a large number of nodes and higher device
                 densities to keep device switching speeds and power
                 density low. On a medium sized system (~1cm$^2$ area),
                 the performance of the proposed architecture on our
                 data parallel programs matches or exceeds the
                 performance of an aggressively scaled out-of-order
                 processor (128-wide, 8k reorder buffer, perfect memory
                 system). For larger systems (>1cm$^2$), the proposed
                 architecture can match the performance of a chip
                 multiprocessor with 16 aggressively scaled out-of-order
                 cores.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bit-serial; data parallel; defect tolerance; DNA;
                 nanocomputing; self-organizing; SIMD",
}

@Article{Schuchman:2006:PTA,
  author =       "Ethan Schuchman and T. N. Vijaykumar",
  title =        "A program transformation and architecture support for
                 quantum uncomputation",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "252--263",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168889",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Quantum computing's power comes from new algorithms
                 that exploit quantum mechanical phenomena for
                 computation. Quantum algorithms are different from
                 their classical counterparts in that quantum algorithms
                 rely on algorithmic structures that are simply not
                 present in classical computing. Just as classical
                 program transformations and architectures have been
                 designed for common classical algorithm structures,
                 quantum program transformations and quantum
                 architectures should be designed with quantum
                 algorithms in mind. Because quantum algorithms come
                 with these new algorithmic structures, resultant
                 quantum program transformations and architectures may
                 look very different from their classical counterparts.
                 This paper focuses on uncomputation, a critical and
                 prevalent structure in quantum algorithms, and
                 considers how program transformations, and architecture
                 support should be designed to accommodate
                 uncomputation. In this paper,we show a simple quantum
                 program transformation that exposes independence
                 between uncomputation and later computation. We then
                 propose a multicore architecture tailored to this
                 exposed parallelism and propose a scheduling policy
                 that efficiently maps such parallelism to the multicore
                 architecture. Our policy achieves parallelism between
                 uncomputation and later computation while reducing
                 cumulative communication distance. Our scheduling and
                 architecture allows significant speedup of quantum
                 programs (between 1.8x and 2.8x speedup in Shor's
                 factoring algorithm), while reducing cumulative
                 communication distance 26\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "QLA; quantum computing; uncomputation",
}

@Article{Mysore:2006:IC,
  author =       "Shashidhar Mysore and Banit Agrawal and Navin
                 Srivastava and Sheng-Chih Lin and Kaustav Banerjee and
                 Tim Sherwood",
  title =        "Introspective {$3$D} chips",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "264--273",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168917.1168890",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "While the number of transistors on a chip increases
                 exponentially over time, the productivity that can be
                 realized from these systems has not kept pace. To deal
                 with the complexity of modern systems, software
                 developers are increasingly dependent on specialized
                 development tools such as security profilers, memory
                 leak identifiers, data flight recorders, and dynamic
                 type analysis. Many of these tools require full-system
                 data which covers multiple interacting threads,
                 processes, and processors. Reducing the performance
                 penalty and complexity of these software tools is
                 critical to those developing next generation
                 applications, and many researchers have proposed adding
                 specialized hardware to assist in profiling and
                 introspection. Unfortunately, while this additional
                 hardware would be incredibly beneficial to developers,
                 the cost of this hardware must be paid on every single
                 die that is manufactured. In this paper, we argue that
                 a new way to attack this problem is with the addition
                 of specialized analysis hardware built on separate
                 active layers stacked vertically on the processor die
                 using 3D IC technology. This provides a modular
                 'snap-on' functionality that could be included with
                 developer systems, and omitted from consumer systems to
                 keep the cost impact to a minimum. In this paper we
                 describe the advantage of using inter-die vias for
                 introspection and we quantify the impact they can have
                 in terms of the area, power, temperature, and
                 routability of the resulting systems. We show that
                 hardware stubs could be inserted into commodity
                 processors at design time that would allow analysis
                 layers to be bonded to development chips, and that
                 these stubs would increase area and power by no more
                 than 0.021mm$^2$ and 0.9\% respectively.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "3D Architectures; hardware support for profiling;
                 introspection",
}

@Article{Cantin:2006:SP,
  author =       "Jason F. Cantin and Mikko H. Lipasti and James E.
                 Smith",
  title =        "Stealth prefetching",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "274--282",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168892",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Prefetching in shared-memory multiprocessor systems is
                 an increasingly difficult problem. As system designs
                 grow to incorporate larger numbers of faster
                 processors, memory latency and interconnect traffic
                 increase. While aggressive prefetching techniques can
                 mitigate the increasing memory latency, they can harm
                 performance by wasting precious interconnect bandwidth
                 and prematurely accessing shared data, causing state
                 downgrades at remote nodes that force later upgrades.
                 This paper investigates Stealth Prefetching, a new
                 technique that utilizes information from Coarse-Grain
                 Coherence Tracking (CGCT) for prefetching data
                 aggressively, stealthily, and efficiently in a
                 broadcast-based shared-memory multiprocessor system.
                 Stealth Prefetching utilizes CGCT to identify regions
                 of memory that are not shared by other processors,
                 aggressively fetches these lines from DRAM in open-page
                 mode, and moves them close to the processor in
                 anticipation of future references. Our analysis with
                 commercial, scientific, and multiprogrammed workloads
                 show that Stealth Prefetching provides an average
                 speedup of 20\% over an aggressive baseline system with
                 conventional prefetching.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "coherence; multiprocessors; prefetching",
}

@Article{Chakraborty:2006:CSE,
  author =       "Koushik Chakraborty and Philip M. Wells and Gurindar
                 S. Sohi",
  title =        "Computation spreading: employing hardware migration to
                 specialize {CMP} cores on-the-fly",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "283--292",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168919.1168893",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In canonical parallel processing, the operating system
                 (OS) assigns a processing core to a single thread from
                 a multithreaded server application. Since different
                 threads from the same application often carry out
                 similar computation, albeit at different times, we
                 observe extensive code reuse among different
                 processors, causing redundancy (e.g., in our server
                 workloads, 45-65\% of all instruction blocks are
                 accessed by all processors). Moreover, largely
                 independent fragments of computation compete for the
                 same private resources causing destructive
                 interference. Together, this redundancy and
                 interference lead to poor utilization of private
                 microarchitecture resources such as caches and branch
                 predictors. We present Computation Spreading (CSP),
                 which employs hardware migration to distribute a
                 thread's dissimilar fragments of computation across the
                 multiple processing cores of a chip multiprocessor
                 (CMP), while grouping similar computation fragments
                 from different threads together. This paper focuses on
                 a specific example of CSP for OS intensive server
                 applications: separating application level (user)
                 computation from the OS calls it makes. When performing
                 CSP, each core becomes temporally specialized to
                 execute certain computation fragments, and the same
                 core is repeatedly used for such fragments. We examine
                 two specific thread assignment policies for CSP, and
                 show that these policies, across four server workloads,
                 are able to reduce instruction misses in private L2
                 caches by 27-58\%, private L2 load misses by 0-19\%,
                 and branch mispredictions by 9-25\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cache locality; dynamic specialization",
}

@Article{Miller:2006:SBI,
  author =       "Jason E. Miller and Anant Agarwal",
  title =        "Software-based instruction caching for embedded
                 processors",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "293--302",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168894",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "While hardware instruction caches are present in
                 virtually all general-purpose and high-performance
                 microprocessors today, many embedded processors use
                 SRAM or scratchpad memories instead. These are simple
                 array memory structures that are directly addressed and
                 explicitly managed by software. Compared to hardware
                 caches of the same data capacity, they are smaller,
                 have shorter access times and consume less energy per
                 access. Access times are also easier to predict with
                 simple memories since there is no possibility of a
                 'miss.' On the other hand, they are more difficult for
                 the programmer to use since they are not automatically
                 managed. In this paper, we present a software system
                 that allows all or part of an SRAM or scratchpad memory
                 to be automatically managed as a cache. This system
                 provides the programming convenience of a cache for
                 processors that lack dedicated caching hardware. It has
                 been implemented for an actual processor and runs on
                 real hardware. Our results show that a software-based
                 instruction cache can be built that provides
                 performance within 10\% of a traditional hardware cache
                 on many benchmarks while using a cheaper, simpler, SRAM
                 memory. On these same benchmarks, energy consumption is
                 up to 3\% lower than it would be using a hardware
                 cache.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "chaining; instruction cache; software caching",
}

@Article{Li:2006:MEM,
  author =       "Xin Li and Marian Boldt and Reinhard von Hanxleden",
  title =        "Mapping {Esterel} onto a multi-threaded embedded
                 processor",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "303--314",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168857.1168896",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The synchronous language Esterel is well-suited for
                 programming control-dominated reactive systems at the
                 system level. It provides non-traditional control
                 structures, in particular concurrency and various forms
                 of preemption, which allow to concisely express
                 reactive behavior. As these control structures cannot
                 be mapped easily onto traditional, sequential
                 processors, an alternative approach that has emerged
                 recently makes use of special-purpose reactive
                 processors. However, the designs proposed so far have
                 limitations regarding completeness of the language
                 support, and did not really take advantage of
                 compile-time knowledge to optimize resource usage. This
                 paper presents a reactive processor, the Kiel Esterel
                 Processor 3a (KEP3a), and its compiler. The KEP3a
                 improves on earlier designs in several areas; most
                 notable are the support for exception handling and the
                 provision of context-dependent preemption handling
                 instructions. The KEP3a compiler presented here is to
                 our knowledge the first for multi-threaded reactive
                 processors. The translation of Esterel's preemption
                 constructs onto KEP3a assembler is straightforward;
                 however, a challenge is the correct and efficient
                 representation of Esterel's concurrency. The compiler
                 generates code that respects data and control
                 dependencies using the KEP3a priority-based scheduling
                 mechanism. We present a priority assignment approach
                 that makes use of a novel concurrent control flow graph
                 and has a complexity that in practice tends to be
                 linear in the size of the program. Unlike earlier
                 Esterel compilation schemes, this approach avoids
                 unnecessary context switches by considering each
                 thread's actual execution state at run time.
                 Furthermore, it avoids code replication present in
                 other approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; Esterel; low-power processing;
                 multi-threading; reactive systems",
}

@Article{Binkert:2006:INI,
  author =       "Nathan L. Binkert and Ali G. Saidi and Steven K.
                 Reinhardt",
  title =        "Integrated network interfaces for high-bandwidth
                 {TCP\slash IP}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "315--324",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168917.1168897",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper proposes new network interface controller
                 (NIC) designs that take advantage of integration with
                 the host CPU to provide increased flexibility for
                 operating system kernel-based performance optimization.
                 We believe that this approach is more likely to meet
                 the needs of current and future high-bandwidth TCP/IP
                 networking on end hosts than the current trend of
                 putting more complexity in the NIC, while avoiding the
                 need to modify applications and protocols. This paper
                 presents two such NICs. The first, the simple
                 integrated NIC (SINIC), is a minimally complex design
                 that moves the responsibility for managing the network
                 FIFOs from the NIC to the kernel. Despite this closer
                 interaction between the kernel and the NIC, SINIC
                 provides performance equivalent to a conventional
                 DMA-based NIC without increasing CPU overhead. The
                 second design, V-SINIC, adds virtual per-packet
                 registers to SINIC, enabling parallel packet processing
                 while maintaining a FIFO model. V-SINIC allows the
                 kernel to decouple examining a packet's header from
                 copying its payload to memory. We exploit this
                 capability to implement a true zero-copy receive
                 optimization in the Linux 2.6 kernel, providing
                 bandwidth improvements of over 50\% on unmodified
                 sockets-based receive-intensive benchmarks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "interfaces; network; TCP/IP performance; zero-copy",
}

@Article{Tarditi:2006:AUD,
  author =       "David Tarditi and Sidd Puri and Jose Oglesby",
  title =        "Accelerator: using data parallelism to program {GPUs}
                 for general-purpose uses",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "325--335",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168919.1168898",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "GPUs are difficult to program for general-purpose
                 uses. Programmers can either learn graphics APIs and
                 convert their applications to use graphics pipeline
                 operations or they can use stream programming
                 abstractions of GPUs. We describe Accelerator, a system
                 that uses data parallelism to program GPUs for
                 general-purpose uses instead. Programmers use a
                 conventional imperative programming language and a
                 library that provides only high-level data-parallel
                 operations. No aspects of GPUs are exposed to
                 programmers. The library implementation compiles the
                 data-parallel operations on the fly to optimized GPU
                 pixel shader code and API calls. We describe the
                 compilation techniques used to do this. We evaluate the
                 effectiveness of using data parallelism to program GPUs
                 by providing results for a set of compute-intensive
                 benchmarks. We compare the performance of Accelerator
                 versions of the benchmarks against hand-written pixel
                 shaders. The speeds of the Accelerator versions are
                 typically within 50\% of the speeds of hand-written
                 pixel shader code. Some benchmarks significantly
                 outperform C versions on a CPU: they are up to 18 times
                 faster than C code running on a CPU.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data parallelism; graphics processing units; just-in
                 time compilation",
}

@Article{Damron:2006:HTM,
  author =       "Peter Damron and Alexandra Fedorova and Yossi Lev and
                 Victor Luchangco and Mark Moir and Daniel Nussbaum",
  title =        "Hybrid transactional memory",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "336--346",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168900",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transactional memory (TM) promises to substantially
                 reduce the difficulty of writing correct, efficient,
                 and scalable concurrent programs. But 'bounded' and
                 'best-effort' hardware TM proposals impose unreasonable
                 constraints on programmers, while more flexible
                 software TM implementations are considered too slow.
                 Proposals for supporting 'unbounded' transactions in
                 hardware entail significantly higher complexity and
                 risk than best-effort designs. We introduce Hybrid
                 Transactional Memory (HyTM), an approach to
                 implementing TMin software so that it can use best
                 effort hardware TM (HTM) to boost performance but does
                 not depend on HTM. Thus programmers can develop and
                 test transactional programs in existing systems today,
                 and can enjoy the performance benefits of HTM support
                 when it becomes available. We describe our prototype
                 HyTM system, comprising a compiler and a library. The
                 compiler allows a transaction to be attempted using
                 best-effort HTM, and retried using the software library
                 if it fails. We have used our prototype to
                 'transactify' part of the Berkeley DB system, as well
                 as several benchmarks. By disabling the optional use of
                 HTM, we can run all of these tests on existing systems.
                 Furthermore, by using a simulated multiprocessor with
                 HTM support, we demonstrate the viability of the HyTM
                 approach: it can provide performance and scalability
                 approaching that of an unbounded HTM implementation,
                 without the need to support all transactions with
                 complicated HTM support.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "transactional memory",
}

@Article{Chuang:2006:UPB,
  author =       "Weihaw Chuang and Satish Narayanasamy and Ganesh
                 Venkatesh and Jack Sampson and Michael {Van Biesbrouck}
                 and Gilles Pokam and Brad Calder and Osvaldo Colavin",
  title =        "Unbounded page-based transactional memory",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "347--358",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168901",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Exploiting thread level parallelism is paramount in
                 the multicore era. Transactions enable programmers to
                 expose such parallelism by greatly simplifying the
                 multi-threaded programming model. Virtualized
                 transactions (unbounded in space and time) are
                 desirable, as they can increase the scope of
                 transactions' use, and thereby further simplify a
                 programmer's job. However, hardware support is
                 essential to support efficient execution of unbounded
                 transactions. In this paper, we introduce Page-based
                 Transactional Memory to support unbounded transactions.
                 We combine transaction bookkeeping with the virtual
                 memory system to support fast transaction conflict
                 detection, commit, abort, and to maintain transactions'
                 speculative data.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; parallel programming; transactional
                 memory; transactions; virtual memory",
}

@Article{Moravan:2006:SNT,
  author =       "Michelle J. Moravan and Jayaram Bobba and Kevin E.
                 Moore and Luke Yen and Mark D. Hill and Ben Liblit and
                 Michael M. Swift and David A. Wood",
  title =        "Supporting nested transactional memory in {logTM}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "359--370",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168902",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Nested transactional memory (TM) facilitates software
                 composition by letting one module invoke another
                 without either knowing whether the other uses
                 transactions. Closed nested transactions extend
                 isolation of an inner transaction until the toplevel
                 transaction commits. Implementations may flatten nested
                 transactions into the top-level one, resulting in a
                 complete abort on conflict, or allow partial abort of
                 inner transactions. Open nested transactions allow a
                 committing inner transaction to immediately release
                 isolation, which increases parallelism and
                 expressiveness at the cost of both software and
                 hardware complexity. This paper extends the
                 recently-proposed flat Log-based Transactional Memory
                 (LogTM) with nested transactions. Flat LogTM saves
                 pre-transaction values in a log, detects conflicts with
                 read (R) and write (W) bits per cache block, and, on
                 abort, invokes a software handler to unroll the log.
                 Nested LogTM supports nesting by segmenting the log
                 into a stack of activation records and modestly
                 replicating R/W bits. To facilitate composition with
                 nontransactional code, such as language runtime and
                 operating system services, we propose escape actions
                 that allow trusted code to run outside the confines of
                 the transactional memory system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "logTM; nesting; transactional memory",
}

@Article{Chung:2006:TTM,
  author =       "JaeWoong Chung and Chi Cao Minh and Austen McDonald
                 and Travis Skare and Hassan Chafi and Brian D.
                 Carlstrom and Christos Kozyrakis and Kunle Olukotun",
  title =        "Tradeoffs in transactional memory virtualization",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "371--381",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168903",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "For transactional memory (TM) to achieve widespread
                 acceptance, transactions should not be limited to the
                 physical resources of any specific hardware
                 implementation. TM systems should guarantee correct
                 execution even when transactions exceed scheduling
                 quanta, overflow the capacity of hardware caches and
                 physical memory, or include more independent nesting
                 levels than what is supported in hardware. Existing
                 proposals for TM virtualization are either incomplete
                 or rely on complex hardware implementations, which are
                 an overkill if virtualization is invoked infrequently
                 in the common case. We present eXtended Transactional
                 Memory (XTM), the first TM virtualization system that
                 virtualizes all aspects of transactional execution
                 (time, space, and nesting depth). XTM is implemented in
                 software using virtual memory support. It operates at
                 page granularity, using private copies of overflowed
                 pages to buffer memory updates until the transaction
                 commits and snapshots of pages to detect interference
                 between transactions. We also describe two enhancements
                 to XTM that use limited hardware support to address key
                 performance bottlenecks. We compare XTM to
                 hardware-based virtualization using both real
                 applications and synthetic microbenchmarks. We show
                 that despite being software-based, XTM and its
                 enhancements are competitive with hardware-based
                 alternatives. Overall, we demonstrate that XTM provides
                 a complete, flexible, and low-cost mechanism for
                 practical TM virtualization.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "chip multi-processor; OS support; transactional
                 memory; virtualization",
}

@Article{Kawahito:2006:NIR,
  author =       "Motohiro Kawahito and Hideaki Komatsu and Takao
                 Moriyama and Hiroshi Inoue and Toshio Nakatani",
  title =        "A new idiom recognition framework for exploiting
                 hardware-assist instructions",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "382--393",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168917.1168905",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Modern processors support hardware-assist instructions
                 (such as TRT and TROT instructions on IBM zSeries) to
                 accelerate certain functions such as delimiter search
                 and character conversion. Such special instructions
                 have often been used in high performance libraries, but
                 they have not been exploited well in optimizing
                 compilers except for some limited cases. We propose a
                 new idiom recognition technique derived from a
                 topological embedding algorithm [4] to detect idiom
                 patterns in the input program more aggressively than in
                 previous approaches. Our approach can detect a pattern
                 even if the code segment does not exactly match the
                 idiom. For example, we can detect a code segment that
                 includes additional code within the idiom pattern. We
                 implemented our new idiom recognition approach based on
                 the Java Just-In-Time (JIT) compiler that is part of
                 the J9 Java Virtual Machine, and we supported several
                 important idioms for special hardware-assist
                 instructions on the IBM zSeries and on some models of
                 the IBM pSeries. To demonstrate the effectiveness of
                 our technique, we performed two experiments. The first
                 one is to see how many more patterns we can detect
                 compared to the previous approach. The second one is to
                 see how much performance improvement we can achieve
                 over the previous approach. For the first experiment,
                 we used the Java Compatibility Kit (JCK) API tests. For
                 the second one we used IBM XML parser, SPECjvm98, and
                 SPCjbb2000. In summary, relative to a baseline
                 implementation using exact pattern matching, our
                 algorithm converted 75\% more loops in JCK tests. We
                 also observed significant performance improvement of
                 the XML parser by 64\%, of SPECjvm98 by 1\%, and of
                 SPECjbb2000 by 2\% on average on a z990. Finally, we
                 observed the JIT compilation time increases by only
                 0.32\% to 0.44\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hardware-assist instructions; idiom recognition; Java;
                 JIT; topological embedding; VMX",
}

@Article{Bansal:2006:AGP,
  author =       "Sorav Bansal and Alex Aiken",
  title =        "Automatic generation of peephole superoptimizers",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "394--403",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168906",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Peephole optimizers are typically constructed using
                 human-written pattern matching rules, an approach that
                 requires expertise and time, as well as being less than
                 systematic at exploiting all opportunities for
                 optimization. We explore fully automatic construction
                 of peephole optimizers using brute force
                 superoptimization. While the optimizations discovered
                 by our automatic system may be less general than
                 human-written counterparts, our approach has the
                 potential to automatically learn a database of
                 thousands to millions of optimizations, in contrast to
                 the hundreds found in current peephole optimizers. We
                 show experimentally that our optimizer is able to
                 exploit performance opportunities not found by existing
                 compilers; in particular, we show speedups from 1.7 to
                 a factor of 10 on some compute intensive kernels over a
                 conventional optimizing compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code selection; peephole optimization;
                 superoptimization",
}

@Article{Solar-Lezama:2006:CSF,
  author =       "Armando Solar-Lezama and Liviu Tancau and Rastislav
                 Bodik and Sanjit Seshia and Vijay Saraswat",
  title =        "Combinatorial sketching for finite programs",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "404--415",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168917.1168907",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Sketching is a software synthesis approach where the
                 programmer develops a partial implementation --- a
                 sketch --- and a separate specification of the desired
                 functionality. The synthesizer then completes the
                 sketch to behave like the specification. The
                 correctness of the synthesized implementation is
                 guaranteed by the compiler, which allows, among other
                 benefits, rapid development of highly tuned
                 implementations without the fear of introducing bugs.
                 We develop SKETCH, a language for finite programs with
                 linguistic support for sketching. Finite programs
                 include many high-performance kernels, including
                 cryptocodes. In contrast to prior synthesizers, which
                 had to be equipped with domain-specific rules, SKETCH
                 completes sketches by means of a combinatorial search
                 based on generalized boolean satisfiability.
                 Consequently, our combinatorial synthesizer is complete
                 for the class of finite programs: it is guaranteed to
                 complete any sketch in theory, and in practice has
                 scaled to realistic programming problems. Freed from
                 domain rules, we can now write sketches as
                 simple-to-understand partial programs, which are
                 regular programs in which difficult code fragments are
                 replaced with holes to be filled by the synthesizer.
                 Holes may stand for index expressions, lookup tables,
                 or bitmasks, but the programmer can easily define new
                 kinds of holes using a single versatile synthesis
                 operator. We have used SKETCH to synthesize an
                 efficient implementation of the AES cipher standard.
                 The synthesizer produces the most complex part of the
                 implementation and runs in about an hour.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "SAT; sketching",
}

@Article{DaSilva:2006:PPA,
  author =       "Jeff {Da Silva} and J. Gregory Steffan",
  title =        "A probabilistic pointer analysis for speculative
                 optimizations",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "416--425",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168908",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Pointer analysis is a critical compiler analysis used
                 to disambiguate the indirect memory references that
                 result from the use of pointers and pointer-based data
                 structures. A conventional pointer analysis deduces for
                 every pair of pointers, at any program point, whether a
                 points-to relation between them (i) definitely exists,
                 (ii) definitely does not exist, or (iii) maybe exists.
                 Many compiler optimizations rely on accurate pointer
                 analysis, and to ensure correctness cannot optimize in
                 the maybe case. In contrast, recently-proposed
                 speculative optimizations can aggressively exploit the
                 maybe case, especially if the likelihood that two
                 pointers alias can be quantified. This paper proposes a
                 Probabilistic Pointer Analysis (PPA) algorithm that
                 statically predicts the probability of each points-to
                 relation at every program point. Building on simple
                 control-flow edge profiling, our analysis is both
                 one-level context and flow sensitive-yet can still
                 scale to large programs including the SPEC 2000 integer
                 benchmark suite. The key to our approach is to compute
                 points-to probabilities through the use of linear
                 transfer functions that are efficiently encoded as
                 sparse matrices. We demonstrate that our analysis can
                 provide accurate probabilities, even without
                 edge-profile information. We also find that-even
                 without considering probability information-our
                 analysis provides an accurate approach to performing
                 pointer analysis.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dependence analysis; pointer analysis; speculative
                 optimization",
}

@Article{Frenger:2006:FSS,
  author =       "Paul Frenger",
  title =        "{Forth} \& small systems report: potential unrealized:
                 the {MicroMED} advisor",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "12",
  pages =        "10--16",
  month =        dec,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1229493.1229495",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 13:22:03 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This column begins a multipart series describing
                 various projects in which I was involved, which for one
                 reason or another, did not live up to their full
                 potential. They are reviewed here in the hope that
                 these exemplars may help others to avoid the traps and
                 pitfalls which have ensnared the author during his
                 career. Most are 'small systems', or subsystems of
                 other projects; many involve the Forth programming
                 language.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wu:2006:FSP,
  author =       "Fangjun Wu",
  title =        "Formal specification of program slicing",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "12",
  pages =        "18--27",
  month =        dec,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1229493.1229497",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 13:22:03 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Program slicing is a well-known technique that has
                 been used in a variety of software engineering areas,
                 such as comprehension, understanding, maintenance,
                 debugging, testing, reuse, metrics, etc. This paper
                 discusses how the formal specification language Z
                 schema calculus may be used to specify program slicing.
                 General aspects of program slicing are considered, i.e.
                 dependence graphs and program slicing algorithms. This
                 formalization could help in the correct understanding
                 of program slicing and also the correct application of
                 a desired slicing regime in a rigorous way.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "program dependence graph; program slicing; system
                 dependence graph; Z language",
}

@Article{Mannarswamy:2006:TTR,
  author =       "Sandya Mannarswamy and Shruti Doval and Hariharan
                 Sandanagobalane and Mahesha Nanjundaiah",
  title =        "{TRICK}: tracking and reusing compiler's knowledge",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "12",
  pages =        "28--37",
  month =        dec,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1229493.1229498",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 13:22:03 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Compilers, during compilation, analyze the application
                 being compiled and build up extensive knowledge about
                 the program. This knowledge is essential for the
                 compiler to produce correct object code. Though some
                 part of this knowledge is retained in the generated
                 object files as symbol table information to be used by
                 the linker and/or debugger, most of it is discarded
                 after the compilation is done. In this paper, we
                 introduce the TRICK framework, which is an attempt to
                 retain and reuse this internal information generated by
                 the compiler as part of its program analysis, in
                 building new tools or enhancing existing tools as well
                 for reuse by the compiler for continuous program
                 optimization. We present examples of how development
                 and maintenance of various program analysis tools can
                 be simplified by using the TRICK framework describing
                 tools developed by our group as well as how TRICK
                 framework can be employed in continuous program
                 optimization by the compiler. TRICK framework can be
                 part of both static and dynamic compilation system,
                 though our current usage model is in the context of a
                 static compilation system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler; optimization; program analysis; reuse;
                 tools",
}

@Article{Wang:2006:DIG,
  author =       "B. Wang and C. Pronk",
  title =        "Design and implementation of a {GUI} for the {TLC}
                 model checker",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "12",
  pages =        "38--43",
  month =        dec,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1229493.1229499",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 13:22:03 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "For some time now, the TLC model checker [1] has been
                 accepted as a very useful tool for checking
                 specifications written in the language TLA+ [1]. The
                 model checker helps the system designer to find errors
                 in a specification before starting on an
                 implementation. One facility that TLA+/TLC lacks
                 however, is a GUI providing the user with more
                 operational comfort. This article presents our design
                 and implementation of a GUI for the TLA+/TLC-system,
                 called the GTLA system. GTLA provides the user with
                 three main facilities: a system editor, a simulator and
                 a verifier (the TLC model checker) operable through a
                 GUI. This article also discusses the tools which have
                 been used for constructing the GTLA system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "GraphViz; GUI; model checking; SML; temporal logic;
                 TLA+; TLC",
}

@Article{Dubey:2006:GCP,
  author =       "Alpana Dubey",
  title =        "Goodness criteria for programming language grammar
                 rules",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "12",
  pages =        "44--53",
  month =        dec,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1229493.1229500",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 13:22:03 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The grammar of a programming language is important as
                 it is used in developing software engineering tools.
                 Sometimes grammars of programming languages are not
                 readily available or they are incomplete; hence they
                 are inferred from a set of valid programs. An exact
                 grammar can not be learned from a set of positive
                 samples (set of valid programs) alone as there exists
                 many grammars which accept the given input programs; we
                 call these grammars complete grammars. Therefore, given
                 an incomplete grammar, there exists many sets of
                 grammar rules which can make it complete. Due to many
                 possible sets of grammar rules, the grammar inference
                 process faces the problem of selecting a good set of
                 grammar rules. We address the problem of grammar rule
                 selection when they are inferred using an automatic are
                 traditionally used for assessing the complexity of
                 grammar based software. The experiments show that the
                 grammar based metrics are not sufficient for this
                 purpose as there exist several rules which have the
                 same metric value. Hence we propose two rule selection
                 criteria. Experiments are done to assess different
                 criteria. Experiments show that proposed criteria, when
                 coupled with grammar metrics, select reasonably good
                 grammar rules.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "grammar metrics; programming language dialects;
                 programming language grammar",
}

@Article{Tang:2007:PRI,
  author =       "Audrey Tang",
  title =        "{Perl 6}: reconciling the irreconcilable",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "1--1",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190218",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Perl is a general-purpose language, known for its vast
                 number of freely available libraries. The Perl 6
                 project was started to improve the language's support
                 for multi-paradigmatic programming, while retaining
                 compatibility with the existing code base. This talk
                 discusses how Perl 6 attempts to reconcile various
                 competing paradigms in the field of programming
                 language design, such as static vs. dynamic
                 typechecking, nominal vs. structural subtyping,
                 prototype vs. class-based objects, and lazy vs. eager
                 evaluation. Moreover, this talk also covers the design
                 and development of Pugs, a self-hosting Perl 6
                 implementation bootstrapped from Haskell, targeting
                 multiple runtime environments, including Perl 5,
                 JavaScript and Parrot.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Matthews:2007:OSM,
  author =       "Jacob Matthews and Robert Bruce Findler",
  title =        "Operational semantics for multi-language programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "3--10",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190220",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Inter-language interoperability is big business, as
                 the success of Microsoft's .NET and COM and Sun's JVM
                 show. Programming language designers are designing
                 programming languages that reflect that fact --- SML\#,
                 Mondrian, and Scala, to name just a few examples, all
                 treat interoperability with other languages as a
                 central design feature. Still, current multi-language
                 research tends not to focus on the semantics of
                 interoperation features, but only on how to implement
                 them efficiently. In this paper, we take first steps
                 toward higher-level models of interoperating systems.
                 Our technique abstracts away the low-level details of
                 interoperability like garbage collection and
                 representation coherence, and lets us focus on semantic
                 properties like type-safety and observable equivalence.
                 Beyond giving simple expressive models that are natural
                 compositions of single-language models, our studies
                 have uncovered several interesting facts about
                 interoperability. For example, higher-order contracts
                 naturally emerge as the glue to ensure that
                 interoperating languages respect each other's type
                 systems. While we present our results in an abstract
                 setting, they shed light on real multi-language systems
                 and tools such as the JNI, SWIG, and Haskell's stable
                 pointers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "interoperability; multi-language systems; operational
                 semantics",
}

@Article{Avgustinov:2007:SSP,
  author =       "Pavel Avgustinov and Elnar Hajiyev and Neil Ongkingco
                 and Oege de Moor and Damien Sereni and Julian Tibble
                 and Mathieu Verbaere",
  title =        "Semantics of static pointcuts in {aspectJ}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "11--23",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190221",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In aspect-oriented programming, one can intercept
                 events by writing patterns called pointcuts. The
                 pointcut language of the most popular aspect-oriented
                 programming language, AspectJ, allows the expression of
                 highly complex properties of the static program
                 structure. We present the first rigorous semantics of
                 the AspectJ pointcut language, by translating static
                 patterns into safe (i.e. range-restricted and
                 stratified) Datalog queries. Safe Datalog is a logic
                 language like Prolog, but it does not have data
                 structures; consequently it has a straightforward least
                 fixpoint semantics and all queries terminate. The
                 translation from pointcuts to safe Datalog consists of
                 a set of simple conditional rewrite rules, implemented
                 using the Stratego system. The resulting queries are
                 themselves executable with the CodeQuest system. We
                 present experiments indicating that direct execution of
                 our semantics is not prohibitively expensive.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented programming; datalog; logic
                 programming; pointcuts; term rewriting",
}

@Article{Chen:2007:TIL,
  author =       "Juan Chen",
  title =        "A typed intermediate language for compiling multiple
                 inheritance",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "25--30",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190222",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Type-preserving compilation can improve software
                 reliability by generating code that can be verified
                 independently of the compiler. Practical type
                 preserving compilation does not exist for languages
                 with multiple inheritance. This paper presents
                 E$_{mi}$, the first typed intermediate language to
                 support practical compilation of a programming language
                 with fully general multiple inheritance. The paper
                 demonstrates the practicality of Emi by showing that
                 E$_{mi}$ can be used to faithfully model standard
                 implementation strategies of multiple inheritance for
                 C++, the most widely-used programming language with
                 general multiple inheritance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "class and object encoding; multiple inheritance; typed
                 intermediate language",
}

@Article{Jump:2007:CDM,
  author =       "Maria Jump and Kathryn S. McKinley",
  title =        "{Cork}: dynamic memory leak detection for
                 garbage-collected languages",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "31--38",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190224",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A memory leak in a garbage-collected program occurs
                 when the program inadvertently maintains references to
                 objects that it no longer needs. Memory leaks cause
                 systematic heap growth, degrading performance and
                 resulting in program crashes after perhaps days or
                 weeks of execution. Prior approaches for detecting
                 memory leaks rely on heap differencing or detailed
                 object statistics which store state proportional to the
                 number of objects in the heap. These overheads preclude
                 their use on the same processor for deployed
                 long-running applications. This paper introduces a
                 dynamic heap-summarization technique based on type that
                 accurately identifies leaks, is space efficient (adding
                 less than 1\% to the heap), and is time efficient
                 (adding 2.3\% on average to total execution time). We
                 implement this approach in Cork which utilizes dynamic
                 type information and garbage collection to summarize
                 the live objects in a type points-from graph (TPFG)
                 whose nodes (types) and edges (references between
                 types) are annotated with volume. Cork compares TPFG's
                 across multiple collections, identifies growing data
                 structures, and computes a type slice for the user.
                 Cork is accurate: it identifies systematic heap growth
                 with no false positives in 4 of 15 benchmarks we
                 tested. Cork's slice report enabled us (non-experts) to
                 quickly eliminate growing data structures in
                 SPECjbb2000 and Elipse, something their developers had
                 not previously done. Cork is accurate, scalable, and
                 efficient enough to consider using online.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic; garbage collection; memory leak detection;
                 memory leaks; runtime analysis",
}

@Article{Polishchuk:2007:DHT,
  author =       "Marina Polishchuk and Ben Liblit and Chlo{\"e} W.
                 Schulze",
  title =        "Dynamic heap type inference for program understanding
                 and debugging",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "39--46",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190225",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "C programs can be difficult to debug due to lax type
                 enforcement and low-level access to memory. We present
                 a dynamic analysis for C that checks heap snapshots for
                 consistency with program types. Our approach builds on
                 ideas from physical subtyping and conservative garbage
                 collection. We infer a program-defined type for each
                 allocated storage location or identify 'untypable'
                 blocks that reveal heap corruption or type safety
                 violations. The analysis exploits symbolic debug
                 information if present, but requires no annotation or
                 recompilation beyond a list of defined program types
                 and allocated heap blocks. We have integrated our
                 analysis into the GNU Debugger (gdb), and describe our
                 initial experience using this tool with several small
                 to medium-sized programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "conservative garbage collection; constraints;
                 debugging tools; dynamic type inference; heap
                 visualization; physical subtyping",
}

@Article{Godefroid:2007:CDT,
  author =       "Patrice Godefroid",
  title =        "Compositional dynamic test generation",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "47--54",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190226",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Dynamic test generation is a form of dynamic program
                 analysis that attempts to compute test inputs to drive
                 a program along a specific program path. Directed
                 Automated Random Testing, or DART for short, blends
                 dynamic test generation with model checking techniques
                 with the goal of systematically executing all feasible
                 program paths of a program while detecting various
                 types of errors using run-time checking tools (like
                 Purify, for instance). Unfortunately, systematically
                 executing all feasible program paths does not scale to
                 large, realistic programs. This paper addresses this
                 major limitation and proposes to perform dynamic test
                 generation compositionally, by adapting known
                 techniques for interprocedural static analysis.
                 Specifically, we introduce a new algorithm, dubbed
                 SMART for Systematic Modular Automated Random Testing,
                 that extends DART by testing functions in isolation,
                 encoding test results as function summaries expressed
                 using input preconditions and output postconditions,
                 and then re-using those summaries when testing
                 higher-level functions. We show that, for a fixed
                 reasoning capability, our compositional approach to
                 dynamic test generation (SMART) is both sound and
                 complete compared to monolithic dynamic test generation
                 (DART). In other words, SMART can perform dynamic test
                 generation compositionally without any reduction in
                 program path coverage. We also show that, given a bound
                 on the maximum number of feasible paths in individual
                 program functions, the number of program executions
                 explored by SMART is linear in that bound, while the
                 number of program executions explored by DART can be
                 exponential in that bound. We present examples of C
                 programs and preliminary experimental results that
                 illustrate and validate empirically these properties.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic test generation; compositional program
                 analysis; program verification; scalability; software
                 testing",
}

@Article{Shen:2007:LAU,
  author =       "Xipeng Shen and Jonathan Shaw and Brian Meeker and
                 Chen Ding",
  title =        "Locality approximation using time",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "55--61",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190227",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Reuse distance (i.e. LRU stack distance) precisely
                 characterizes program locality and has been a basic
                 tool for memory system research since the 1970s.
                 However, the high cost of measuring has restricted its
                 practical uses in performance debugging, locality
                 analysis and optimizations of long-running
                 applications. In this work, we improve the efficiency
                 by exploring the connection between time and locality.
                 We propose a statistical model that converts cheaply
                 obtained time distance to the more costly reuse
                 distance. Compared to the state-of-the-art technique,
                 this approach reduces measuring time by a factor of 17,
                 and approximates cache line reuses with over 99\%
                 accuracy and the cache miss rate with less than 0.4\%
                 average error for 12 SPEC 2000 integer and
                 floating-point benchmarks. By exploiting the strong
                 correlations between time and locality, this work makes
                 precise locality as easy to obtain as data access
                 frequency, and opens new opportunities for program
                 optimizations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "performance prediction; program locality; reference
                 affinity; reuse distance; time distance; trace
                 generator",
}

@Article{Dreyer:2007:MTC,
  author =       "Derek Dreyer and Robert Harper and Manuel M. T.
                 Chakravarty and Gabriele Keller",
  title =        "Modular type classes",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "63--70",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190229",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "ML modules and Haskell type classes have proven to be
                 highly effective tools for program structuring. Modules
                 emphasize explicit configuration of program components
                 and the use of data abstraction. Type classes emphasize
                 implicit program construction and ad hoc polymorphism.
                 In this paper, we show how the implicitly-typed style
                 of type class programming may be supported within the
                 framework of an explicitly-typed module language by
                 viewing type classes as a particular mode of use of
                 modules. This view offers a harmonious integration of
                 modules and type classes, where type class features,
                 such as class hierarchies and associated types, arise
                 naturally as uses of existing module-language
                 constructs, such as module hierarchies and type
                 components. In addition, programmers have explicit
                 control over which type class instances are available
                 for use by type inference in a given scope. We
                 formalize our approach as a Harper-Stone-style
                 elaboration relation, and provide a sound type
                 inference algorithm as a guide to implementation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "modules; type classes; type inference; type systems",
}

@Article{Siskind:2007:FCN,
  author =       "Jeffrey Mark Siskind and Barak A. Pearlmutter",
  title =        "First-class nonstandard interpretations by opening
                 closures",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "71--76",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190230",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We motivate and discuss a novel functional programming
                 construct that allows convenient modular run-time
                 nonstandard interpretation via reflection on closure
                 environments. This map-closure construct encompasses
                 both the ability to examine the contents of a closure
                 environment and to construct a new closure with a
                 modified environment. From the user's perspective,
                 map-closure is a powerful and useful construct that
                 supports such tasks as tracing, security logging,
                 sandboxing, error checking, profiling, code
                 instrumentation and metering, run-time code patching,
                 and resource monitoring. From the implementor's
                 perspective, map-closure is analogous to call/cc. Just
                 as call/cc is a non-referentially-transparent mechanism
                 that reifies the continuations that are only implicit
                 in programs written in direct style, map-closure is a
                 non-referentially-transparent mechanism that reifies
                 the closure environments that are only implicit in
                 higher-order programs. Just as CPS conversion is a
                 non-local but purely syntactic transformation that can
                 eliminate references to call/cc, closure conversion is
                 a non-local but purely syntactic transformation that
                 can eliminate references to map-closure. We show how
                 the combination of map-closure and call/cc can be used
                 to implement set! as a procedure definition and a local
                 macro transformation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "lambda lifting; referential transparency",
}

@Article{Mandelbaum:2007:PMF,
  author =       "Yitzhak Mandelbaum and Kathleen Fisher and David
                 Walker and Mary Fernandez and Artem Gleyzer",
  title =        "{PADS\slash ML}: a functional data description
                 language",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "77--83",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190231",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Massive amounts of useful data are stored and
                 processed in ad hoc formats for which common tools like
                 parsers, printers, query engines and format converters
                 are not readily available. In this paper, we explain
                 the design and implementation of PADS/ML, a new
                 language and system that facilitates the generation of
                 data processing tools for ad hoc formats. The PADS/ML
                 design includes features such as dependent, polymorphic
                 and recursive datatypes, which allow programmers to
                 describe the syntax and semantics of ad hoc data in a
                 concise, easy-to-read notation. The PADS/ML
                 implementation compiles these descriptions into ml
                 structures and functors that include types for parsed
                 data, functions for parsing and printing, and auxiliary
                 support for user-specified, format-dependent and
                 format-independent tool generation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data description languages; dependent types;
                 domain-specific languages; functional programming; ML;
                 modules; parsing; printing",
}

@Article{Pitts:2007:GUN,
  author =       "Andrew M. Pitts and Mark R. Shinwell",
  title =        "Generative unbinding of names",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "85--95",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190232",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper is concerned with a programming language
                 construct for typed name binding that enforces
                 $\alpha$equivalence. It proves a new result about what
                 operations on names can co-exist with this construct.
                 The particular form of typed name binding studied is
                 that used by the FreshML family of languages. Its
                 characteristic feature is that a name binding is
                 represented by an abstract (name,value)-pair that may
                 only be deconstructed via the generation of fresh bound
                 names. In FreshML the only observation one can make of
                 names is to test whether or not they are equal. This
                 restricted amount of observation was thought necessary
                 to ensure that there is no observable difference
                 between $\alpha$equivalent name binders. Yet from an
                 algorithmic point of view it would be desirable to
                 allow other operations and relations on names, such as
                 a total ordering. This paper shows that, contrary to
                 expectations, one may add not just ordering, but almost
                 any relation or numerical function on names without
                 disturbing the fundamental correctness result about
                 this form of typed name binding (that object-level
                 $\alpha$equivalence precisely corresponds to contextual
                 equivalence at the programming meta-level), so long as
                 one takes the state of dynamically created names into
                 account.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract syntax; alpha-conversion; binders;
                 meta-programming",
}

@Article{Tuch:2007:TBS,
  author =       "Harvey Tuch and Gerwin Klein and Michael Norrish",
  title =        "Types, bytes, and separation logic",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "97--108",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190234",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a formal model of memory that both captures
                 the low-level features of C's pointers and memory, and
                 that forms the basis for an expressive implementation
                 of separation logic. At the low level, we do not commit
                 common oversimplifications, but correctly deal with C's
                 model of programming language values and the heap. At
                 the level of separation logic, we are still able to
                 reason abstractly and efficiently. We implement this
                 framework in the theorem prover Isabelle/HOL and
                 demonstrate it on two case studies. We show that the
                 divide between detailed and abstract does not impose
                 undue verification overhead, and that simple programs
                 remain easy to verify. We also show that the framework
                 is applicable to real, security- and safety-critical
                 code by formally verifying the memory allocator of the
                 L4 microkernel.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C; interactive theorem proving; separation logic",
}

@Article{Appel:2007:VMM,
  author =       "Andrew W. Appel and Paul-Andr{\'e} Melli{\`e}s and
                 Christopher D. Richards and J{\'e}r{\^o}me Vouillon",
  title =        "A very modal model of a modern, major, general type
                 system",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "109--122",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190235",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a model of recursive and impredicatively
                 quantified types with mutable references. We interpret
                 in this model all of the type constructors needed for
                 typed intermediate languages and typed assembly
                 languages used for object-oriented and functional
                 languages. We establish in this purely semantic fashion
                 a soundness proof of the typing systems underlying
                 these TILs and TALs---ensuring that every well-typed
                 program is safe. The technique is generic, and applies
                 to any small-step semantics including \lambda
                 -calculus, labeled transition systems, and von Neumann
                 machines. It is also simple, and reduces mainly to
                 defining a Kripke semantics of the G{\"o}del-L{\"o}b
                 logic of provability. We have mechanically verified in
                 Coq the soundness of our type system as applied to a
                 von Neumann machine.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "impredicative polymorphism; Kripke models; mutable
                 references; recursive types",
}

@Article{Calcagno:2007:CLM,
  author =       "Cristiano Calcagno and Philippa Gardner and Uri
                 Zarfaty",
  title =        "Context logic as modal logic: completeness and
                 parametric inexpressivity",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "123--134",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190236",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Separation Logic, Ambient Logic and Context Logic are
                 based on a similar style of reasoning about structured
                 data. They each consist of a structural (separating)
                 composition for reasoning about disjoint subdata, and
                 corresponding structural adjoint(s) for reasoning
                 hypothetically about data. We show how to interpret
                 these structural connectives as modalities in Modal
                 Logic and prove completeness results. The structural
                 connectives are essential for describing properties of
                 the underlying data, such as weakest preconditions for
                 Hoare reasoning for Separation and Context Logic, and
                 security properties for Ambient Logic. In fact, we
                 introduced Context Logic to reason about tree update,
                 precisely because the structural connectives of the
                 Ambient Logic did not have enough expressive power.
                 Despite these connectives being essential, first Lozes
                 then Dawar, Gardner and Ghelli proved elimination
                 results for Separation Logic and Ambient Logic (without
                 quantifiers). In this paper, we solve this apparent
                 contradiction. We study parametric inexpressivity
                 results, which demonstrate that the structural
                 connectives are indeed fundamental for this style of
                 reasoning.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "contexts; expressivity; logic; structured data",
}

@Article{Batory:2007:ITP,
  author =       "Don Batory",
  title =        "From implementation to theory in product synthesis",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "135--136",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190238",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Future software development will rely on product
                 synthesis, i.e., the synthesis of code and non-code
                 artifacts for a target component or application. Prior
                 work on feature-based product synthesis can be
                 understood and generalized using elementary ideas from
                 category theory. Doing so reveals (a) practical and
                 previously unrecognized properties that product
                 synthesis tools must satisfy, and (b) non-obvious
                 generalizations of current techniques that will guide
                 future research efforts in automated product
                 development.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "AHEAD; category theory; features; GenVoca; mixins;
                 model driven design; program synthesis; virtual
                 classes",
}

@Article{Lammel:2007:SYB,
  author =       "Ralf L{\"a}mmel",
  title =        "Scrap your boilerplate with {XPath}-like combinators",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "137--142",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190240",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "XML programming involves idioms for expressing
                 'structure shyness' such as the descendant axis of
                 XPath or the default templates of XSLT. We initiate a
                 discussion of the relationships between such XML idioms
                 and generic functional programming, while focusing on
                 the (Haskell-based) 'Scrap your boilerplate' style of
                 generic programming (SYB). This work gives insight into
                 mechanisms for traversal and selection. We compare SYB
                 and XSLT. We approximate XPath in SYB. We make a case
                 for SYB's programmability, when compared to XPath's
                 fixed combinators. We allude to strengthened type
                 checking for SYB traversals so as to reject certain,
                 trivial behaviors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "generic functional programming; XML programming",
}

@Article{Ohori:2007:LFF,
  author =       "Atsushi Ohori and Isao Sasano",
  title =        "Lightweight fusion by fixed point promotion",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "143--154",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190241",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper proposes a lightweight fusion method for
                 general recursive function definitions. Compared with
                 existing proposals, our method has several significant
                 practical features: it works for general recursive
                 functions on general algebraic data types; it does not
                 produce extra runtime overhead (except for possible
                 code size increase due to the success of fusion); and
                 it is readily incorporated in standard inlining
                 optimization. This is achieved by extending the
                 ordinary inlining process with a new fusion law that
                 transforms a term of the form $f o$ (fix $g \lambda
                 x.E$) to a new fixed point term fix $h \lambda
                 x.E\prime$ by promoting the function $f$ through the
                 fixed point operator. This is a sound syntactic
                 transformation rule that is not sensitive to the types
                 of $f$ and $g$. This property makes our method
                 applicable to wide range of functions including those
                 with multi-parameters in both curried and uncurried
                 forms. Although this method does not guarantee any form
                 of completeness, it fuses typical examples discussed in
                 the literature and others that involve accumulating
                 parameters, either in the {\tt foldl}-like specific
                 forms or in general recursive forms, without any
                 additional machinery. In order to substantiate our
                 claim, we have implemented our method in a compiler.
                 Although it is preliminary, it demonstrates practical
                 feasibility of this method.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "fixed point; fusion; inlining",
}

@Article{Pearlmutter:2007:LMH,
  author =       "Barak A. Pearlmutter and Jeffrey Mark Siskind",
  title =        "Lazy multivariate higher-order forward-mode {AD}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "155--160",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190242",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A method is presented for computing all higher-order
                 partial derivatives of a multivariate function $R^n
                 \rightarrow R$. This method works by evaluating the
                 function under a nonstandard interpretation, lifting
                 reals to multivariate power series. Multivariate power
                 series, with potentially an infinite number of terms
                 with nonzero coefficients, are represented using a lazy
                 data structure constructed out of linear terms. A
                 complete implementation of this method in Scheme is
                 presented, along with a straightforward exposition,
                 based on Taylor expansions, of the method's
                 correctness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "nonstandard interpretation; power series",
}

@Article{Stovring:2007:CCI,
  author =       "Kristian St{\o}vring and Soren B. Lassen",
  title =        "A complete, co-inductive syntactic theory of
                 sequential control and state",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "161--172",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190244",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a new co-inductive syntactic theory, eager
                 normal form bisimilarity, for the untyped call-by-value
                 lambda calculus extended with continuations and mutable
                 references. We demonstrate that the associated
                 bisimulation proof principle is easy to use and that it
                 is a powerful tool for proving equivalences between
                 recursive imperative higher-order programs. The theory
                 is modular in the sense that eager normal form
                 bisimilarity for each of the calculi extended with
                 continuations and/or mutable references is a fully
                 abstract extension of eager normal form bisimilarity
                 for its sub-calculi. For each calculus, we prove that
                 eager normal form bisimilarity is a congruence and is
                 sound with respect to contextual equivalence.
                 Furthermore, for the calculus with both continuations
                 and mutable references, we show that eager normal form
                 bisimilarity is complete: it coincides with contextual
                 equivalence.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bisimulation; continuations; mutable references",
}

@Article{Lee:2007:TMM,
  author =       "Daniel K. Lee and Karl Crary and Robert Harper",
  title =        "Towards a mechanized metatheory of standard {ML}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "173--184",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190245",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present an internal language with equivalent
                 expressive power to Standard ML, and discuss its
                 formalization in LF and the machine-checked
                 verification of its type safety in Twelf. The internal
                 language is intended to serve as the target of
                 elaboration in an elaborative semantics for Standard ML
                 in the style of Harper and Stone. Therefore, it
                 includes all the programming mechanisms necessary to
                 implement Standard ML, including translucent modules,
                 abstraction, polymorphism, higher kinds, references,
                 exceptions, recursive types, and recursive functions.
                 Our successful formalization of the proof involved a
                 careful interplay between the precise formulations of
                 the various mechanisms, and required the invention of
                 new representation and proof techniques of general
                 interest.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "language definitions; logical frameworks; mechanized
                 metatheory; standard ML; Twelf; type safety",
}

@Article{Might:2007:LFA,
  author =       "Matthew Might",
  title =        "Logic-flow analysis of higher-order programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "185--198",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190247",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This work presents a framework for fusing flow
                 analysis and theorem proving called logic-flow analysis
                 (LFA). The framework itself is the reduced product of
                 two abstract interpretations: (1) an abstract state
                 machine and (2) a set of propositions in a restricted
                 first-order logic. The motivating application for LFA
                 is the safe removal of implicit array-bounds checks
                 without type information, user interaction or program
                 annotation. LFA achieves this by delegating a given
                 task to either the prover or the flow analysis
                 depending on which is best suited to discharge it.
                 Described within are a concrete semantics for
                 continuation-passing style; a restricted, first-order
                 logic; a woven product of two abstract interpretations;
                 proofs of correctness; and a worked example.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract counting; abstract garbage collection; CPS;
                 environment analysis; gamma-CFA first-order logic;
                 lambda calculus; LFA; logic-flow analysis; static
                 analysis; theorem proving",
}

@Article{Wiedermann:2007:EQS,
  author =       "Ben Wiedermann and William R. Cook",
  title =        "Extracting queries by static analysis of transparent
                 persistence",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "199--210",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190248",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transparent persistence promises to integrate
                 programming languages and databases by allowing
                 procedural programs to access persistent data with the
                 same ease as non-persistent data. When the data is
                 stored in a relational database, however, transparent
                 persistence does not naturally leverage the performance
                 benefits of relational query optimization. We present a
                 program analysis that combines the benefits of both
                 approaches by extracting database queries from programs
                 with transparent access to persistent data. The
                 analysis uses a sound abstract interpretation of the
                 original program to approximate the data traversal
                 paths in the program and the conditions under which the
                 paths are used. The resulting paths are then converted
                 into a query, and the program is simplified by removing
                 redundant tests. We study an imperative kernel language
                 with read-only access to persistent data and identify
                 the conditions under which the transformations can be
                 applied. This analysis approach promises to combine the
                 software engineering benefits of transparent data
                 persistence with the performance benefits of database
                 query optimization.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "databases; programming languages; static analysis",
}

@Article{Berdine:2007:VAI,
  author =       "Josh Berdine and Aziem Chawdhary and Byron Cook and
                 Dino Distefano and Peter O'Hearn",
  title =        "Variance analyses from invariance analyses",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "211--224",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190249",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "An invariance assertion for a program location $l$ is
                 a statement that always holds at $l$ during execution
                 of the program. Program invariance analyses infer
                 invariance assertions that can be useful when trying to
                 prove safety properties. We use the term variance
                 assertion to mean a statement that holds between any
                 state at $l$ and any previous state that was also at
                 $l$. This paper is concerned with the development of
                 analyses for variance assertions and their application
                 to proving termination and liveness properties. We
                 describe a method of constructing program variance
                 analyses from invariance analyses. If we change the
                 underlying invariance analysis, we get a different
                 variance analysis. We describe several applications of
                 the method, including variance analyses using linear
                 arithmetic and shape analysis. Using experimental
                 results we demonstrate that these variance analyses
                 give rise to a new breed of termination provers which
                 are competitive with and sometimes better than today's
                 state-of-the-art termination provers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "formal verification; liveness; program analysis;
                 software model checking; termination",
}

@Article{Malacaria:2007:AST,
  author =       "Pasquale Malacaria",
  title =        "Assessing security threats of looping constructs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "225--235",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190251",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "There is a clear intuitive connection between the
                 notion of leakage of information in a program and
                 concepts from information theory. This intuition has
                 not been satisfactorily pinned down, until now. In
                 particular, previous information-theoretic models of
                 programs are imprecise, due to their overly
                 conservative treatment of looping constructs. In this
                 paper we provide the first precise
                 information-theoretic semantics of looping constructs.
                 Our semantics describes both the amount and rate of
                 leakage; if either is small enough, then a program
                 might be deemed 'secure'. Using the semantics we
                 provide an investigation and classification of bounded
                 and unbounded covert channels.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "information theory; language semantics; security",
}

@Article{Yu:2007:JIB,
  author =       "Dachuan Yu and Ajay Chander and Nayeem Islam and Igor
                 Serikov",
  title =        "{JavaScript} instrumentation for browser security",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "237--249",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190252",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It is well recognized that JavaScript can be exploited
                 to launch browser-based security attacks. We propose to
                 battle such attacks using program instrumentation.
                 Untrusted JavaScript code goes through a rewriting
                 process which identifies relevant operations, modifies
                 questionable behaviors, and prompts the user (a web
                 page viewer) for decisions on how to proceed when
                 appropriate. Our solution is parametric with respect to
                 the security policy-the policy is implemented
                 separately from the rewriting, and the same rewriting
                 process is carried out regardless of which policy is in
                 use. Be-sides providing a rigorous account of the
                 correctness of our solution, we also discuss practical
                 issues including policy management and prototype
                 experiments. A useful by-product of our work is an
                 operational semantics of a core subset of JavaScript,
                 where code embedded in (HTML) documents may generate
                 further document pieces (with new code embedded) at
                 runtime, yielding a form of self-modifying code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "edit automata; JavaScript; program instrumentation;
                 web browser",
}

@Article{Bugliesi:2007:SIT,
  author =       "Michele Bugliesi and Marco Giunti",
  title =        "Secure implementations of typed channel abstractions",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "251--262",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190253",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The challenges hidden in the implementation of
                 high-level process calculi into low-level environments
                 are well understood [3]. This paper develops a secure
                 implementation of a typed pi calculus, in which
                 capability types are employed to realize the policies
                 for the access to communication channels. Our
                 implementation compiles high-level processes of the
                 pi-calculus into low-level principals of a
                 cryptographic process calculus based on the applied-pi
                 calculus [1]. In this translation, the high-level type
                 capabilities are implemented as term capabilities
                 protected by encryption keys only known to the intended
                 receivers. As such, the implementation is effective
                 even when the compiled, low-level principals are
                 deployed in open contexts for which no assumption on
                 trust and behavior may be made. Our technique and
                 results draw on, and extend, previous work on secure
                 implementation of channel abstractions in a dialect of
                 the join calculus [2]. In particular, our translation
                 preserves the forward secrecy of communications in a
                 calculus that includes matching and supports the
                 dynamic exchange of write and read access-rights among
                 processes. We establish the adequacy and full
                 abstraction of the implementation by contrasting the
                 untyped equivalences of the low-level cryptographic
                 calculus, with the typed equivalences of the high-level
                 source calculus.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "full abstraction; language encodings; typed behavioral
                 theories",
}

@Article{Murthy:2007:APL,
  author =       "Chet Murthy",
  title =        "Advanced programming language design in enterprise
                 software: a lambda-calculus theorist wanders into a
                 datacenter",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "263--264",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190255",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Enterprise software systems automate the business
                 processes of most nontrivial organizations in the world
                 economy. These systems are immensely complex, and their
                 function is critical to our living standards and
                 everyday lives. Their design, implementation, and
                 maintenance occupies many thousands of programmers and
                 engineers, who work in what are aptly called the 'COBOL
                 dungeons'$^1$ of the IT sector. These systems have
                 persisted, growing by accretion -- some for decades;
                 there are enterprise systems in existence today whose
                 original and even subsequent authors are retired or
                 deceased. Such extraordinarily old, multi-layered
                 systems might appear to be the last place to apply
                 avante-garde techniques, but in fact, they are
                 extremely promising candidates, and for reasons
                 directly connected to their history and structure. In
                 this talk we take a tour of several deployed enterprise
                 software systems, and demonstrate that the appropriate
                 application of methods from functional programming can
                 and does in fact yield dramatic performance
                 improvements and thus commercial advantage in the
                 design and implementation of enterprise software. This
                 concrete application is an instance of a general plan
                 for the application of advanced programming language
                 design and analysis methods, to the problem of
                 improving enterprise software. It is the thesis of this
                 talk that to a great extent, it is in enterprise
                 software that advanced PL techniques can find their
                 most advantageous application. This talk literally
                 breaks no new ground in PL research: every technique
                 discussed is nearly two decades old, and our goal is to
                 introduce PL researchers to what we feel is an ideal
                 target for their work.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "enterprise software; functional languages; transaction
                 processing",
}

@Article{Cook:2007:PPE,
  author =       "Byron Cook and Alexey Gotsman and Andreas Podelski and
                 Andrey Rybalchenko and Moshe Y. Vardi",
  title =        "Proving that programs eventually do something good",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "265--276",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190257",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In recent years we have seen great progress made in
                 the area of automatic source-level static analysis
                 tools. However, most of today's program verification
                 tools are limited to properties that guarantee the
                 absence of bad events (safety properties). Until now no
                 formal software analysis tool has provided fully
                 automatic support for proving properties that ensure
                 that good events eventually happen (liveness
                 properties). In this paper we present such a tool,
                 which handles liveness properties of large systems
                 written in C. Liveness properties are described in an
                 extension of the specification language used in the SDV
                 system. We have used the tool to automatically prove
                 critical liveness properties of Windows device drivers
                 and found several previously unknown liveness bugs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "formal verification; liveness; software model
                 checking; termination",
}

@Article{Gulwani:2007:PVP,
  author =       "Sumit Gulwani and Nebojsa Jojic",
  title =        "Program verification as probabilistic inference",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "277--289",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190258",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, we propose a new algorithm for proving
                 the validity or invalidity of a pre/postcondition pair
                 for a program. The algorithm is motivated by the
                 success of the algorithms for probabilistic inference
                 developed in the machine learning community for
                 reasoning in graphical models. The validity or
                 invalidity proof consists of providing an invariant at
                 each program point that can be locally verified. The
                 algorithm works by iteratively randomly selecting a
                 program point and updating the current abstract state
                 representation to make it more locally consistent (with
                 respect to the abstractions at the neighboring points).
                 We show that this simple algorithm has some interesting
                 aspects: (a) It brings together the complementary
                 powers of forward and backward analyses; (b) The
                 algorithm has the ability to recover itself from
                 excessive under-approximation or over-approximation
                 that it may make. (Because the algorithm does not
                 distinguish between the forward and backward
                 information, the information could get both
                 under-approximated and over-approximated at any step.)
                 (c) The randomness in the algorithm ensures that the
                 correct choice of updates is eventually made as there
                 is no single deterministic strategy that would provably
                 work for any interesting class of programs. In our
                 experiments we use this algorithm to produce the proof
                 of correctness of a small (but non-trivial) example. In
                 addition, we empirically illustrate several important
                 properties of the algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automated recovery machine; belief networks; factor
                 graphs; forward and backward analysis; Gibbs sampling;
                 learning; Markov chain Monte Carlo; over and under
                 approximation; probabilistic inference; program
                 verification",
}

@Article{Emmi:2007:LA,
  author =       "Michael Emmi and Jeffrey S. Fischer and Ranjit Jhala
                 and Rupak Majumdar",
  title =        "Lock allocation",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "291--296",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190260",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We introduce lock allocation, an automatic technique
                 that takes a multi-threaded program annotated with
                 atomic sections (that must be executed atomically), and
                 infers a lock assignment from global variables to locks
                 and a lock instrumentation that determines where each
                 lock should be acquired and released such that the
                 resulting instrumented program is guaranteed to
                 preserve atomicity and deadlock freedom (provided all
                 shared state is accessed only within atomic sections).
                 Our algorithm works in the presence of pointers and
                 procedures, and sets up the lock allocation problem as
                 a 0-1 ILP which minimizes the conflict cost between
                 atomic sections while simultaneously minimizing the
                 number of locks. We have implemented our algorithm for
                 both C with pthreads and Java, and have applied it to
                 infer locks in 15K lines of AOLserver code. Our
                 automatic allocation produces the same results as hand
                 annotations for most of this code, while solving the
                 optimization instances within a second for most
                 programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomicity; ILP; lock inference",
}

@Article{Parkinson:2007:MVN,
  author =       "Matthew Parkinson and Richard Bornat and Peter
                 O'Hearn",
  title =        "Modular verification of a non-blocking stack",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "297--302",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190215.1190261",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper contributes to the development of
                 techniques for the modular proof of programs that
                 include concurrent algorithms. We present a proof of a
                 non-blocking concurrent algorithm, which provides a
                 shared stack. The inter-thread interference, which is
                 essential to the algorithm, is confined in the proof
                 and the specification to the modular operations, which
                 perform push and pop on the stack. This is achieved by
                 the mechanisms of separation logic. The effect is that
                 inter-thread interference does not pollute
                 specification or verification of clients of the
                 stack.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; non-blocking; separation logic",
}

@Article{Kahlon:2007:AIP,
  author =       "Vineet Kahlon and Aarti Gupta",
  title =        "On the analysis of interacting pushdown systems",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "303--314",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190262",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Pushdown Systems (PDSs) have become an important
                 paradigm for program analysis. Indeed, recent work has
                 shown a deep connection between inter-procedural
                 dataflow analysis for sequential programs and the model
                 checking problem for PDSs. A natural extension of this
                 framework to the concurrent domain hinges on the,
                 somewhat less studied, problem of model checking
                 Interacting Pushdown Systems. In this paper, we
                 therefore focus on the model checking of Interacting
                 Pushdown Systems synchronizing via the standard
                 primitives --- locks, rendezvous and broadcasts, for
                 rich classes of temporal properties --- both linear and
                 branching time. We formulate new algorithms for model
                 checking interacting PDSs for important fragments of
                 LTL and the Mu-Calculus. Additionally, we also
                 delineate precisely the decidability boundary for each
                 of the standard synchronization primitives.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; dataflow analysis; LTL; model checking;
                 mu-calculus; pushdown systems",
}

@Article{Reppy:2007:SCM,
  author =       "John Reppy and Yingqi Xiao",
  title =        "Specialization of {CML} message-passing primitives",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "315--326",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190264",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Concurrent ML (CML) is a statically-typed higher-order
                 concurrent language that is embedded in Standard ML.
                 Its most notable feature is its support for first-class
                 synchronous operations. This mechanism allows
                 programmers to encapsulate complicated communication
                 and synchronization protocols as first-class
                 abstractions, which encourages a modular style of
                 programming where the underlying channels used to
                 communicate with a given thread are hidden behind data
                 and type abstraction. While CML has been in active use
                 for well over a decade, little attention has been paid
                 to optimizing CML programs. In this paper, we present a
                 new program analysis for statically-typed higher-order
                 concurrent languages that enables the compile-time
                 specialization of communication operations. This
                 specialization is particularly important in a
                 multiprocessor or multicore setting, where the
                 synchronization overhead for general-purpose operations
                 are high. Preliminary results from a prototype that we
                 have built demonstrate that specialized channel
                 operations are much faster than the general-purpose
                 operations. Our analysis technique is modular (i.e.,,
                 it analyzes and optimizes a single unit of abstraction
                 at a time), which plays to the modular style of many
                 CML programs. The analysis consists of three steps: the
                 first is a type-sensitive control-flow analysis that
                 uses the program's type-abstractions to compute more
                 precise results. The second is the construction of an
                 extended control-flow graph using the results of the
                 CFA. The last step is an iterative analysis over the
                 graph that approximates the usage patterns of known
                 channels. Our analysis is designed to detect special
                 patterns of use, such as one-shot channels, fan-in
                 channels, and fan-out channels. We have proven the
                 safety of our analysis and state those results.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrent languages; message passing; ML; static
                 analysis",
}

@Article{Naik:2007:CMA,
  author =       "Mayur Naik and Alex Aiken",
  title =        "Conditional must not aliasing for static race
                 detection",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "327--338",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190265",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Race detection algorithms for multi-threaded programs
                 using the common lock-based synchronization idiom must
                 correlate locks with the memory locations they guard.
                 The heart of a proof of race freedom is showing that if
                 two locks are distinct, then the memory locations they
                 guard are also distinct. This is an example of a
                 general property we call conditional must not aliasing:
                 Under the assumption that two objects are not aliased,
                 prove that two other objects are not aliased. This
                 paper introduces and gives an algorithm for conditional
                 must not alias analysis and discusses experimental
                 results for sound race detection of Java programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; Java; multi-threading; static race
                 detection; synchronization",
}

@Article{Jhala:2007:IAA,
  author =       "Ranjit Jhala and Rupak Majumdar",
  title =        "Interprocedural analysis of asynchronous programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "339--350",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190266",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "An asynchronous program is one that contains procedure
                 calls which are not immediately executed from the
                 callsite, but stored and 'dispatched' in a
                 non-deterministic order by an external scheduler at a
                 later point. We formalize the problem of
                 interprocedural dataflow analysis for asynchronous
                 programs as AIFDS problems, a generalization of the
                 IFDS problems for interprocedural dataflow analysis. We
                 give an algorithm for computing the precise
                 meet-over-valid-paths solution for any AIFDS instance,
                 as well as a demand-driven algorithm for solving the
                 corresponding demand AIFDS instances. Our algorithm can
                 be easily implemented on top of any existing
                 interprocedural dataflow analysis framework. We have
                 implemented the algorithm on top of BLAST, thereby
                 obtaining the first safety verification tool for
                 unbounded asynchronous programs. Though the problem of
                 solving AIFDS instances is EXPSPACE-hard, we find that
                 in practice our technique can efficiently analyze
                 programs by exploiting standard optimizations of
                 interprocedural dataflow analyses.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "asynchronous (event-driven) programming; dataflow
                 analysis",
}

@Article{Vaswani:2007:PPP,
  author =       "Kapil Vaswani and Aditya V. Nori and Trishul M.
                 Chilimbi",
  title =        "Preferential path profiling: compactly numbering
                 interesting paths",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "351--362",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190268",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Path profiles provide a more accurate characterization
                 of a program's dynamic behavior than basic block or
                 edge profiles, but are relatively more expensive to
                 collect. This has limited their use in practice despite
                 demonstrations of their advantages over edge profiles
                 for a wide variety of applications. We present a new
                 algorithm called preferential path profiling (PPP),
                 that reduces the overhead of path profiling. PPP
                 leverages the observation that most consumers of path
                 profiles are only interested in a subset of all program
                 paths. PPP achieves low overhead by separating
                 interesting paths from other paths and assigning a set
                 of unique and compact numbers to these interesting
                 paths. We draw a parallel between arithmetic coding and
                 path numbering, and use this connection to prove an
                 optimality result for the compactness of path numbering
                 produced by PPP. This compact path numbering enables
                 our PPP implementation to record path information in an
                 array instead of a hash table. Our experimental results
                 indicate that PPP reduces the runtime overhead of
                 profiling paths exercised by the largest (ref) inputs
                 of the SPEC CPU2000 benchmarks from 50\% on average
                 (maximum of 132\%) to 15\% on average (maximum of 26\%)
                 as compared to a state-of-the-art path profiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "arithmetic coding; dynamic analysis; preferential
                 paths; profiling",
}

@Article{Ghica:2007:GSS,
  author =       "Dan R. Ghica",
  title =        "Geometry of synthesis: a structured approach to {VLSI}
                 design",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "363--375",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190269",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a new technique for hardware synthesis from
                 higher-order functional languages with imperative
                 features based on Reynolds's Syntactic Control of
                 Interference. The restriction on contraction in the
                 type system is useful for managing the thorny issue of
                 sharing of physical circuits. We use a semantic model
                 inspired by game semantics and the geometry of
                 interaction, and express it directly as a certain class
                 of digital circuits that form a Cartesian,
                 monoidal-closed category. A soundness result is given,
                 which is also a correctness result for the compilation
                 technique.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "game semantics; geometry of interaction; syntactic
                 control of interference; synthesis",
}

@Article{Preda:2007:SBA,
  author =       "Mila Dalla Preda and Mihai Christodorescu and Somesh
                 Jha and Saumya Debray",
  title =        "A semantics-based approach to malware detection",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "1",
  pages =        "377--388",
  month =        jan,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1190216.1190270",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:53:14 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Malware detection is a crucial aspect of software
                 security. Current malware detectors work by checking
                 for 'signatures,' which attempt to capture (syntactic)
                 characteristics of the machine-level byte sequence of
                 the malware. This reliance on a syntactic approach
                 makes such detectors vulnerable to code obfuscations,
                 increasingly used by malware writers, that alter
                 syntactic properties of the malware byte sequence
                 without significantly affecting their execution
                 behavior. This paper takes the position that the key to
                 malware identification lies in their semantics. It
                 proposes a semantics-based framework for reasoning
                 about malware detectors and proving properties such as
                 soundness and completeness of these detectors. Our
                 approach uses a trace semantics to characterize the
                 behaviors of malware as well as the program being
                 checked for infection, and uses abstract interpretation
                 to 'hide' irrelevant aspects of these behaviors. As a
                 concrete application of our approach, we show that the
                 semantics-aware malware detector proposed by
                 Christodorescu et al. is complete with respect to a
                 number of common obfuscations used by malware
                 writers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpretation; malware detection;
                 obfuscation; trace semantics",
}

@Article{Chen:2007:TPB,
  author =       "Hsiang-Yang Chen and Ting-Wei Hou and Chun-Liang Lin",
  title =        "Tamper-proofing basis path by using oblivious hashing
                 on {Java}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "2",
  pages =        "9--16",
  month =        feb,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1241761.1241762",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:01 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Java programs are often downloaded (distributed) to
                 unknown environments, so protect Java code from
                 malicious modification is an important issue. This
                 paper presents a tamper-proofing software technology on
                 basis paths for stack-machine based languages, such as
                 Java, by improving Oblivious Hashing. Our approach is
                 based on a new dynamic stack-tracing approach which
                 inserts hash instructions to monitor the top of the
                 stack to check whether the program running has been
                 tampered with or not. A user can choose one or more
                 methods in a class to tamper-proof program. The
                 protective codes are added to basic blocks at the
                 bytecode level. We developed a new approach to protect
                 constants and variables by alternative hashing
                 functions. The overhead is proportional to the number
                 of Load and Push instructions to be protected.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "basis paths; Java; oblivious hashing;
                 tamper-proofing",
}

@Article{Kumar:2007:PST,
  author =       "Rajeev Kumar and Soham S. Chakraborty",
  title =        "Precise static type analysis for object oriented
                 programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "2",
  pages =        "17--26",
  month =        feb,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1241761.1241763",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:01 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A precise static type analysis is important to make
                 available dynamic aspects of object-oriented programs
                 (OOPs) approximately known at compile-time. Many
                 techniques have been proposed for static type analysis
                 depending upon the tradeoff of cost and precision; the
                 techniques may generate spurious possible types for a
                 particular dynamic dispatch which makes the static type
                 analysis imprecise. In this paper, we propose a
                 symbolic execution based type analysis technique that
                 analyzes the dynamic type inter-procedurally by keeping
                 the flow of the program in consideration. We analyze
                 test cases with different class hierarchies. The
                 proposed technique was capable to resolve the target
                 method for most of the dynamic dispatches at reduced
                 computational cost.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "message dispatch; object-oriented programming; program
                 analysis; type analysis; type system",
}

@Article{Tanter:2007:DSC,
  author =       "{\'E}ric Tanter",
  title =        "On dynamically-scoped crosscutting mechanisms",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "2",
  pages =        "27--33",
  month =        feb,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1241761.1241764",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:01 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many crosscutting mechanisms proposed in the
                 literature offer means to restrain aspects to some
                 dynamically-defined scopes. Dynamically-scoped
                 mechanisms are particularly interesting because of the
                 flexibility, expressiveness, and control they give over
                 structural and behavioral changes made by aspects.
                 Since the nature of dynamic scopes as well as the
                 scoping mechanisms themselves greatly vary among
                 proposals, It is relatively complex to compare them.
                 This paper aims at filling this gap by proposing a
                 first characterization of dynamically-scoped
                 crosscutting mechanisms, hence providing a reference
                 frame for comparing different approaches. As a result,
                 this work clarifies some differences between related
                 approaches, suggests possible tracks for further
                 exploration of the design space of such mechanisms, and
                 discusses some issues raised by dynamically-scoped
                 aspects.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented programming; aspects; crosscutting
                 mechanisms; dynamic scope",
}

@Article{Mahoney:2007:UCS,
  author =       "William R. Mahoney and William L. Sousan",
  title =        "Using common off-the-shelf tools to implement dynamic
                 aspects",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "2",
  pages =        "34--41",
  month =        feb,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1241761.1241765",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:01 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "An emerging software engineering paradigm,
                 Aspect-Oriented Programming, can be used to facilitate
                 moving common interests or requirements from individual
                 software functions into a separate module. Aspect code
                 is woven into the software on either a static
                 (compilation) basis or dynamic (runtime) basis.
                 Existing systems necessitate the use of syntactic
                 sugar. which is added to programs to indicate the join
                 points in the software where aspects could potentially
                 be applied. Static weaving inserts code, at compilation
                 time, into these join points, while dynamic weaving
                 might compile in code which can be activated at
                 runtime.\par

                 This paper describes a new approach to the
                 implementation of dynamic aspects in C/C++. Our method
                 uses a tool which operates using the GCC compiler suite
                 on Linux; it is a runtime event monitoring system we
                 call 'dynamicHook'. The tool tests each potential join
                 point at run time for the required activation of
                 advice. If advice code is necessary at the join point
                 it is loaded on the fly from shared libraries, retained
                 for future use, and called dynamically.\par

                 No additions or modifications to the source code need
                 to be made other than recompiling and linking in our
                 library. The tool is thus targeted at adding aspect
                 oriented methodologies to existing C/C++ code. We have
                 demonstrated the tool by obtaining open-source web
                 servers and adding dynamic aspects dealing with
                 security and intrusion detection.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic aspects; event monitoring; GCC; intrusion
                 detection; open-source",
}

@Article{Frenger:2007:FSS,
  author =       "Paul Frenger",
  title =        "{Forth} \& small systems report",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "3",
  pages =        "2--5",
  month =        mar,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273039.1273040",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:10 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In July 2005 I ran across an ad in Electronic Products
                 [1] for an optical mouse sensor by Agilent
                 Technologies. Like many people, I find using an optical
                 mouse to be superior to the old ball-in-a-cage type
                 mouse (which I first saw demonstrated on the Xerox Star
                 workstation at the National Computer Conference in
                 Dallas, June 1976). Inevitably, I was curious to learn
                 what makes it tick (or 'squeak') \ldots{} that's my
                 Tinkertoy{\reg} mentality at work. I clipped the
                 article, filed it and totally forgot about it until
                 recently.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lin:2007:SEA,
  author =       "Chin-Yang Lin and Ting-Wei Hou",
  title =        "A simple and efficient algorithm for cycle
                 collection",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "3",
  pages =        "7--13",
  month =        mar,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273039.1273041",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:10 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The lack of collecting cyclic garbage is generally
                 considered the major weakness of reference counting.
                 Reference counted systems handle this problem by
                 incorporating either a global tracing collector, or a
                 'partial' tracing collector that considers only the
                 cycle candidates but needs several traces on them. In
                 particular, the latter has become a preferred one as it
                 has better scalability and locality (no need to scan
                 the entire heap). This paper presents a new
                 'lightweight' cyclic reference counting algorithm,
                 which is based on partial tracing and deals with the
                 cycle problem in a simpler and more efficient way. By
                 exploiting the lightweight hypothesis that considers a
                 single sub-graph, instead of individual cycles, as the
                 basic unit of cycle collection, the algorithm can
                 detect garbage cycles in a single trace. In addition,
                 we propose a technique for eliminating redundant scans
                 over garbage objects, thus improving the efficiency of
                 the algorithm. The pseudocode and its correctness proof
                 are also presented. Finally, an implementation based on
                 Jikes Research Virtual Machine is provided to
                 demonstrate the effectiveness of the new algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cycle collection; garbage collection; Java; reference
                 counting",
}

@Article{Pareja-Flores:2007:WIF,
  author =       "Crist{\'o}bal Pareja-Flores and Jamie Urquiza-Fuentes
                 and J. {\'A}ngel Vel{\'a}zquez-Iturbide",
  title =        "{WinHIPE}: an {IDE} for functional programming based
                 on rewriting and visualization",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "3",
  pages =        "14--23",
  month =        mar,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273039.1273042",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:10 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The article describes an IDE for functional
                 programming, called WinHIPE. It provides an interactive
                 and flexible tracer, as well as a powerful
                 visualization and animation system. The former tool is
                 based on the rewriting model of evaluation, and the
                 latter provides automatic generation of visualizations
                 and animations, friendly support for customization,
                 maintenance and exportation of animations to the Web,
                 and facilities to cope with large scale. Its main
                 advantage over other visualization systems is an
                 effortless approach to animation creation and
                 maintenance, based on generating visualizations and
                 animations automatically, as a side effect of program
                 execution. Finally, we briefly describe our experience
                 using the system during several years in educational
                 settings.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "expression evaluation; functional programming; program
                 animation; program visualization; programming
                 environments; term rewriting; tracing",
}

@Article{Jiang:2007:AAT,
  author =       "Shujuan Jiang and Yuanpeng Jiang",
  title =        "An analysis approach for testing exception handling
                 programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "4",
  pages =        "3--8",
  month =        apr,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1288258.1288259",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Exception handling is a powerful mechanism that
                 separates the error handling code from normal code.
                 However, incorrect usage of exception will bring about
                 more potential faults in the code. Based on the study
                 of exception model of C++, the paper proposes a precise
                 and efficient representation of programs with exception
                 handling constructs---Exception Control Flow Graph,
                 which can represent explicitly the implicit control
                 flow of exception and exception propagation path. Then
                 it presents the structure testing criteria of programs
                 with exception handling constructs based on the
                 representation method, and gives the computing method.
                 The approach overcomes the limitations of previous
                 incorrect analysis because of failing to account for
                 the effects of exception handling constructs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "control flow graph; exception handling; exception
                 propagation; structure testing",
}

@Article{Hou:2007:AIU,
  author =       "Ting-Wei Hou and Fuh-Gwo Chen",
  title =        "An anomaly in an interpreter using {GCC}
                 source-code-level register allocation",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "4",
  pages =        "9--13",
  month =        apr,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1288258.1288260",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "An anomaly of unexpected performance in an interpreter
                 whose frequently accessed variables are manually
                 assigned to hard registers by GCC source-code-level
                 register allocation is presented. A hard-registered
                 virtual program counter and stack pointer as well as a
                 byte-code translation are experimented on both
                 register-rich PowerPC and register-limited Intel x86.
                 According to the study of the anomaly, a hard register
                 should not be assigned singly to a variable in an
                 interpreter due to higher register pressure.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "GCC source-code-level register allocation;
                 interpreter; performance",
}

@Article{Oh:2007:PEU,
  author =       "Minkyoung Oh and Jiyeon Lee and Byeong-Mo Chang and
                 Joonseon Ahn and Kyung-Goo Doh",
  title =        "A programming environment for ubiquitous computing
                 environment",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "4",
  pages =        "14--22",
  month =        apr,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1288258.1288261",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The goal of this research is to provide an advanced
                 programming environment for ubiquitous computing, which
                 facilitates the development of secure and reliable
                 ubiquitous software. A discussion follows on the design
                 and implementation of a ubiquitous programming
                 framework, which is based on high-level policy
                 description language. A context-based access control
                 manager(CACM) was implemented for context-aware access
                 control, while an adaptation engine was integrated for
                 context adaptation in dynamically changing
                 environments. A simulator was also implemented for
                 conducting experiments with this framework for
                 ubiquitous applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "access control; adaptation; programming environment;
                 ubiquitous",
}

@Article{Smirnov:2007:RPA,
  author =       "Igor B. Smirnov",
  title =        "Raw pointers in application classes of {C++}
                 considered harmful",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "4",
  pages =        "23--31",
  month =        apr,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1288258.1288262",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:17 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In order to achieve good reliability, clarity,
                 scalability and re-usability of the application
                 high-level programs written in C++ the raw pointers
                 should not be used as class members (fields), because
                 the raw pointers are too dangerous in this role and
                 they do not represent meaningful relations between
                 objects. Instead of raw pointers two smart pointers
                 should be used. The first one describes exclusive
                 unique ownership with synchronization of objects
                 copying and deletion. The second one describes
                 inclusive references to independent alien objects with
                 invalidating the reference at the deletion of the
                 addressed object. All power of object-oriented
                 programming is preserved, but difficulties and errors
                 are eliminated.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C++; dynamic storage; methodology; raw pointers; smart
                 pointers",
}

@Article{Shi:2007:ILL,
  author =       "Huihui Shi and Yi Wang and Haibing Guan and Alei
                 Liang",
  title =        "An intermediate language level optimization framework
                 for dynamic binary translation",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "5",
  pages =        "3--9",
  month =        may,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1286341.1286342",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:26 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents an intermediate language level
                 optimization framework for dynamic binary translation.
                 Performance is important to a dynamic binary
                 translation system, so there has been a growing
                 interest in exploring new optimization algorithms. The
                 framework proposed in this paper includes efficient
                 profiling, hot code recognition and smart code cache
                 management policies. Profiling is responsible for
                 collecting runtime information, which will be used by
                 hot code recognition and code cache management
                 algorithms. We only focus on recognizing the hottest
                 code, and assign priorities to basic blocks according
                 to their hotness to facilitate code cache management.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binary translation; dynamic compilation; dynamic
                 optimization; run-time profiling",
}

@Article{Banerjee:2007:SID,
  author =       "Jayasri Banerjee and Anup Kumar Bandyopadhyay and Ajit
                 Kumar Mandal",
  title =        "Some investigations on deadlock freedom issues of a
                 cyclically connected system using {Dijkstra}'s weakest
                 precondition calculus",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "5",
  pages =        "10--15",
  month =        may,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1286341.1286343",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:26 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Weakest precondition calculus is used to specify a
                 system implemented by a cyclic interconnection of
                 sequential processes. From this specification a
                 predicate is derived that describes the deadlock
                 freedom property of the system. Invariance of the
                 predicate is proved from the specification.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "deadlock freedom; program correctness; program
                 specification; weakest precondition",
}

@Article{Novark:2007:EAC,
  author =       "Gene Novark and Emery D. Berger and Benjamin G. Zorn",
  title =        "{Exterminator}: automatically correcting memory errors
                 with high probability",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "1--11",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250736",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programs written in C and C++ are susceptible to
                 memory errors, including buffer overflows and dangling
                 pointers. These errors, which can lead to crashes,
                 erroneous execution, and security vulnerabilities, are
                 notoriously costly to repair. Tracking down their
                 location in the source code is difficult, even when the
                 full memory state of the program is available. Once the
                 errors are finally found, fixing them remains
                 challenging: even for critical security-sensitive bugs,
                 the average time between initial reports and the
                 issuance of a patch is nearly one month.\par

                 We present Exterminator, a system that automatically
                 corrects heap-based memory errors without programmer
                 intervention. Exterminator exploits randomization to
                 pinpoint errors with high precision. From this
                 information, Exterminator derives runtime patches that
                 fix these errors both in current and subsequent
                 executions. In addition, Exterminator enables
                 collaborative bug correction by merging patches
                 generated by multiple users. We present analytical and
                 empirical results that demonstrate Exterminator's
                 effectiveness at detecting and correcting both injected
                 and real faults.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dieFast; dynamic memory allocation; error correction;
                 exterminator; memory errors; probabilistic algorithms;
                 randomized algorithms",
}

@Article{Burckhardt:2007:CCC,
  author =       "Sebastian Burckhardt and Rajeev Alur and Milo M. K.
                 Martin",
  title =        "{CheckFence}: checking consistency of concurrent data
                 types on relaxed memory models",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "12--21",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250737",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Concurrency libraries can facilitate the development
                 of multi-threaded programs by providing concurrent
                 implementations of familiar data types such as queues
                 or sets. There exist many optimized algorithms that can
                 achieve superior performance on multiprocessors by
                 allowing concurrent data accesses without using locks.
                 Unfortunately, such algorithms can harbor subtle
                 concurrency bugs. Moreover, they require memory
                 ordering fences to function correctly on relaxed memory
                 models.\par

                 To address these difficulties, we propose a
                 verification approach that can exhaustively check all
                 concurrent executions of a given test program on a
                 relaxed memory model and can verify that they are
                 observationally equivalent to a sequential execution.
                 Our CheckFence prototype automatically translates the C
                 implementation code and the test program into a SAT
                 formula, hands the latter to a standard SAT solver, and
                 constructs counter example traces if there exist
                 incorrect executions. Applying CheckFence to five
                 previously published algorithms, we were able to (1)
                 find several bugs (some not previously known), and (2)
                 determine how to place memory ordering fences for
                 relaxed memory models.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrent data structures; lock-free synchronization;
                 memory models; multi-threading; sequential consistency;
                 shared-memory multiprocessors; software model
                 checking",
}

@Article{Narayanasamy:2007:ACB,
  author =       "Satish Narayanasamy and Zhenghao Wang and Jordan
                 Tigani and Andrew Edwards and Brad Calder",
  title =        "Automatically classifying benign and harmful data
                 races all using replay analysis",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "22--31",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250738",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many concurrency bugs in multi-threaded programs are
                 due to dataraces. There have been many efforts to
                 develop static and dynamic mechanisms to automatically
                 find the data races. Most of the prior work has focused
                 on finding the data races and eliminating the false
                 positives.\par

                 In this paper, we instead focus on a dynamic analysis
                 technique to automatically classify the data races into
                 two categories --- the dataraces that are potentially
                 benign and the data races that are potentially harmful.
                 A harmful data race is a real bug that needs to be
                 fixed. This classification is needed to focus the
                 triaging effort on those data races that are
                 potentially harmful. Without prioritizing the data
                 races we have found that there are too many data races
                 to triage. Our second focus is to automatically provide
                 to the developer a reproducible scenario of the data
                 race, which allows the developer to understand the
                 different effects of a harmful data race on a program's
                 execution.\par

                 To achieve the above, we record a multi-threaded
                 program's execution in a replay log. The replay log is
                 used to replay the multi-threaded program, and during
                 replay we find the data races using a happens-before
                 based algorithm. To automatically classify if a data
                 race that we find is potentially benign or potentially
                 harmful, were play the execution twice for a given data
                 race --- one for each possible order between the
                 conflicting memory operations. If the two replays for
                 the two orders produce the same result, then we
                 classify the data race to be potentially benign. We
                 discuss our experiences in using our replay based
                 dynamic data race checker on several Microsoft
                 applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "benign data races; concurrency Bbugs; replay",
}

@Article{Wassermann:2007:SPA,
  author =       "Gary Wassermann and Zhendong Su",
  title =        "Sound and precise analysis of {Web} applications for
                 injection vulnerabilities",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "32--41",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250739",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Web applications are popular targets of security
                 attacks. One common type of such attacks is SQL
                 injection, where an attacker exploits faulty
                 application code to execute maliciously crafted
                 database queries. Bothstatic and dynamic approaches
                 have been proposed to detect or prevent SQL injections;
                 while dynamic approaches provide protection for
                 deployed software, static approaches can detect
                 potential vulnerabilities before software deployment.
                 Previous static approaches are mostly based on tainted
                 information flow tracking and have at least some of the
                 following limitations: (1) they do not model the
                 precise semantics of input sanitization routines; (2)
                 they require manually written specifications, either
                 for each query or for bug patterns; or (3) they are not
                 fully automated and may require user intervention at
                 various points in the analysis. In this paper, we
                 address these limitations by proposing a precise,
                 sound, and fully automated analysis technique for SQL
                 injection. Our technique avoids the need for
                 specifications by considering as attacks those queries
                 for which user input changes the intended syntactic
                 structure of the generated query. It checks conformance
                 to this policy by conservatively characterizing the
                 values a string variable may assume with a context free
                 grammar, tracking the nonterminals that represent
                 user-modifiable data, and modeling string operations
                 precisely as language transducers. We have implemented
                 the proposed technique for PHP, the most widely-used
                 web scripting language. Our tool successfully
                 discovered previously unknown and sometimes subtle
                 vulnerabilities in real-world programs, has a low false
                 positive rate, and scales to large programs (with
                 approx. 100K loc).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "static analysis; string analysis; web applications",
}

@Article{Perry:2007:FTT,
  author =       "Frances Perry and Lester Mackey and George A. Reis and
                 Jay Ligatti and David I. August and David Walker",
  title =        "Fault-tolerant typed assembly language",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "42--53",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250741",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A transient hardware fault occurs when an energetic
                 particle strikes a transistor, causing it to change
                 state. Although transient faults do not permanently
                 damage the hardware, they may corrupt computations by
                 altering stored values and signal transfers. In this
                 paper, we propose a new scheme for provably safe and
                 reliable computing in the presence of transient
                 hardware faults. In our scheme, software computations
                 are replicated to provide redundancy while special
                 instructions compare the independently computed results
                 to detect errors before writing critical data. In stark
                 contrast to any previous efforts in this area, we have
                 analyzed our fault tolerance scheme from a formal,
                 theoretical perspective. To be specific, first, we
                 provide an operational semantics for our assembly
                 language, which includes a precise formal definition of
                 our fault model. Second, we develop an assembly-level
                 type system designed to detect reliability problems in
                 compiled code. Third, we provide a formal specification
                 for program fault tolerance under the given fault model
                 and prove that all well-typed programs are indeed fault
                 tolerant. In addition to the formal analysis, we
                 evaluate our detection scheme and show that it only
                 takes 34\% longer to execute than the unreliable
                 version.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "fault tolerance; soft faults; transient hardware
                 faults; typed assembly language",
}

@Article{Chlipala:2007:CTP,
  author =       "Adam Chlipala",
  title =        "A certified type-preserving compiler from lambda
                 calculus to assembly language",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "54--65",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250742",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a certified compiler from the simply-typed
                 lambda calculus to assembly language. The compiler is
                 certified in the sense that it comes with a
                 machine-checked proof of semantics preservation,
                 performed with the Coq proof assistant. The compiler
                 and the terms of its several intermediate languages are
                 given dependent types that guarantee that only
                 well-typed programs are representable. Thus, type
                 preservation for each compiler pass follows without any
                 significant 'proofs' of the usual kind. Semantics
                 preservation is proved based on denotational semantics
                 assigned to the intermediate languages. We demonstrate
                 how working with a type-preserving compiler enables
                 type-directed proof search to discharge large parts of
                 our proof obligations automatically.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler verification; denotational semantics;
                 dependent types; interactive proof assistants",
}

@Article{Cai:2007:CSM,
  author =       "Hongxu Cai and Zhong Shao and Alexander Vaynberg",
  title =        "Certified self-modifying code",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "66--77",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250743",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Self-modifying code (SMC), in this paper, broadly
                 refers to any program that loads, generates, or mutates
                 code at runtime. It is widely used in many of the
                 world's critical software systems to support runtime
                 code generation and optimization, dynamic loading and
                 linking, OS boot loader, just-in-time compilation,
                 binary translation,or dynamic code encryption and
                 obfuscation. Unfortunately, SMC is also extremely
                 difficult to reason about: existing formal verification
                 techniques-including Hoare logic and type
                 system-consistently assume that program code stored in
                 memory is fixed and immutable; this severely limits
                 their applicability and power.\par

                 This paper presents a simple but novel Hoare-logic-like
                 framework that supports modular verification of general
                 von-Neumann machine code with runtime code
                 manipulation. By dropping the assumption that code
                 memory is fixed and immutable, we are forced to apply
                 local reasoning and separation logic at the very
                 beginning, and treat program code uniformly as regular
                 data structure. We address the interaction between
                 separation and code memory and show how to establish
                 the frame rules for local reasoning even in the
                 presence of SMC. Our framework is realistic, but
                 designed to be highly generic, so that it can support
                 assembly code under all modern CPUs (including both x86
                 and MIPS). Our system is expressive and fully
                 mechanized. We prove its soundness in the Coq proof
                 assistant and demonstrate its power by certifying a
                 series of realistic examples and applications-all of
                 which can directly run on the SPIM simulator or any
                 stock x86 hardware.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "assembly code verification; Hoare logic; modular
                 verification; runtime code manipulation; self-modifying
                 code",
}

@Article{Shpeisman:2007:EIO,
  author =       "Tatiana Shpeisman and Vijay Menon and Ali-Reza
                 Adl-Tabatabai and Steven Balensiefer and Dan Grossman
                 and Richard L. Hudson and Katherine F. Moore and Bratin
                 Saha",
  title =        "Enforcing isolation and ordering in {STM}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "78--88",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250744",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transactional memory provides a new concurrency
                 control mechanism that avoids many of the pitfalls of
                 lock-based synchronization. High-performance software
                 transactional memory (STM) implementations thus far
                 provide weak atomicity: Accessing shared data both
                 inside and outside a transaction can result in
                 unexpected, implementation-dependent behavior. To
                 guarantee isolation and consistent ordering in such a
                 system, programmers are expected to enclose all
                 shared-memory accesses inside transactions.\par

                 A system that provides strong atomicity guarantees
                 isolation even in the presence of threads that access
                 shared data outside transactions. A strongly-atomic
                 system also orders transactions with conflicting
                 non-transactional memory operations in a consistent
                 manner.\par

                 In this paper, we discuss some surprising pitfalls of
                 weak atomicity, and we present an STM system that
                 avoids these problems via strong atomicity. We
                 demonstrate how to implement non-transactional data
                 accesses via efficient read and write barriers, and we
                 present compiler optimizations that further reduce the
                 overheads of these barriers. We introduce a dynamic
                 escape analysis that differentiates private and public
                 data at runtime to make barriers cheaper and a static
                 not-accessed-in-transaction analysis that removes many
                 barriers completely. Our results on a set of Java
                 programs show that strong atomicity can be implemented
                 efficiently in a high-performance STM system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code generation; compiler optimizations; escape
                 analysis; isolation; ordering; strong atomicity;
                 transactional memory; virtual machines; weak
                 atomicity",
}

@Article{Nethercote:2007:VFH,
  author =       "Nicholas Nethercote and Julian Seward",
  title =        "{Valgrind}: a framework for heavyweight dynamic binary
                 instrumentation",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "89--100",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250746",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Dynamic binary instrumentation (DBI) frameworks make
                 it easy to build dynamic binary analysis (DBA) tools
                 such as checkers and profilers. Much of the focus on
                 DBI frameworks has been on performance; little
                 attention has been paid to their capabilities. As a
                 result, we believe the potential of DBI has not been
                 fully exploited.\par

                 In this paper we describe Valgrind, a DBI framework
                 designed for building heavyweight DBA tools. We focus
                 on its unique support for shadow values -a powerful but
                 previously little-studied and difficult-to-implement
                 DBA technique, which requires a tool to shadow every
                 register and memory value with another value that
                 describes it. This support accounts for several crucial
                 design features that distinguish Valgrind from other
                 DBI frameworks. Because of these features, lightweight
                 tools built with Valgrind run comparatively slowly, but
                 Valgrind can be used to build more interesting,
                 heavyweight tools that are difficult or impossible to
                 build with other DBI frameworks such as Pin and
                 DynamoRIO.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic binary analysis; dynamic binary
                 instrumentation; Memcheck; shadow values; Valgrind",
}

@Article{Ha:2007:IER,
  author =       "Jungwoo Ha and Christopher J. Rossbach and Jason V.
                 Davis and Indrajit Roy and Hany E. Ramadan and Donald
                 E. Porter and David L. Chen and Emmett Witchel",
  title =        "Improved error reporting for software that uses
                 black-box components",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "101--111",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250747",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "An error occurs when software cannot complete a
                 requested action as a result of some problem with its
                 input, configuration, or environment. A high-quality
                 error report allows a user to understand and correct
                 the problem. Unfortunately, the quality of error
                 reports has been decreasing as software becomes more
                 complex and layered. End-users take the cryptic error
                 messages given to them by programs and struggle to fix
                 their problems using search engines and support
                 websites. Developers cannot improve their error
                 messages when they receive an ambiguous or otherwise
                 insufficient error indicator from a black-box software
                 component.\par

                 We introduce Clarify, a system that improves error
                 reporting by classifying application behavior. Clarify
                 uses minimally invasive monitoring to generate a
                 behavior profile, which is a summary of the program's
                 execution history. A machine learning classifier uses
                 the behavior profile to classify the application's
                 behavior, thereby enabling a more precise error report
                 than the output of the application itself.\par

                 We evaluate a prototype Clarify system on ambiguous
                 error messages generated by large, modern applications
                 like gcc, La-TeX, and the Linux kernel. For a
                 performance cost of less than 1\% on user applications
                 and 4.7\% on the Linux kernel, the proto type correctly
                 disambiguates at least 85\% of application behaviors
                 that result in ambiguous error reports. This accuracy
                 does not degrade significantly with more behaviors: a
                 Clarify classifier for 81 La-TeX error messages is at
                 most 2.5\% less accurate than a classifier for 27 LaTeX
                 error messages. Finally, we show that without any human
                 effort to build a classifier, Clarify can provide
                 nearest-neighbor software support, where users who
                 experience a problem are told about 5 other users who
                 might have had the same problem. On average 2.3 of the
                 5 users that Clarify identifies have experienced the
                 same problem.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "classification; error report; machine learning;
                 profiling; software support",
}

@Article{Sridharan:2007:TS,
  author =       "Manu Sridharan and Stephen J. Fink and Rastislav
                 Bodik",
  title =        "Thin slicing",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "112--122",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250748",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Program slicing systematically identifies parts of a
                 program relevant to a seed statement. Unfortunately,
                 slices of modern programs often grow too large for
                 human consumption. We argue that unwieldy slices arise
                 primarily from an overly broad definition of relevance,
                 rather than from analysis imprecision. While a
                 traditional slice includes all statements that may
                 affect a point of interest, not all such statements
                 appear equally relevant to a human.\par

                 As an improved method of finding relevant statements,
                 we propose thin slicing. A thin slice consists only of
                 producer statements for the seed, i.e., those
                 statements that help compute and copy a value to the
                 seed. Statements that explain why producers affect the
                 seed are excluded. For example, for a seed that reads a
                 value from a container object, a thin slice includes
                 statements that store the value into the container, but
                 excludes statements that manipulate pointers to the
                 container itself. Thin slices can also be
                 hierarchically expanded to include statements
                 explaining how producers affect the seed, yielding a
                 traditional slice in the limit.\par

                 We evaluated thin slicing for a set of debugging and
                 program understanding tasks. The evaluation showed that
                 thin slices usually included the desired statements for
                 the tasks (e.g., the buggy statement for a debugging
                 task). Furthermore, in simulated use of a slicing tool,
                 thin slices revealed desired statements after
                 inspecting 3.3 times fewer statements than traditional
                 slicing for our debugging tasks and 9.4 times fewer
                 statements for our program understanding tasks.
                 Finally, our thin slicing algorithm scales well to
                 relatively large Java benchmarks, suggesting that thin
                 slicing represents an attractive option for practical
                 tools.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debugging; program understanding; slicing",
}

@Article{Ramanathan:2007:SSI,
  author =       "Murali Krishna Ramanathan and Ananth Grama and Suresh
                 Jagannathan",
  title =        "Static specification inference using predicate
                 mining",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "123--134",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250749",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The reliability and correctness of complex software
                 systems can be significantly enhanced through
                 well-defined specifications that dictate the use of
                 various units of abstraction (e.g., modules, or
                 procedures). Often times, however, specifications are
                 either missing, imprecise, or simply too complex to
                 encode within a signature, necessitating specification
                 inference. The process of inferring specifications from
                 complex software systems forms the focus of this paper.
                 We describe a static inference mechanism for
                 identifying the preconditions that must hold whenever a
                 procedure is called. These preconditions may reflect
                 both data flow properties (e.g., whenever $p$ is
                 called, variable $x$ must be non-null) as well as
                 control-flow properties (e.g., every call to $p$ must
                 be preceded by a call to $q$). We derive these
                 preconditions using an inter-procedural path-sensitive
                 dataflow analysis that gathers predicates at each
                 program point. We apply mining techniques to these
                 predicates to make specification inference robust to
                 errors. This technique also allows us to derive
                 higher-level specifications that abstract structural
                 similarities among predicates (e.g., procedure $p$ is
                 called immediately after a conditional test that checks
                 whether some variable $v$ is non-null.) We describe an
                 implementation of these techniques, and validate the
                 effectiveness of the approach on a number of large
                 open-source benchmarks. Experimental results confirm
                 that our mining algorithms are efficient, and that the
                 specifications derived are both precise and useful-the
                 implementation discovers several critical, yet
                 previously, undocumented preconditions for well-tested
                 libraries.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "preconditions; predicate mining; program analysis;
                 specification inference",
}

@Article{Scherpelz:2007:AIO,
  author =       "Erika Rice Scherpelz and Sorin Lerner and Craig
                 Chambers",
  title =        "Automatic inference of optimizer flow functions from
                 semantic meanings",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "135--145",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250750",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Previous work presented a language called Rhodium for
                 writing program analyses and transformations, in the
                 form of declarative flow functions that propagate
                 instances of user-defined dataflow fact schemas. Each
                 dataflow fact schema specifies a semantic meaning,
                 which allows the Rhodium system to automatically verify
                 the correctness of the user's flow functions. In this
                 work, we have reversed the roles of the flow functions
                 and semantic meanings: rather than checking the
                 correctness of the user-written flow functions using
                 the facts' semantic meanings, we automatically infer
                 correct flow functions solely from the meanings of the
                 dataflow fact schemas. We have implemented our
                 algorithm for inferring flow functions from fact
                 schemas in the context of the Whirlwind compiler, and
                 have used this implementation to infer flow functions
                 for a variety of fact schemas. The automatically
                 generated flow functions cover most of the situations
                 covered by an earlier suite of handwritten rules.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Morita:2007:AIG,
  author =       "Kazutaka Morita and Akimasa Morihata and Kiminori
                 Matsuzaki and Zhenjiang Hu and Masato Takeichi",
  title =        "Automatic inversion generates divide-and-conquer
                 parallel programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "146--155",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250752",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Divide-and-conquer algorithms are suitable for modern
                 parallel machines, tending to have large amounts of
                 inherent parallelism and working well with caches and
                 deep memory hierarchies. Among others, list
                 homomorphisms are a class of recursive functions on
                 lists, which match very well with the
                 divide-and-conquer paradigm. However, direct
                 programming with list homomorphisms is a challenge for
                 many programmers. In this paper, we propose and
                 implement a novel system that can automatically derive
                 cost-optimal list homomorphisms from a pair of
                 sequential programs, based on the third homomorphism
                 theorem. Our idea is to reduce extraction of list
                 homomorphisms to derivation of weak right inverses. We
                 show that a weak right inverse always exists and can be
                 automatically generated from a wide class of sequential
                 programs. We demonstrate our system with several
                 nontrivial examples, including the maximum prefix sum
                 problem, the prefix sum computation, the maximum
                 segment sum problem, and the line-of-sight problem. The
                 experimental results show practical efficiency of our
                 automatic parallelization algorithm and good speedups
                 of the generated parallel programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "divide-and-conquer parallelism; inversion; program
                 transformation; third homomorphism theorem",
}

@Article{Wang:2007:EAP,
  author =       "Perry H. Wang and Jamison D. Collins and Gautham N.
                 Chinya and Hong Jiang and Xinmin Tian and Milind Girkar
                 and Nick Y. Yang and Guei-Yuan Lueh and Hong Wang",
  title =        "{EXOCHI}: architecture and programming environment for
                 a heterogeneous multi-core multithreaded system",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "156--166",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250753",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Future mainstream microprocessors will likely
                 integrate specialized accelerators, such as GPUs, onto
                 a single die to achieve better performance and power
                 efficiency. However, it remains a keen challenge to
                 program such a heterogeneous multicore platform, since
                 these specialized accelerators feature ISAs and
                 functionality that are significantly different from the
                 general purpose CPU cores. In this paper, we present
                 EXOCHI: (1) Exoskeleton Sequencer (EXO), an
                 architecture to represent heterogeneous accelerators as
                 ISA-based MIMD architecture resources, and a shared
                 virtual memory heterogeneous multithreaded program
                 execution model that tightly couples specialized
                 accelerator cores with general-purpose CPU cores, and
                 (2) C for Heterogeneous Integration (CHI), an
                 integrated C/C++ programming environment that supports
                 accelerator-specific inline assembly and
                 domain-specific languages. The CHI compiler extends the
                 OpenMP pragma for heterogeneous multithreading
                 programming, and produces a single fat binary with code
                 sections corresponding to different instruction sets.
                 The runtime can judiciously spread parallel computation
                 across the heterogeneous cores to optimize performance
                 and power.\par

                 We have prototyped the EXO architecture on a physical
                 heterogeneous platform consisting of an Intel{\reg}
                 Core{\TM} 2 Duo processor and an 8-core 32-thread
                 Intel{\reg} Graphics Media Accelerator X3000. In
                 addition, we have implemented the CHI integrated
                 programming environment with the Intel{\reg} C++
                 Compiler, runtime toolset, and debugger. On the EXO
                 prototype system, we have enhanced a suite of
                 production-quality media kernels for video and image
                 processing to utilize the accelerator through the CHI
                 programming interface, achieving significant speedup
                 (1.41X to10.97X) over execution on the IA32 CPU
                 alone.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "GPU; heterogeneous multi-cores; openMP",
}

@Article{Solar-Lezama:2007:SS,
  author =       "Armando Solar-Lezama and Gilad Arnold and Liviu Tancau
                 and Rastislav Bodik and Vijay Saraswat and Sanjit
                 Seshia",
  title =        "Sketching stencils",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "167--178",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250754",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Performance of stencil computations can be
                 significantly improved through smart implementations
                 that improve memory locality, computation reuse, or
                 parallelize the computation. Unfortunately, efficient
                 implementations are hard to obtain because they often
                 involve non-traditional transformations, which means
                 that they cannot be produced by optimizing the
                 reference stencil with a compiler. In fact, many
                 stencils are produced by code generators that were
                 tediously handcrafted.\par

                 In this paper, we show how stencil implementations can
                 be produced with sketching. Sketching is a software
                 synthesis approach where the programmer develops a
                 partial implementation--a sketch--and a separate
                 specification of the desired functionality given by a
                 reference (unoptimized) stencil. The synthesizer then
                 completes the sketch to behave like the specification,
                 filling in code fragments that are difficult to develop
                 manually.\par

                 Existing sketching systems work only for small finite
                 programs, i.e.,, programs that can be represented as
                 small Boolean circuits. In this paper, we develop a
                 sketching synthesizer that works for stencil
                 computations, a large class of programs that, unlike
                 circuits, have unbounded inputs and outputs, as well as
                 an unbounded number of computations. The key
                 contribution is a reduction algorithm that turns a
                 stencil into a circuit, allowing us to synthesize
                 stencils using an existing sketching synthesizer.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "SAT; sketching; stencil",
}

@Article{Killian:2007:MLS,
  author =       "Charles Edwin Killian and James W. Anderson and Ryan
                 Braud and Ranjit Jhala and Amin M. Vahdat",
  title =        "{Mace}: language support for building distributed
                 systems",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "179--188",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250755",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Building distributed systems is particularly difficult
                 because of the asynchronous, heterogeneous, and
                 failure-prone environment where these systems must run.
                 Tools for building distributed systems must strike a
                 compromise between reducing programmer effort and
                 increasing system efficiency. We present Mace, a C++
                 language extension and source-to-source compiler that
                 translates a concise but expressive distributed system
                 specification into a C++ implementation. Mace overcomes
                 the limitations of low-level languages by providing a
                 unified framework for networking and event handling,
                 and the limitations of high-level languages by allowing
                 programmers to write program components in a controlled
                 and structured manner in C++. By imposing structure and
                 restrictions on how applications can be written, Mace
                 supports debugging at a higher level, including support
                 for efficient model checking and causal-path debugging.
                 Because Mace programs compile to C++, programmers can
                 use existing C++ tools, including optimizers,
                 profilers, and debuggers to analyze their systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; debugging; distributed systems; domain
                 specific languages; event driven programming; Mace;
                 model checking",
}

@Article{Li:2007:CET,
  author =       "Peng Li and Steve Zdancewic",
  title =        "Combining events and threads for scalable network
                 services implementation and evaluation of monadic,
                 application-level concurrency primitives",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "189--199",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250756",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper proposes to combine two seemingly opposed
                 programming models for building massively concurrent
                 network services: the event-driven model and the
                 multithreaded model. The result is a hybrid design that
                 offers the best of both worlds--the ease of use and
                 expressiveness of threads and the flexibility and
                 performance of events.\par

                 This paper shows how the hybrid model can be
                 implemented entirely at the application level using
                 concurrency monads in Haskell, which provides type-safe
                 abstractions for both events and threads. This approach
                 simplifies the development of massively concurrent
                 software in a way that scales to real-world network
                 services. The Haskell implementation supports
                 exceptions, symmetrical multiprocessing, software
                 transactional memory, asynchronous I/O mechanisms and
                 application-level network protocol stacks. Experimental
                 results demonstrate that this monad-based approach has
                 good performance: the threads are extremely lightweight
                 (scaling to ten million threads), and the I/O
                 performance compares favorably to that of Linux NPTL.
                 tens of thousands of simultaneous, mostly-idle client
                 connections. Such massively-concurrent programs are
                 difficult to implement, especially when other
                 requirements, such as high performance and strong
                 security, must also be met.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; event; Haskell; implementation; monad;
                 networking; programming; scalability; thread",
}

@Article{Kothari:2007:REP,
  author =       "Nupur Kothari and Ramakrishna Gummadi and Todd
                 Millstein and Ramesh Govindan",
  title =        "Reliable and efficient programming abstractions for
                 wireless sensor networks",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "200--210",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250757",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It is currently difficult to build practical and
                 reliable programming systems out of distributed and
                 resource-constrained sensor devices. The state of the
                 art in today's sensor-net programming is centered
                 around a component-based language called nesC. nesC is
                 a node-level language-a program is written for an
                 individual node in the network-and nesC programs use
                 the services of an operating system called TinyOS. We
                 are pursuing an approach to programming sensor networks
                 that significantly raises the level of abstraction over
                 this practice. The critical change is one of
                 perspective: rather than writing programs from the
                 point of view of an individual node, programmers
                 implement a central program that conceptually has
                 access to the entire network. This approach pushes to
                 the compiler the task of producing node-level programs
                 that implement the desired behavior.\par

                 We present the Pleiades programming language, its
                 compiler, and its runtime. The Pleiades language
                 extends the C language with constructs that allow
                 programmers to name and access node-local state within
                 the network and to specify simple forms of concurrent
                 execution. The compiler and runtime system cooperate to
                 implement Pleiades programs efficiently and reliably.
                 First, the compiler employs a novel program analysis to
                 translate Pleiades programs into message-efficient
                 units of work implemented in nesC. The Pleiades runtime
                 system orchestrates execution of these units, using
                 TinyOS services, across a network of sensor nodes.
                 Second, the compiler and runtime system employ novel
                 locking, deadlock detection, and deadlock recovery
                 algorithms that guarantee serializability in the face
                 of concurrent execution. We illustrate the readability,
                 reliability and efficiency benefits of the Pleiades
                 language through detailed experiments, and demonstrate
                 that the Pleiades implementation of a realistic
                 application performs similar to a hand-coded nesC
                 version that contains more than ten times as much
                 code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "deadlocks; energy efficiency; macroprogramming;
                 serializability; wireless sensor networks",
}

@Article{Kulkarni:2007:OPR,
  author =       "Milind Kulkarni and Keshav Pingali and Bruce Walter
                 and Ganesh Ramanarayanan and Kavita Bala and L. Paul
                 Chew",
  title =        "Optimistic parallelism requires abstractions",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "211--222",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250759",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Irregular applications, which manipulate large,
                 pointer-based data structures like graphs, are
                 difficult to parallelize manually. Automatic tools and
                 techniques such as restructuring compilers and run-time
                 speculative execution have failed to uncover much
                 parallelism in these applications, in spite of a lot of
                 effort by the research community. These difficulties
                 have even led some researchers to wonder if there is
                 any coarse-grain parallelism worth exploiting in
                 irregular applications.\par

                 In this paper, we describe two real-world irregular
                 applications: a Delaunay mesh refinement application
                 and a graphics application that performs agglomerative
                 clustering. By studying the algorithms and data
                 structures used in these applications, we show that
                 there is substantial coarse-grain, data parallelism in
                 these applications, but that this parallelism is very
                 dependent on the input data and therefore cannot be
                 uncovered by compiler analysis. In principle,
                 optimistic techniques such as thread-level speculation
                 can be used to uncover this parallelism, but we argue
                 that current implementations cannot accomplish this
                 because they do not use the proper abstractions for the
                 data structures in these programs.\par

                 These insights have informed our design of the Galois
                 system, an object-based optimistic parallelization
                 system for irregular applications. There are three main
                 aspects to Galois: (1) a small number of syntactic
                 constructs for packaging optimistic parallelism as
                 iteration over ordered and unordered sets,
                 (2)assertions about methods in class libraries, and (3)
                 a runtime scheme for detecting and recovering from
                 potentially unsafe accesses to shared memory made by an
                 optimistic computation.\par

                 We show that Delaunay mesh generation and agglomerative
                 clustering can be parallelized in a straight-forward
                 way using the Galois approach, and we present
                 experimental measurements to show that this approach is
                 practical. These results suggest that Galois is a
                 practical approach to exploiting data parallelism in
                 irregular programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstractions; irregular programs; optimistic
                 parallelism",
}

@Article{Ding:2007:SBO,
  author =       "Chen Ding and Xipeng Shen and Kirk Kelsey and Chris
                 Tice and Ruke Huang and Chengliang Zhang",
  title =        "Software behavior oriented parallelization",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "223--234",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250760",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many sequential applications are difficult to
                 parallelize because of unpredictable control flow,
                 indirect data access, and input-dependent parallelism.
                 These difficulties led us to build a software system
                 for behavior oriented parallelization (BOP), which
                 allows a program to be parallelized based on partial
                 information about program behavior, for example, a user
                 reading just part of the source code, or a profiling
                 tool examining merely one or few executions.\par

                 The basis of BOP is programmable software speculation,
                 where a user or an analysis tool marks possibly
                 parallel regions in the code, and the run-time system
                 executes these regions speculatively. It is imperative
                 to protect the entire address space during speculation.
                 The main goal of the paper is to demonstrate that the
                 general protection can be made cost effective by three
                 novel techniques: programmable speculation,
                 critical-path minimization, and value-based correctness
                 checking. On a recently acquired multi-core,
                 multi-processor PC, the BOP system reduced the
                 end-to-end execution time by integer factors for a Lisp
                 interpreter, a data compressor, a language parser, and
                 a scientific library, with no change to the underlying
                 hardware or operating system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "program behavior; speculative parallelization",
}

@Article{Krishnamoorthy:2007:EAP,
  author =       "Sriram Krishnamoorthy and Muthu Baskaran and Uday
                 Bondhugula and J. Ramanujam and Atanas Rountev and P.
                 Sadayappan",
  title =        "Effective automatic parallelization of stencil
                 computations",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "235--244",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250761",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Performance optimization of stencil computations has
                 been widely studied in the literature, since they occur
                 in many computationally intensive scientific and
                 engineering applications. Compiler frameworks have also
                 been developed that can transform sequential stencil
                 codes for optimization of data locality and
                 parallelism. However, loop skewing is typically
                 required in order to tile stencil codes along the time
                 dimension, resulting in load imbalance in pipelined
                 parallel execution of the tiles. In this paper, we
                 develop an approach for automatic parallelization of
                 stencil codes, that explicitly addresses the issue of
                 load-balanced execution of tiles. Experimental results
                 are provided that demonstrate the effectiveness of the
                 approach.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic parallelization; load; stencil computations;
                 tiling",
}

@Article{Elmas:2007:GRT,
  author =       "Tayfun Elmas and Shaz Qadeer and Serdar Tasiran",
  title =        "{Goldilocks}: a race and transaction-aware {Java}
                 runtime",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "245--255",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250762",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Data races often result in unexpected and erroneous
                 behavior. In addition to causing data corruption and
                 leading programs to crash, the presence of data races
                 complicates the semantics of an execution which might
                 no longer be sequentially consistent. Motivated by
                 these observations, we have designed and implemented a
                 Java runtime system that monitors program executions
                 and throws a DataRaceException when a data race is
                 about to occur. Analogous to other runtime exceptions,
                 the DataRaceException provides two key benefits. First,
                 accesses causing race conditions are interrupted and
                 handled before they cause errors that may be difficult
                 to diagnose later. Second, if no DataRaceException is
                 thrown in an execution, it is guaranteed to be
                 sequentially consistent. This strong guarantee helps to
                 rule out many concurrency-related possibilities as the
                 cause of erroneous behavior. When a DataRaceException
                 is caught, the operation, thread, or program causing it
                 can be terminated gracefully. Alternatively, the
                 DataRaceException can serve as a conflict-detection
                 mechanism in optimistic uses of concurrency.\par

                 We start with the definition of data-race-free
                 executions in the Java memory model. We generalize this
                 definition to executions that use transactions in
                 addition to locks and volatile variables for
                 synchronization. We present a precise and efficient
                 algorithm for dynamically verifying that an execution
                 is free of data races. This algorithm generalizes the
                 Goldilocks algorithm for data-race detection by
                 handling transactions and providing the ability to
                 distinguish between read and write accesses. We have
                 implemented our algorithm and the DataRaceException in
                 the Kaffe Java Virtual Machine. We have evaluated our
                 system on a variety of publicly available Java
                 benchmarks and a few microbenchmarks that combine
                 lock-based and transaction-based synchronization. Our
                 experiments indicate that our implementation has
                 reasonable overhead. Therefore, we believe that in
                 addition to being a debugging tool, the
                 DataRaceException may be a viable mechanism to enforce
                 the safety of executions of multithreaded Java
                 programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data-race detection; Java runtime; runtime monitoring;
                 software transactions",
}

@Article{Guo:2007:SAI,
  author =       "Bolei Guo and Neil Vachharajani and David I. August",
  title =        "Shape analysis with inductive recursion synthesis",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "256--265",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250764",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Separation logic with recursively defined predicates
                 allows for concise yet precise description of the
                 shapes of data structures. However, most uses of
                 separation logic for program analysis rely on
                 pre-defined recursive predicates, limiting the class of
                 programs analyzable to those that manipulate only a
                 priori data structures. This paper describes a general
                 algorithm based on inductive program synthesis that
                 automatically infers recursive shape invariants,
                 yielding a shape analysis based on separation logic
                 that can be applied to any program.\par

                 A key strength of separation logic is that it
                 facilitates, via explicit expression of structural
                 separation, local reasoning about heap where the
                 effects of altering one part of a data structure are
                 analyzed in isolation from the rest. The interaction
                 between local reasoning and the global invariants given
                 by recursive predicates is a difficult area, especially
                 in the presence of complex internal sharing in the data
                 structures. Existing approaches, using logic rules
                 specifically designed for the list predicate to unfold
                 and fold linked-lists, again require a priori knowledge
                 about the shapes of the data structures and do not
                 easily generalize to more complex data structures. We
                 introduce a notion of 'truncation points' in a
                 recursive predicate, which gives rise to generic
                 algorithms for unfolding and folding arbitrary data
                 structures.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "artificial intelligence; inductive recursion
                 synthesis; loop invariant inference; separation logic;
                 shape analysis",
}

@Article{Gotsman:2007:TMS,
  author =       "Alexey Gotsman and Josh Berdine and Byron Cook and
                 Mooly Sagiv",
  title =        "Thread-modular shape analysis",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "266--277",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250765",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present the first shape analysis for multithreaded
                 programs that avoids the explicit enumeration of
                 execution-interleavings. Our approach is to
                 automatically infer a resource invariant associated
                 with each lock that describes the part of the heap
                 protected by the lock. This allows us to use a
                 sequential shape analysis on each thread. We show that
                 resource invariants of a certain class can be
                 characterized as least fixed points and computed via
                 repeated applications of shape analysis only on each
                 individual thread. Based on this approach, we have
                 implemented a thread-modular shape analysis tool and
                 applied it to concurrent heap-manipulating code from
                 Windows device drivers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpretation; concurrent programming; shape
                 analysis; static analysis",
}

@Article{Lattner:2007:MCS,
  author =       "Chris Lattner and Andrew Lenharth and Vikram Adve",
  title =        "Making context-sensitive points-to analysis with heap
                 cloning practical for the real world",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "278--289",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250766",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Context-sensitive pointer analysis algorithms with
                 full 'heapcloning' are powerful but are widely
                 considered to be too expensive to include in production
                 compilers. This paper shows, for the first time, that a
                 context-sensitive, field-sensitive algorithm with
                 fullheap cloning (by acyclic call paths) can indeed be
                 both scalable and extremely fast in practice. Overall,
                 the algorithm is able to analyze programs in the range
                 of 100K-200K lines of C code in 1-3 seconds,takes less
                 than 5\% of the time it takes for GCC to compile the
                 code (which includes no whole-program analysis), and
                 scales well across five orders of magnitude of code
                 size. It is also able to analyze the Linux kernel
                 (about 355K lines of code) in 3.1 seconds. The paper
                 describes the major algorithmic and engineering design
                 choices that are required to achieve these results,
                 including (a) using flow-insensitive and
                 unification-based analysis, which are essential to
                 avoid exponential behavior in practice;(b) sacrificing
                 context-sensitivity within strongly connected
                 components of the call graph; and (c) carefully
                 eliminating several kinds of O(N$^2$) behaviors
                 (largely without affecting precision). The techniques
                 used for (b) and (c) eliminated several major
                 bottlenecks to scalability, and both are generalizable
                 to other context-sensitive algorithms. We show that the
                 engineering choices collectively reduce analysis time
                 by factors of up to 10x-15xin our larger programs, and
                 have found that the savings grow strongly with program
                 size. Finally, we briefly summarize results
                 demonstrating the precision of the analysis.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "context-sensitive; field-sensitive; interprocedural;
                 pointer analysis; recursive data structure; static
                 analysis",
}

@Article{Hardekopf:2007:AGF,
  author =       "Ben Hardekopf and Calvin Lin",
  title =        "The ant and the grasshopper: fast and accurate pointer
                 analysis for millions of lines of code",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "290--299",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250767",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Pointer information is a prerequisite for most program
                 analyses, and the quality of this information can
                 greatly affect their precision and performance.
                 Inclusion-based (i.e. Andersen-style) pointer analysis
                 is an important point in the space of pointer analyses,
                 offering a potential sweet-spot in the trade-off
                 between precision and performance. However, current
                 techniques for inclusion-based pointer analysis can
                 have difficulties delivering on this potential.\par

                 We introduce and evaluate two novel techniques for
                 inclusion-based pointer analysis---one lazy, one
                 eager$^1$ ---that significantly improve upon the
                 current state-of-the-art without impacting precision.
                 These techniques focus on the problem of online cycle
                 detection, a critical optimization for scaling such
                 analyses. Using a suite of six open-source C programs,
                 which range in size from 169K to 2.17M LOC, we compare
                 our techniques against the three best inclusion-based
                 analyses--described by Heintze and Tardieu [11], by
                 Pearce et al. [21], and by Berndl et al. [4]. The
                 combination of our two techniques results in an
                 algorithm which is on average $3.2 \times$ faster than
                 Heintze and Tardieu's algorithm, $6.4 \times$ faster
                 than Pearce et al.'s algorithm, and $20.6 \times$
                 faster than Berndl et al.'s algorithm.\par

                 We also investigate the use of different data
                 structures to represent points-to sets, examining the
                 impact on both performance and memory consumption. We
                 compare a sparse-bitmap implementation used in the GCC
                 compiler with a BDD-based implementation, and we find
                 that the BDD implementation is on average $2 \times$
                 slower than using sparse bitmaps but uses $5.5 \times$
                 less memory.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "pointer analysis",
}

@Article{Beyer:2007:PI,
  author =       "Dirk Beyer and Thomas A. Henzinger and Rupak Majumdar
                 and Andrey Rybalchenko",
  title =        "Path invariants",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "300--309",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250769",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The success of software verification depends on the
                 ability to find a suitable abstraction of a program
                 automatically. We propose a method for automated
                 abstraction refinement which overcomes some limitations
                 of current predicate discovery schemes. In current
                 schemes, the cause of a false alarm is identified as an
                 infeasible error path, and the abstraction is refined
                 in order to remove that path. By contrast, we view the
                 cause of a false alarm -the spurious counterexample ---
                 as a full-fledged program, namely, a fragment of the
                 original program whose control-flow graph may contain
                 loops and represent unbounded computations. There are
                 two advantages to using such path programs as
                 counterexamples for abstraction refinement. First, we
                 can bring the whole machinery of program analysis to
                 bear on path programs, which are typically small
                 compared to the original program. Specifically, we use
                 constraint-based invariant generation to automatically
                 infer invariants of path programs-so-called path
                 invariants. Second, we use path invariants for
                 abstraction refinement in order to remove not one
                 infeasibility at a time, but at once all (possibly
                 infinitely many) infeasible error computations that are
                 represented by a path program. Unlike previous
                 predicate discovery schemes, our method handles loops
                 without unrolling them; it infers abstractions that
                 involve universal quantification and naturally
                 incorporates disjunctive reasoning.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstraction refinement; formal verification; invariant
                 synthesis; predicate abstraction; software model
                 checking",
}

@Article{Shankar:2007:DAI,
  author =       "Ajeet Shankar and Rastislav Bod{\'\i}k",
  title =        "{DITTO}: automatic incrementalization of data
                 structure invariant checks (in {Java)}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "310--319",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250770",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present DITTO, an automatic incrementalizer for
                 dynamic, side-effect-free data structure invariant
                 checks. Incrementalization speeds up the execution of a
                 check by reusing its previous executions, checking the
                 invariant anew only the changed parts of the data
                 structure. DITTO exploits properties specific to the
                 domain of invariant checks to automate and simplify the
                 process without restricting what mutations the program
                 can perform. Our incrementalizer works for modern
                 imperative languages such as Java and C\#. It can
                 incrementalize,for example, verification of red-black
                 tree properties and the consistency of the hash code in
                 a hash table bucket. Our source-to-source
                 implementation for Java is automatic, portable, and
                 efficient. DITTO provides speedups on data structures
                 with as few as 100 elements; on larger data structures,
                 its speedups are characteristic of non-automatic
                 incrementalizers: roughly 5-fold at 5,000 elements,and
                 growing linearly with data structure size.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic; data structure invariants; dynamic
                 optimization; incrementalization; optimistic
                 memoization; program analysis",
}

@Article{Cook:2007:PTT,
  author =       "Byron Cook and Andreas Podelski and Andrey
                 Rybalchenko",
  title =        "Proving thread termination",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "320--330",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250771",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Concurrent programs are often designed such that
                 certain functions executing within critical threads
                 must terminate. Examples of such cases can be found in
                 operating systems, web servers, e-mail clients, etc.
                 Unfortunately, no known automatic program termination
                 prover supports a practical method of proving the
                 termination of threads. In this paper we describe such
                 a procedure. The procedure's scalability is achieved
                 through the use of environment models that abstract
                 away the surrounding threads. The procedure's accuracy
                 is due to a novel method of incrementally constructing
                 environment abstractions. Our method finds the
                 conditions that a thread requires of its environment in
                 order to establish termination by looking at the
                 conditions necessary to prove that certain paths
                 through the thread represent well-founded relations if
                 executed in isolation of the other threads. The paper
                 gives a description of experimental results using an
                 implementation of our procedure on Windows device
                 drivers and a description of a previously unknown bug
                 found with the tool.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; formal verification; model checking;
                 program verification; termination; threads",
}

@Article{Kodumal:2007:RAS,
  author =       "John Kodumal and Alex Aiken",
  title =        "Regularly annotated set constraints",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "331--341",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250772",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A general class of program analyses area combination
                 of context-free and regular language reachability. We
                 define regularly annotated set constraints, a
                 constraint formalism that captures this class. Our
                 results extend the class of reachability problems
                 expressible naturally in a single constraint formalism,
                 including such diverse applications as interprocedural
                 dataflow analysis, precise type-based flow analysis,
                 and pushdown model checking.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "annotated inclusion constraints; context-free language
                 reachability; flow analysis; pushdown model checking;
                 set constraints",
}

@Article{Geneves:2007:ESA,
  author =       "Pierre Genev{\`e}s and Nabil Laya{\"\i}da and Alan
                 Schmitt",
  title =        "Efficient static analysis of {XML} paths and types",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "342--351",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250773",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present an algorithm to solve XPath decision
                 problems under regular tree type constraints and show
                 its use to statically type-check XPath queries. To this
                 end, we prove the decidability of a logic with converse
                 for finite ordered trees whose time complexity is a
                 simple exponential of the size of a formula. The logic
                 corresponds to the alternation free modal
                 $\mu$-calculus without greatest fixpoint, restricted to
                 finite trees, and where formulas are
                 cycle-free.\par

                 Our proof method is based on two auxiliary results.
                 First, XML regular tree types and XPath expressions
                 have a linear translation to cycle-free formulas.
                 Second, the least and greatest fixpoints are equivalent
                 for finite trees, hence the logic is closed under
                 negation.\par

                 Building on these results, we describe a practical,
                 effective system for solving the satisfiability of a
                 formula. The system has been experimented with some
                 decision problems such as XPath emptiness, containment,
                 overlap, and coverage, with or without type
                 constraints. The benefit of the approach is that our
                 system can be effectively used in static analyzers for
                 programming languages manipulating both XPath
                 expressions and XML type annotations (as input and
                 output types).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "modal logic; satisfiability; type checking; XPath",
}

@Article{Titzer:2007:ESA,
  author =       "Ben L. Titzer and Joshua Auerbach and David F. Bacon
                 and Jens Palsberg",
  title =        "The {ExoVM} system for automatic {VM} and application
                 reduction",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "352--362",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250775",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Embedded systems pose unique challenges to Java
                 application developers and virtual machine designers.
                 Chief among these challenges is the memory footprint of
                 both the virtual machine and the applications that run
                 within it. With the rapidly increasing set of features
                 provided by the Java language, virtual machine
                 designers are often forced to build custom
                 implementations that make various tradeoffs between the
                 footprint of the virtual machine and the subset of the
                 Java language and class libraries that are supported.
                 In this paper, we present the ExoVM, a system in which
                 an application is initialized in a fully featured
                 virtual machine, and then the code, data, and virtual
                 machine features necessary to execute it are packaged
                 into a binary image. Key to this process is feature
                 analysis, a technique for computing the reachable code
                 and data of a Java program and its implementation
                 inside the VM simultaneously. The ExoVM reduces the
                 need to develop customized embedded virtual machines by
                 reusing a single VM infrastructure and automatically
                 eliding the implementation of unused Java features on a
                 per-program basis. We present a constraint-based
                 instantiation of the analysis technique, an
                 implementation in IBM's J9 Java VM, experiments
                 evaluating our technique for the EEMBC benchmark suite,
                 and some discussion of the individual costs of some of
                 Java's features. Our evaluation shows that our system
                 can reduce the non-heap memory allocation of the
                 virtual machine by as much as 75\%. We discuss VM and
                 language design decisions that our work shows are
                 important in targeting embedded systems, supporting the
                 long-term goal of a common VM infrastructure spanning
                 from motes to large servers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dead code elimination; embedded systems; feature
                 analysis; persistence; pre-initialization; static
                 analysis; static compilation; VM design; VM
                 modularity",
}

@Article{Cooprider:2007:OCC,
  author =       "Nathan Dean Cooprider and John David Regehr",
  title =        "Offline compression for on-chip {RAM}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "363--372",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250776",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present offline RAM compression, an automated
                 source-to-source transformation that reduces a
                 program's data size. Statically allocated scalars,
                 pointers, structures, and arrays are encoded and packed
                 based on the results of a whole-program analysis in the
                 value set and pointer set domains. We target embedded
                 software written in C that relies heavily on static
                 memory allocation and runs on Harvard-architecture
                 microcontrollers supporting just a few KB of on-chip
                 RAM. On a collection of embedded applications for AVR
                 microcontrollers, our transformation reduces RAM usage
                 by an average of 12\%, in addition to a 10\% reduction
                 through a dead-data elimination pass that is also
                 driven by our whole-program analysis, for a total RAM
                 savings of 22\%. We also developed a technique for
                 giving developers access to a flexible spectrum of
                 tradeoffs between RAM consumption, ROM consumption, and
                 CPU efficiency. This technique is based on a model for
                 estimating the cost/benefit ratio of compressing each
                 variable and then selectively compressing only those
                 variables that present a good value proposition in
                 terms of the desired tradeoffs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data compression; embedded software; memory
                 optimization; sensor networks; static analysis;
                 TinyOS",
}

@Article{Schneider:2007:OOD,
  author =       "Florian T. Schneider and Mathias Payer and Thomas R.
                 Gross",
  title =        "Online optimizations driven by hardware performance
                 monitoring",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "373--382",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250777",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Hardware performance monitors provide detailed direct
                 feedback about application behavior and are an
                 additional source of information that a compiler may
                 use for optimization. A JIT compiler is in a good
                 position to make use of such information because it is
                 running on the same platform as the user applications.
                 As hardware platforms become more and more complex, it
                 becomes more and more difficult to model their
                 behavior. Profile information that captures general
                 program properties (like execution frequency of methods
                 or basic blocks) may be useful, but does not capture
                 sufficient information about the execution platform.
                 Machine-level performance data obtained from a hardware
                 performance monitor can not only direct the compiler to
                 those parts of the program that deserve its attention
                 but also determine if an optimization step actually
                 improved the performance of the application.\par

                 This paper presents an infrastructure based on a
                 dynamic compiler+runtime environment for Java that
                 incorporates machine-level information as an additional
                 kind of feedback for the compiler and runtime
                 environment. The low-overhead monitoring system
                 provides fine-grained performance data that can be
                 tracked back to individual Java bytecode instructions.
                 As an example, the paper presents results for object
                 co-allocation in a generational garbage collector that
                 optimizes spatial locality of objects on-line using
                 measurements about cache misses. In the best case, the
                 execution time is reduced by 14\% and L1 cache misses
                 by 28\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic optimization; hardware performance monitors;
                 Java; just-in-time compilation",
}

@Article{Li:2007:UUC,
  author =       "Weijia Li and Youtao Zhang and Jun Yang and Jiang
                 Zheng",
  title =        "{UCC}: update-conscious compilation for energy
                 efficiency in wireless sensor networks",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "383--393",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250778",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Wireless sensor networks (WSN), composed of a large
                 number of low-cost, battery-powered sensors, have
                 recently emerged as promising computing platforms for
                 many non-traditional applications. The preloaded code
                 on remote sensors often needs to be updated after
                 deployment in order for the WSN to adapt to the
                 changing demands from the users. Post-deployment code
                 dissemination is challenging as the data are
                 transmitted via battery-powered wireless communication.
                 Recent studies show that the energy for sending a
                 single bit is about the same as executing 1000
                 instructions in aWSN. Therefore it is important to
                 achieve energy efficiency in code dissemination.\par

                 In this paper, we propose novel update-conscious
                 compilation(UCC) techniques for energy-efficient code
                 dissemination in WSNs. An update-conscious compiler,
                 when compiling the modified code, includes the
                 compilation decisions that were made when generating
                 the old binary. The compiler employs a detailed energy
                 model and strives to match the old decisions for a more
                 energy-efficient result. In most cases, matching the
                 previous decisions improves the binary code similarity,
                 reduces the amount of data to be transmitted to remote
                 sensors, and thus, consumes less energy. In this paper,
                 we develop update-conscious register allocation and
                 data layout algorithms. Our experimental results show
                 that they can achieve great improvements over the
                 traditional, update-oblivious approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code dissemination; register allocation; sensor
                 networks",
}

@Article{Li:2007:PDE,
  author =       "Feihui Li and Guangyu Chen and Mahmut Kandemir and
                 Ibrahim Kolcu",
  title =        "Profile-driven energy reduction in network-on-chips",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "394--404",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250779",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Reducing energy consumption of a Network-on-Chip (NoC)
                 is a critical design goal, especially for
                 power-constrained embedded systems. In response, prior
                 research has proposed several circuit/architectural
                 level mechanisms to reduce NoC power consumption. This
                 paper considers the problem from a different
                 perspective and demonstrates that compiler analysis can
                 be very helpful for enhancing the effectiveness of a
                 hardware-based link power management mechanism by
                 increasing the duration of communication links' idle
                 periods. The proposed profile-based approach achieves
                 its goal by maximizing the communication link reuse
                 through compiler-directed, static message re-routing.
                 That is, it clusters the required data communications
                 into a small set of communication links at any given
                 time, which increases the idle periods for the
                 remaining communication links in the network. This
                 helps hardware shut down more communication links and
                 their corresponding buffers to reduce leakage power.
                 The current experimental evaluation, with twelve
                 data-intensive embedded applications, shows that the
                 proposed profile-driven compiler approach reduces
                 leakage energy by more than 35\% (on average) as
                 compared to a pure hardware-based link power management
                 scheme.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler; Network-on-Chip; power; routing",
}

@Article{Renganarayanan:2007:PTL,
  author =       "Lakshminarayanan Renganarayanan and DaeGon Kim and
                 Sanjay Rajopadhye and Michelle Mills Strout",
  title =        "Parameterized tiled loops for free",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "405--414",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250780",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Parameterized tiled loops-where the tile sizes are not
                 fixed at compile time, but remain symbolic parameters
                 until later--are quite useful for iterative compilers
                 and 'auto-tuners' that produce highly optimized
                 libraries and codes. Tile size parameterization could
                 also enable optimizations such as register tiling to
                 become dynamic optimizations. Although it is easy to
                 generate such loops for (hyper) rectangular iteration
                 spaces tiled with (hyper) rectangular tiles, many
                 important computations do not fall into this restricted
                 domain. Parameterized tile code generation for the
                 general case of convex iteration spaces being tiled by
                 (hyper) rectangular tiles has in the past been solved
                 with bounding box approaches or symbolic Fourier
                 Motzkin approaches. However, both approaches have less
                 than ideal code generation efficiency and resulting
                 code quality. We present the theoretical foundations,
                 implementation, and experimental validation of a
                 simple, unified technique for generating parameterized
                 tiled code. Our code generation efficiency is
                 comparable to all existing code generation techniques
                 including those for fixed tile sizes, and the resulting
                 code is as efficient as, if not more than, all previous
                 techniques. Thus the technique provides parameterized
                 tiled loops for free! Our 'one-size-fits-all' solution,
                 which is available as open source software can be
                 adapted for use in production compilers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bounding box; code generation; Fourier-Motzkin
                 elimination; parameterized tiling",
}

@Article{Zhang:2007:TLE,
  author =       "Xiangyu Zhang and Sriraman Tallam and Neelam Gupta and
                 Rajiv Gupta",
  title =        "Towards locating execution omission errors",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "415--424",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250782",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Execution omission errors are known to be difficult to
                 locate using dynamic analysis. These errors lead to a
                 failure at runtime because of the omission of execution
                 of some statements that would have been executed if the
                 program had no errors. Since dynamic analysis is
                 typically designed to focus on dynamic information
                 arising from executed statements, and statements whose
                 execution is omitted do not produce dynamic
                 information, detection of execution omission errors
                 becomes a challenging task. For example, while dynamic
                 slices are very effective in capturing faulty code for
                 other types of errors, they fail to capture faulty code
                 in presence of execution omission errors. To address
                 this issue relevant slices have been defined to
                 consider certain static dependences (called potential
                 dependences) in addition to dynamic dependences.
                 However, due to the conservative nature of static
                 analysis, overly large slices are produced. In this
                 paper, we propose a fully dynamic solution to locating
                 execution omission errors using dynamic slices. We
                 introduce the notion of implicit dependences which are
                 dependences that are normally invisible to dynamic
                 slicing due to the omission of execution of some
                 statements. We design a dynamic method that forces the
                 execution of the omitted code by switching outcomes of
                 relevant predicates such that those implicit
                 dependences are exposed and become available for
                 dynamic slicing. Dynamic slices can be computed and
                 effectively pruned to produce fault candidate sets
                 containing the execution omission errors. We solve two
                 main problems: verifying the existence of a single
                 implicit dependence through predicate switching, and
                 recovering the implicit dependences in a demand driven
                 manner such that a small number of verifications are
                 required before the root cause is captured. Our
                 experiments show that the proposed technique is highly
                 effective in capturing execution omission errors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debugging; execution omission; implicit dependence;
                 potential dependence; predicate switching; relevant
                 slicing",
}

@Article{Lerner:2007:STE,
  author =       "Benjamin S. Lerner and Matthew Flower and Dan Grossman
                 and Craig Chambers",
  title =        "Searching for type-error messages",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "425--434",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250783",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Advanced type systems often need some form of type
                 inference to reduce the burden of explicit typing, but
                 type inference often leads to poor error messages for
                 ill-typed programs. This work pursues a new approach to
                 constructing compilers and presenting type-error
                 messages in which the type-checker itself does not
                 produce the messages. Instead, it is an oracle for a
                 search procedure that finds similar programs that do
                 type-check. Our two-fold goal is to improve error
                 messages while simplifying compiler construction. Our
                 primary implementation and evaluation is for Caml, a
                 language with full type inference. We also present a
                 prototype for C++ template functions, where type
                 instantiation is implicit. A key extension is making
                 our approach robust even when the program has multiple
                 independent type errors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "error messages; objective Caml; seminal;
                 type-checking; type-inference",
}

@Article{Dillig:2007:SED,
  author =       "Isil Dillig and Thomas Dillig and Alex Aiken",
  title =        "Static error detection using semantic inconsistency
                 inference",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "435--445",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250784",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Inconsistency checking is a method for detecting
                 software errors that relies only on examining multiple
                 uses of a value. We propose that inconsistency
                 inference is best understood as a variant of the older
                 and better understood problem of type inference. Using
                 this insight, we describe a precise and formal
                 framework for discovering inconsistency errors. Unlike
                 previous approaches to the problem, our technique for
                 finding inconsistency errors is purely semantic and can
                 deal with complex aliasing and path-sensitive
                 conditions. We have built a null dereference analysis
                 of C programs based on semantic inconsistency inference
                 and have used it to find hundreds of previously unknown
                 null dereference errors in widely used C programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "error detection; inconsistency; satisfiability; static
                 analysis",
}

@Article{Musuvathi:2007:ICB,
  author =       "Madanlal Musuvathi and Shaz Qadeer",
  title =        "Iterative context bounding for systematic testing of
                 multithreaded programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "446--455",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250785",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multithreaded programs are difficult to get right
                 because of unexpected interaction between concurrently
                 executing threads. Traditional testing methods are
                 inadequate for catching subtle concurrency errors which
                 manifest themselves late in the development cycle and
                 post-deployment. Model checking or systematic
                 exploration of program behavior is a promising
                 alternative to traditional testing methods. However, it
                 is difficult to perform systematic search on large
                 programs as the number of possible program behaviors
                 grows exponentially with the program size. Confronted
                 with this state-explosion problem, traditional model
                 checkers perform iterative depth-bounded search.
                 Although effective for message-passing software,
                 iterative depth-bounding is inadequate for
                 multithreaded software.\par

                 This paper proposes iterative context-bounding, a new
                 search algorithm that systematically explores the
                 executions of a multithreaded program in an order that
                 prioritizes executions with fewer context switches. We
                 distinguish between preempting and nonpreempting
                 context switches, and show that bounding the number of
                 preempting context switches to a small number
                 significantly alleviates the state explosion, without
                 limiting the depth of explored executions. We show both
                 theoretically and empirically that context-bounded
                 search is an effective method for exploring the
                 behaviors of multithreaded programs. We have
                 implemented our algorithm in two model checkers and
                 applied it to a number of real-world multithreaded
                 programs. Our implementation uncovered 9 previously
                 unknown bugs in our benchmarks, each of which was
                 exposed by an execution with at most 2 preempting
                 context switches. Our initial experience with the
                 technique is encouraging and demonstrates that
                 iterative context-bounding is a significant improvement
                 over existing techniques for testing multithreaded
                 programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; context-bounding; model checking;
                 multithreading; partial-order reduction; shared-memory
                 programs; software testing",
}

@Article{Vechev:2007:CSA,
  author =       "Martin T. Vechev and Eran Yahav and David F. Bacon and
                 Noam Rinetzky",
  title =        "{CGCExplorer}: a semi-automated search procedure for
                 provably correct concurrent collectors",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "456--467",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250787",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Concurrent garbage collectors are notoriously hard to
                 design, implement, and verify. We present a framework
                 for the automatic exploration of a space of concurrent
                 mark-and-sweep collectors. In our framework, the
                 designer specifies a set of 'building blocks' from
                 which algorithms can be constructed. These blocks
                 reflect the designer's insights about the coordination
                 between the collector and the mutator. Given a set of
                 building blocks, our framework automatically explores a
                 space of algorithms, using model checking with
                 abstraction to verify algorithms in the space.\par

                 We capture the intuition behind some common
                 mark-and-sweep algorithms using a set of building
                 blocks. We utilize our framework to automatically
                 explore a space of more than 1,600,000 algorithms built
                 from these blocks, and derive over 100 correct
                 fine-grained algorithms with various space,
                 synchronization, and precision tradeoffs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrent algorithms; concurrent garbage collection;
                 synthesis; verification",
}

@Article{McCreight:2007:GFC,
  author =       "Andrew McCreight and Zhong Shao and Chunxiao Lin and
                 Long Li",
  title =        "A general framework for certifying garbage collectors
                 and their mutators",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "468--479",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250788",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Garbage-collected languages such as Java and C\# are
                 becoming more and more widely used in both high-end
                 software and real-time embedded applications. The
                 correctness of the GC implementation is essential to
                 the reliability and security of a large portion of the
                 world's mission-critical software. Unfortunately,
                 garbage collectors--especially incremental and
                 concurrent ones--are extremely hard to implement
                 correctly. In this paper, we present a new uniform
                 approach to verifying the safety of both a mutator and
                 its garbage collector in Hoare-style logic. We define a
                 formal garbage collector interface general enough to
                 reason about a variety of algorithms while allowing the
                 mutator to ignore implementation-specific details of
                 the collector. Our approach supports collectors that
                 require read and write barriers. We have used our
                 approach to mechanically verify assembly
                 implementations of mark-sweep, copying and incremental
                 copying GCs in Coq, as well as sample mutator programs
                 that can be linked with any of the GCs to produce a
                 fully-verified garbage-collected program. Our work
                 provides a foundation for reasoning about complex
                 mutator-collector interaction and makes an important
                 advance toward building fully certified
                 production-quality GCs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract data type; assembly code verification;
                 garbage collection; proof-carrying code; separation
                 logic",
}

@Article{Cherem:2007:PML,
  author =       "Sigmund Cherem and Lonnie Princehouse and Radu
                 Rugina",
  title =        "Practical memory leak detection using guarded
                 value-flow analysis",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "480--491",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1250734.1250789",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a practical inter-procedural
                 analysis algorithm for detecting memory leaks in C
                 programs. Our algorithm tracks the flow of values from
                 allocation points to deallocation points using a sparse
                 representation of the program consisting of a value
                 flow graph that captures def-use relations and value
                 flows via program assignments. Edges in the graph are
                 annotated with guards that describe branch conditions
                 in the program. The memory leak analysis is reduced to
                 a reachability problem over the guarded value
                 flowgraph. Our implemented tool has been effective at
                 detecting more than 60 memory leaks in the SPEC2000
                 benchmarks and in two open-source applications, bash
                 and sshd, while keeping the false positive rate below
                 20\%. The sparse program representation makes the tool
                 efficient in practice, and allows it to report concise
                 error messages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "memory leaks; memory management; static error
                 detection; value-flow analysis",
}

@Article{Permandla:2007:TSP,
  author =       "Pratibha Permandla and Michael Roberson and
                 Chandrasekhar Boyapati",
  title =        "A type system for preventing data races and deadlocks
                 in the {Java Virtual Machine} language: 1",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "10--10",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254768",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In previous work on SafeJava we presented a type
                 system extension to the Java source language that
                 statically prevents data races and deadlocks in
                 multithreaded programs. SafeJava is expressive enough
                 to support common programming patterns, its type
                 checking is fast and scalable, and it requires little
                 programming overhead. SafeJava thus offers a promising
                 approach for making multithreaded programs more
                 reliable. This paper presents a corresponding type
                 system extension for the Java virtual machine language
                 (JVML). We call the resulting language SafeJVML.
                 Well-typed SafeJVML programs are guaranteed to be free
                 of data races and deadlocks. Designing a corresponding
                 type system for JVML is important because most Java
                 code is shipped in the JVML format. Designing a
                 corresponding type system for JVML is nontrivial
                 because of important differences between Java and JVML.
                 In particular, the absence of block structure in JVML
                 programs and the fact that they do not use named local
                 variables the way Java programs do make the type
                 systems for Java and JVML significantly different. For
                 example, verifying absence of races and deadlocks in
                 JVML programs requires performing an alias analysis,
                 something that was not necessary for verifying absence
                 of races and deadlocks in Java programs. This paper
                 presents static and dynamic semantics for Safe JVML. It
                 also includes a proof that the SafeJVML type system is
                 sound and that it prevents data races and deadlocks. To
                 the best of our knowledge, this is the first type
                 system for JVML that statically ensures absence of
                 synchronization errors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data races; deadlocks; ownership types; SafeJava",
}

@Article{Huang:2007:AFL,
  author =       "Tai-Yi Huang and Pin-Chuan Chou and Cheng-Han Tsai and
                 Hsin-An Chen",
  title =        "Automated fault localization with statistically
                 suspicious program states",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "11--20",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254769",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A number of fault localization techniques have been
                 developed to reduce the time in manually debugging a
                 faulty program. The technique of code coverage [8] has
                 been recognized by its effectiveness in identifying
                 suspicious statements that may contain the fault.
                 However, a programmer still needs to manually examine
                 each variable referenced in a suspicious statement and
                 such a process can become extremely time-consuming if
                 this suspicious statement is part of a loop. In this
                 paper, we propose a novel technique called state
                 coverage to significantly reduce the time in examining
                 variables. We first insert a set of checkpoints to
                 record the state of each variable referenced in a
                 branching statement. We next execute the faulty program
                 by a test suite consisting of both passed and failed
                 cases. A state is statistically considered to be more
                 suspicious if it appears more in failed cases and less
                 in passed cases. We implemented both code coverage and
                 state coverage in a debugging tool and used a
                 commonly-used benchmark consisting of 58 faulty
                 programs to evaluate their performance. For 34\% of
                 these programs, their faults are within 20 statement
                 steps of the most suspicious statement identified by
                 code coverage. By adding state coverage and breaking at
                 the most suspicious state, we increase this ratio to
                 64\%, an 88\% performance improvement. Finally, we also
                 explain a few cases in which both state coverage and
                 code coverage cannot perform well.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automated debugging; fault localization; state
                 coverage",
}

@Article{Zhong:2007:FAE,
  author =       "Xiliang Zhong and Cheng-Zhong Xu",
  title =        "Frequency-aware energy optimization for real-time
                 periodic and aperiodic tasks",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "21--30",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254771",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Energy efficiency is an important factor in embedded
                 systems design. We consider an embedded system with a
                 dynamic voltage scaling (DVS) capable processor and its
                 system-wide power consumption is dominated by the
                 processor and memory. We present speed assignment
                 polices for a set of periodic/aperiodic tasks that
                 minimize the overall system energy consumption
                 including active and idle power of CPU and other
                 components. A limitation of most DVS-based system-wide
                 energy optimization techniques is that they assume the
                 number of worst-case execution cycles (WCEC) of a task
                 is a constant, independent of CPU frequency. This is
                 not the case when other system components such as
                 memory are taken into account. In this paper, we
                 decompose task execution time into two parts: on-chip
                 inside CPU and off-chip outside the CPU. We propose a
                 frequency-aware system-wide energy minimization
                 approach and establish necessary and sufficient
                 conditions for the optimality. By exploiting properties
                 of the conditions, we derive a bisection algorithm that
                 finds the optimal solution to offline periodic tasks in
                 a linear time complexity. We apply a similar analytical
                 approach to online aperiodic tasks scheduling and
                 devise an iterative speed assignment algorithm in the
                 complexity of O (n$^2$). We prove it is optimal among
                 all online algorithms without assumptions about future
                 task releases.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic power management; dynamic voltage scaling;
                 power-aware scheduling; real-time systems",
}

@Article{Zhu:2007:DCL,
  author =       "Yifan Zhu and Frank Mueller",
  title =        "{DVSleak}: combining leakage reduction and voltage
                 scaling in feedback {EDF} scheduling",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "31--40",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254772",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Recent trends in CMOS fabrication have the demand to
                 conserve power of processors. While dynamic voltage
                 scaling (DVS) is effective in reducing dynamic power,
                 microprocessors produced in ever smaller fabrication
                 processes are increasingly dominated by static power.
                 For such processors, voltage/frequency pairs below a
                 critical speed result in higher energy per cycle than
                 entering a processor sleep mode. Yet, computational
                 demand above this critical speed is best met by DVS
                 techniques while still conserving power.\par

                 We develop a novel combined leakage and DVS scheduling
                 algorithm for real-time systems, DVS leak, based on
                 earliest-deadline-first scheduling (EDF). Our method
                 trades off DVS with leakage, where the former slows
                 down execution while the latter intelligently defers
                 dispatching of jobs when sleeping is beneficial. We
                 further capitalize on feedback knowledge about actual
                 execution times to anticipate computational demands
                 without sacrificing deadline guarantees. As such, we
                 contribute a novel feedback delay policy for leakage
                 awareness, which addresses structural limitations of
                 prior approaches. Experiments show that this combined
                 DVS/leakage algorithm results in an average of (a) 50\%
                 additional energy savings over a leakage-oblivious DVS
                 algorithm, (b) 20\% more energy savings over a more
                 simplistic combination of DVS and sleep policies and
                 (c) 8.5\% or more over dynamic slack reclamation with
                 procrastination. Particularly task sets with periods
                 shorter than ten milliseconds profit from our approach
                 with 15\% energy savings over best prior schemes. This
                 makes DVS leak the best combined DVS/leakage regulation
                 approach for real-time systems that we know of.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic voltage scaling; feedback control; leakage;
                 real-time systems; scheduling",
}

@Article{AbouGhazaleh:2007:ICL,
  author =       "Nevine AbouGhazaleh and Alexandre Ferreira and Cosmin
                 Rusu and Ruibin Xu and Frank Liberato and Bruce
                 Childers and Daniel Mosse and Rami Melhem",
  title =        "Integrated {CPU} and l2 cache voltage scaling using
                 machine learning",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "41--50",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254773",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Embedded systems serve an emerging and diverse set of
                 applications. As a result, more computational and
                 storage capabilities are added to accommodate ever more
                 demanding applications. Unfortunately, adding more
                 resources typically comes on the expense of higher
                 energy costs. New chip design with Multiple Clock
                 Domains (MCD) opens the opportunity for fine-grain
                 power management within the processor chip. When used
                 with dynamic voltage scaling (DVS), we can control the
                 voltage and power of each domain independently. A
                 significant power and energy improvement has been shown
                 when using MCD design in comparison to managing a
                 single voltage domain for the whole chip, as in
                 traditional chips with global DVS.\par

                 In this paper, we propose PACSL a Power-Aware
                 Compiler-based approach using Supervised Learning.
                 PACSL automatically derives an integrated CPU-core and
                 on-chip L2 cache DVS policy tailored to a specific
                 system and workload. Our approach uses supervised
                 machine learning to discover a policy, which relies on
                 monitoring a few performance counters. We present our
                 approach detailing the role of a compiler in
                 constructing a custom power management policy. We also
                 discuss some implementation issues associated with our
                 technique. We show that PACSL improves on traditional
                 power management techniques that are used in general
                 MCD chips. Our technique saves 22\% on average (up to
                 46\%) in energy-delay product over a DVS technique that
                 applies independent DVS decisions in each domain.
                 Compared to no-power management, our technique improves
                 energy-delay product by 26\% on average (up to 64\%).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "integrated DVS policy; machine learning; multiple
                 clock domains; power management",
}

@Article{Auerbach:2007:JTF,
  author =       "Joshua Auerbach and David F. Bacon and Daniel T.
                 Iercan and Christoph M. Kirsch and V. T. Rajan and
                 Harald Roeck and Rainer Trummer",
  title =        "{Java} takes flight: time-portable real-time
                 programming with exotasks",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "51--62",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254775",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Existing programming methodologies for real-time
                 systems suffer from a low level of abstraction and
                 non-determinism in both the timing and the functional
                 domains. As a result, real-time systems are difficult
                 to test and must be re-certified every time changes are
                 made to either the software or hardware environment.
                 Exotasks are a novel Java programming construct that
                 achieve deterministic timing, even in the presence of
                 other Java threads, and across changes of hardware and
                 software platform. They are deterministic functional
                 data-flow tasks written in Java, combined with an
                 orthogonal scheduling policy based on the logical
                 execution time (LET) model. We have built a quad-rotor
                 model helicopter, the JAviator, which we use as a
                 testbed for this work. We evaluate our implementation
                 of exotasks in IBM's J9 real-time virtual machine using
                 actual flights of the helicopter. Our experiments show
                 that we are able to maintain deterministic behavior in
                 the face of variations in both software load and
                 hardware platform.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "real-time scheduling; time-portability; UAVs; virtual
                 machine",
}

@Article{Hong:2007:JCA,
  author =       "SungHyun Hong and Jin-Chul Kim and Jin Woo Shin and
                 Soo-Mook Moon and Hyeong-Seok Oh and Jaemok Lee and
                 Hyung-Kyu Choi",
  title =        "{Java} client ahead-of-time compiler for embedded
                 systems",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "63--72",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254776",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The performance of embedded Java virtual machine can
                 be improved by ahead-of-time compiler (AOTC), which
                 translates bytecode into machine code in the server and
                 installs the machine code on the client device.
                 Although AOTC is more advantageous than just-in-time
                 compiler (JITC) due to its absence of the translation
                 overhead, AOTC cannot be applicable to dynamically
                 downloaded classes at runtime. This paper proposes
                 client-AOTC (c-AOTC) which performs AOTC on the client
                 device using the JITC module installed on the device,
                 complementing the server-AOTC. The machine code of a
                 method translated by JITC is cached on a persistent
                 memory of the device, and when the method is invoked
                 again in a later run of the program, the machine code
                 is loaded and executed directly without the translation
                 and interpretation overhead. One of major issues in
                 c-AOTC is relocation because some of the addresses used
                 by the cached machine code are not correct when the
                 machine code is loaded and used in a different run;
                 those addresses should be corrected before they are
                 used. Constant pool resolution and inlining complicate
                 the relocation problem and we propose our solutions. We
                 developed a c-AOTC on Sun's CDC VM reference
                 implementation (RI) and our evaluation results indicate
                 that c-AOTC can improve the performance significantly,
                 as much as an average of 12\%. We also experiment with
                 the issue of reducing the number of c-AOTC methods to
                 be cached when the persistent space is tight, with a
                 graceful degradation of performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "early binding; J2ME CDC; Java ahead-of-time compiler;
                 Java virtual machine; just-in-time compiler;
                 relocation",
}

@Article{Alias:2007:BIL,
  author =       "Christophe Alias and Fabrice Baray and Alain Darte",
  title =        "{Bee+Cl@k}: an implementation of lattice-based array
                 contraction in the source-to-source translator rose",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "73--82",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254778",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We build on prior work on intra-array memory reuse,
                 for which a general theoretical framework was proposed
                 based on lattice theory. Intra-array memory reuse is a
                 way of reducing the size of a temporary array by
                 folding, thanks to affine mappings and modulo
                 operations, reusing memory locations when they contain
                 a value not used later. We describe the algorithms
                 needed to implement such a strategy. Our implementation
                 has two parts. The first part, Bee, uses the
                 source-to-source transformer ROSE to extract from the
                 program all necessary information on the lifetime of
                 array elements and to generate the code after memory
                 reduction. The second part, Cl@k, is a stand-alone
                 mathematical tool dedicated to optimizations on
                 polyhedra, in particular the computation of successive
                 minima and the computation of good admissible lattices,
                 which are the basis for lattice-based memory reuse.
                 Both tools are developed in C++ and use linear
                 programming and polyhedra manipulations. They can be
                 used either for embedded program optimizations, e.g.,
                 to limit memory expansion introduced for
                 parallelization, or in high-level synthesis, e.g., to
                 design memories between communicating hardware
                 accelerators.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "lattices; memory reduction; program analysis;
                 source-to-source transformations",
}

@Article{Bennett:2007:CSS,
  author =       "Richard Vincent Bennett and Alastair Colin Murray and
                 Bj{\"o}rn Franke and Nigel Topham",
  title =        "Combining source-to-source transformations and
                 processor instruction set extensions for the automated
                 design-space exploration of embedded systems",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "83--92",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254779",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Industry's demand for flexible embedded solutions
                 providing high performance and short time-to-market has
                 led to the development of configurable and extensible
                 processors. These pre-verified application-specific
                 processors build on proven baseline cores while
                 allowing for some degree of customization through
                 user-defined instruction set extensions (ISE)
                 implemented as functional units in an extended
                 micro-architecture. The traditional design flow for ISE
                 is based on plain C sources of the target application
                 and, after some ISE identification and synthesis
                 stages, a modified source file is produced with
                 explicit handles to the new machine instructions.
                 Further code optimization is left to the compiler. In
                 this paper we develop a novel approach, namely the
                 combined exploration of source-level transformations
                 and ISE identification. We have combined automated code
                 transformation and ISE generators to explore the
                 potential benefits of such a combination. This applies
                 up to 50 transformations from a selection of 70, and
                 synthesizes ISEs for the resulting code. The resulting
                 performance has been measured on 26 applications from
                 the SNU-RT and UTDSP benchmarks. We show that the
                 instruction extensions generated by automated tools are
                 heavily influenced by source code structure. Our
                 results demonstrate that a combination of source-level
                 transformations and instruction set extensions can
                 yield average performance improvements of 47\%. This
                 out performs instruction set extensions when applied in
                 isolation, and in extreme cases yields a speedup of
                 2.85.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ASIPs; compilers; customizable processors; design
                 space exploration; instruction set extension;
                 source-level transformations",
}

@Article{Ahn:2007:OCH,
  author =       "Minwook Ahn and Jooyeon Lee and Yunheung Paek",
  title =        "Optimistic coalescing for heterogeneous register
                 architectures",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "93--102",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254781",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, Optimistic coalescing has been proven
                 as an elegant and effective technique that provides
                 better chances of safely coloring more registers in
                 register allocation than other coalescing techniques.
                 Its algorithm originally assumes homogeneous registers
                 which are all gathered in the same register file.
                 Although this register architecture is still common in
                 most general-purpose processors, embedded processors
                 often contain heterogeneous registers which are
                 scattered in physically different register files
                 dedicated for each dissimilar purpose and use. In this
                 work, we developed a modified algorithm for optimal
                 coalescing that helps a register allocator for an
                 embedded processor to better handle such heterogeneity
                 of the register architecture. In the experiment, an
                 existing register allocator was able to achieve up to
                 10\% reduction in code size through our coalescing, and
                 avoid many spills that would have been generated
                 without our scheme.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler; embedded processors; heterogeneous register
                 architecture; register allocation; register
                 coalescing",
}

@Article{Bouchez:2007:CSE,
  author =       "Florent Bouchez and Alain Darte and Fabrice Rastello",
  title =        "On the complexity of spill everywhere under {SSA}
                 form",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "103--112",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254782",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Compilation for embedded processors can be either
                 aggressive (time consuming cross-compilation) or just
                 in time (embedded and usually dynamic). The heuristics
                 used in dynamic compilation are highly constrained by
                 limited resources, time and memory in particular.
                 Recent results on the SSA form open promising
                 directions for the design of new register allocation
                 heuristics for embedded systems and especially for
                 embedded compilation. In particular, heuristics based
                 on tree scan with two separated phases -- one for
                 spilling, then one for coloring/coalescing -- seem good
                 candidates for designing memory-friendly, fast, and
                 competitive register allocators. Still, also because of
                 the side effect on power consumption, the minimization
                 of loads and stores overhead (spilling problem) is an
                 important issue. This paper provides an exhaustive
                 study of the complexity of the 'spill everywhere'
                 problem in the context of the SSA form. Unfortunately,
                 conversely to our initial hopes, many of the questions
                 we raised lead to NP-completeness results. We identify
                 some polynomial cases but that are impractical in JIT
                 context. Nevertheless, they can give hints to simplify
                 formulations for the design of aggressive allocators.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "complexity; register allocation; spill; SSA form",
}

@Article{Xu:2007:TNR,
  author =       "Weifeng Xu and Russell Tessier",
  title =        "{Tetris}: a new register pressure control technique
                 for {VLIW} processors",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "113--122",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254783",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The run-time performance of VLIW (very long
                 instruction word) microprocessors depends heavily on
                 the effectiveness of its associated optimizing
                 compiler. Typical VLIW compiler phases include
                 instruction scheduling, which maximizes instruction
                 level parallelism (ILP), and register allocation, which
                 minimizes data spills to external memory. If ILP is
                 maximized without considering register constraints,
                 high register pressure may result, leading to increased
                 spill code and reduced run-time performance. In this
                 paper, a new register pressure reduction technique for
                 embedded VLIW processors is presented to control
                 register pressure prior to instruction scheduling and
                 register allocation. By modifying the relative ordering
                 of operations, this technique restructures code to
                 better reduce spills. Our technique has been
                 implemented in Trimaran, an academic VLIW compiler, and
                 evaluated using a series of VLIW benchmarks.
                 Experimental results show that, on average, our
                 algorithm reduces dynamic spills and improves overall
                 cycle counts by 6\% for a VLIW architecture with 8
                 functional units and 32 registers versus previous spill
                 code reduction techniques.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "instruction level parallelism; register pressure
                 control; very long instruction word (VLIW) processor",
}

@Article{Pizlo:2007:HRT,
  author =       "Filip Pizlo and Antony L. Hosking and Jan Vitek",
  title =        "Hierarchical real-time garbage collection",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "123--133",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254784",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Memory management is a critical issue for correctness
                 and performance in real-time embedded systems. Recent
                 work on real-time garbage collectors has shown that it
                 is possible to provide guarantees on worst-case pause
                 times and minimum mutator utilization time. This paper
                 presents a new hierarchical real-time garbage
                 collection algorithm for mixed-priority and
                 mixed-criticality environments. With hierarchical
                 garbage collection, real-time programmers can partition
                 the heap into a number of heaplets and for each
                 partition choose to run a separate collector with a
                 schedule that matches the allocation behavior and
                 footprint of the real-time task using it. This approach
                 lowers worst-case response times of real-time
                 applications by 26\%, while almost doubling mutator
                 utilization -- all with only minimal changes to the
                 application code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Java memory management; real time systems",
}

@Article{OBrien:2007:ICC,
  author =       "Kathryn O'Brien",
  title =        "Issues and challenges in compiling for the {CBEA}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "134--134",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254786",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It has been demonstrated that expert programmers can
                 develop and hand tune applications to exploit the full
                 performance potential of the CBE architecture. We
                 believe that sophisticated compiler optimization
                 technology can bridge the gap between usability and
                 performance in this arena. To this end we have
                 developed a research prototype compiler targeting the
                 Cell processor.\par

                 In this talk we describe a variety of compiler
                 techniques to exploit the Cell processor. These
                 techniques are aimed at automatically generating high
                 quality codes for the heterogeneous parallelism
                 available on the Cell processor. In particular we will
                 focus the discussion on managing the small local
                 memories of the SPEs and discuss our approach to
                 presenting the user with a single shared memory image
                 through our compiler controlled software cache. We will
                 also report and discuss the results we have achieved to
                 date, which indicate that significant speedup can be
                 achieved on this processor with a high level of support
                 from the compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kaestner:2007:SWC,
  author =       "Daniel Kaestner",
  title =        "Safe worst-case execution time analysis by abstract
                 interpretation of executable code",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "135--135",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254787",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "To verify that a safety-critical application meets all
                 requirements lies in the responsibility of the system
                 designers. Classical software validation methods like
                 code review and testing with debugging are expensive
                 and cannot really guarantee the absence of errors. In
                 contrast, abstract interpretation provides a
                 methodology for static program analysis that yields
                 statements valid for all program runs with all inputs.
                 Employing static analyzers is thus orthogonal to
                 classical testing. A possible cause of catastrophic
                 failure is the violation of timing constraints. Recent
                 trends, e.g. in automotive industries (X-by-wire,
                 time-triggered protocols) require knowledge on the
                 Worst-Case Execution Time (WCET) of each task. Yet WCET
                 determination is a difficult problem because of the
                 characteristics of modern software and hardware. This
                 talk focuses on AbsInt's tool aiT that combines
                 abstract interpretation and integer linear programming
                 to determine upper bounds for the WCETs of code
                 snippets given as routines in executables. The hardware
                 architecture of the underlying processor is precisely
                 taken into account, including cache and pipeline
                 behavior. Bounds are determined without the need to
                 change the code and hold for all executions. aiT is
                 used among others by Airbus in the development of
                 various safety-critical applications for the A380.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Engelsma:2007:ESM,
  author =       "Jonathan Engelsma",
  title =        "Enabling seamless mobility: an enablers, experiences
                 and tools perspective",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "136--136",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254788",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Seamless mobility entails providing consumers an
                 enhanced experience -- with reduced effort -- as they
                 move between different devices and environments.
                 Because of the increasing diversity of user
                 preferences, device capabilities and environmental
                 conditions, engineering efficient and usable seamless
                 mobility solutions can be quite challenge. This talk
                 will present an applications research perspective on
                 realizing seamless mobility, focusing on ongoing
                 research in developing enablers for mobile gaming,
                 device-to-device interactions, sensing, advertising and
                 cross-device context sharing. Understanding the device
                 limitations as well as the user expectations of the
                 technology is critical to developing seamless mobility
                 solutions that are both useful and commercially viable.
                 From the tools and development perspective, we see
                 opportunities and challenges in the four phases of
                 realization -- design \& development, deployment, usage
                 and evolution. This talk will conclude with a look at
                 existing support for tools and enablers for seamless
                 mobility, and a discussion on future research
                 directions for the developer community.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Huang:2007:JTE,
  author =       "Po-Kuan Huang and Matin Hashemi and Soheil Ghiasi",
  title =        "Joint throughput and energy optimization for pipelined
                 execution of embedded streaming applications",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "137--139",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254790",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a methodology for synthesizing streaming
                 applications, modeled as task graphs, for pipelined
                 execution on multi-core architectures. We develop a
                 task graph extraction and characterization framework
                 that accurately determines the structure, computation
                 and communication characteristics of application task
                 graph from its specification in C. Furthermore, we
                 develop a provably optimal algorithm that jointly
                 balances the workload assigned to each core, and
                 minimizes inter-core communication traffic. Experiment
                 results show that our versatile method improves the
                 through-put of streaming applications significantly
                 under a variety of hardware configurations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded soft-ware synthesis; multi-core; performance
                 optimization; task graph",
}

@Article{Cho:2007:ISH,
  author =       "Hansu Cho and Samar Abdi and Daniel Gajski",
  title =        "Interface synthesis for heterogeneous multi-core
                 systems from transaction level models",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "140--142",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254791",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a tool for automatic synthesis of
                 RTL interfaces for heterogeneous MPSoC from transaction
                 level models (TLMs). The tool captures the
                 communication parameters in the platform and generates
                 interface modules called universal bridges between
                 buses in the design. The design and configuration of
                 the bridges depend on several platform components
                 including heterogeneity of the components, traffic on
                 the bus, size of messages and so on. We define these
                 parameters and show how the synthesizable RTL code for
                 the bridge can be automatically derived based on these
                 parameters. We use industrial strength design drivers
                 such as an MP3 decoder to test our automatically
                 generated bridges for a variety of platforms and
                 compare them to manually designed bridges on different
                 quality metrics. Our experimental results show that
                 performance of automatically generated bridges are
                 within 5\% of manual design for simple platforms but
                 surpasses them for more complex platforms. The area and
                 RTL code size is consistently better than manual design
                 while giving 5 orders of improvement in development
                 time.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "channel; communication synthesis; HW-SW co-design;
                 interface synthesis; transaction level model; universal
                 bridge",
}

@Article{Viskic:2007:AGE,
  author =       "Ines Viskic and Samar Abdi and Daniel D. Gajski",
  title =        "Automatic generation of embedded communication {SW}
                 for heterogeneous {MPSoC} platforms",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "143--145",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254792",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper addresses the problem of long design cycle
                 of MPSoCs communication SW with automatic synthesis.
                 The tool we propose takes as input a transaction level
                 model (TLM) of MPSoC communication and outputs pin and
                 cycle-accurate (PCA) bus drivers that can be linked to
                 the synthesizable PCA model (PCAM).\par

                 The TL communication is simple since TLM channels
                 abstract away protocol details. PCAM communication, in
                 turn, includes explicit definitions for each signal and
                 pin. However, in most cases the TLMs are not suitable
                 for implementation since they do not reflect the MPSoC
                 platform. Usually the designers simulate (fast) TLMs,
                 then manually implement PCA communication.\par

                 Our communication SW synthesis transforms TL send and
                 receive functions into platform specific PCAM bus
                 drivers which can be automatically downloaded to the
                 FPGA board. The presented results demonstrate the
                 significant productivity gain achieved with our tool,
                 with no great cost to either code size or system
                 performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic synthesis; custom communication SW; MPSoC;
                 on-chip communication; pin/cycle accurate models;
                 platform based design; system level design; transaction
                 level models",
}

@Article{Chen:2007:ECF,
  author =       "Chung-Kai Chen and Ling-Hua Tseng and Shih-Chang Chen
                 and Young-Jia Lin and Yi-Ping You and Chia-Han Lu and
                 Jenq-Kuen Lee",
  title =        "Enabling compiler flow for embedded {VLIW DSP}
                 processors with distributed register files",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "146--148",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254793",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "High-performance and low-power VLIW DSP processors are
                 increasingly deployed on embedded devices to process
                 video and multimedia applications. For reducing power
                 and cost in designs of VLIW DSP processors, distributed
                 register files and multi-bank register architectures
                 are being adopted to eliminate the amount of read/write
                 ports in register files. This presents new challenges
                 for devising compiler optimization schemes for such
                 architectures. In this paper, we address the compiler
                 optimization issues for PAC architecture, which is a
                 5-way issue DSP processor with distributed register
                 files. We present an integrated flow to address several
                 phases of compiler optimizations in interacting with
                 distributed register files and multi-bank register
                 files in the layer of instruction scheduling, software
                 pipelining, and data flow optimizations. Our
                 experiments on a novel 32-bit embedded VLIW DSP (known
                 as the PAC DSP core) exhibit the state of the art
                 performance for embedded VLIW DSP processors with
                 distributed register files by incorporating our
                 proposed schemes in compilers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distributed register files; embedded VLIW DSP
                 compilers; software pipelining",
}

@Article{Walther:2007:ART,
  author =       "Karsten Walther and Ren{\'e} Herzog and J{\"o}rg
                 Nolte",
  title =        "Analyzing the real-time behaviour of deeply embedded
                 event driven systems",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "149--151",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254794",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Most embedded control systems react on events in the
                 real world by reading sensors and controlling actuators
                 in real-time. This general behavior can be directly
                 mapped onto event-driven systems in a natural and
                 straightforward manner for a large variety of
                 applications. Further real-time analysis and profiling
                 on the same level of abstraction is possible for
                 event-driven systems. This significantly helps
                 developers of deeply embedded real-time applications.
                 In this paper we introduce simulative profiling
                 concepts and static analysis basics for the real-time
                 analysis of event-driven systems. Furthermore we
                 present a prototype analysis tool for the R\par

                 EFLEX operating system that integrates real-time
                 analysis into the software development cycle.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded; event-flow; profiling; real-time",
}

@Article{Coffman:2007:GPT,
  author =       "Joel Coffman and Christopher Healy and Frank Mueller
                 and David Whalley",
  title =        "Generalizing parametric timing analysis",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "152--154",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254795",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In the design of real-time and embedded systems, it is
                 important to establish a bound on the worst-case
                 execution time (WCET) of programs to assure via
                 schedulability analysis that deadlines are not missed.
                 Static WCET analysis is performed by a timing analysis
                 tool. This paper describes novel improvements to such a
                 tool, allowing parametric timing analysis to be
                 performed. Parametric timing analyzers receive an upper
                 bound on the number of loop iterations in terms of an
                 expression which is used to create a parametric
                 formula. This parametric formula is later evaluated to
                 determine the WCET based on input values only known at
                 runtime. Effecting a transformation from a numeric to a
                 parametric timing analyzer requires two innovations: 1)
                 a summation solver capable of summation non-constant
                 expressions and 2) a polynomial data structure which
                 can replace integers as the basis for all calculations.
                 Both additions permit other methods of analysis (e.g.
                 caching, pipeline, constraint) to occur simultaneously.
                 Combining these techniques allows our tool to
                 statically bound the WCET for a larger class of
                 benchmarks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "parametric timing analysis; worst-case execution time
                 (WCET) analysis",
}

@Article{Chen:2007:CDA,
  author =       "Guangyu Chen and Feihui Li and Mahmut Kandemir",
  title =        "Compiler-directed application mapping for {NoC} based
                 chip multiprocessors",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "155--157",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254796",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The problem attacked in this paper is one of
                 automatically mapping an application onto a
                 Network-on-Chip (NoC) based chip multi-processor
                 architecture in a locality-aware fashion. The proposed
                 compiler approach has four major steps: task
                 scheduling, processor mapping, data mapping, and packet
                 routing. Our experimental result clearly shows that the
                 proposed framework reduces energy consumption of our
                 applications significantly (27.41\% on average over a
                 pure performance oriented application mapping strategy)
                 as a result of improved locality of data accesses.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "application mapping; compilers; Network-on-Chip (NoC);
                 power optimization",
}

@Article{Yan:2007:SEW,
  author =       "Shan Yan and Bill Lin",
  title =        "Stream execution on wide-issue clustered {VLIW}
                 architectures",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "158--160",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254797",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper investigates the mapping of stream programs
                 to wide-issue clustered VLIW processors so that
                 designers can leverage their existing investments in
                 VLIW-based platforms to harness the advantages of
                 stream programming.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; scheduling; stream programming; VLIW
                 processors",
}

@Article{Chu:2007:CDP,
  author =       "Michael L. Chu and Scott A. Mahlke",
  title =        "Code and data partitioning for fine-grain
                 parallelism",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "161--164",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254798",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code and data partitioning; fine-grain parallelism;
                 multicore compilation",
}

@Article{Hines:2007:AIF,
  author =       "Stephen Roderick Hines and Gary Tyson and David
                 Whalley",
  title =        "Addressing instruction fetch bottlenecks by using an
                 instruction register file",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "165--174",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254800",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Instruction Register File (IRF) is an
                 architectural extension for providing improved access
                 to frequently occurring instructions. An optimizing
                 compiler can exploit an IRF by packing an application's
                 instructions, resulting in decreased code size, reduced
                 energy consumption and improved execution time
                 primarily due to a smaller footprint in the instruction
                 cache. The nature of the IRF also allows the execution
                 of packed instructions to overlap with instruction
                 fetch, thus providing a means for tolerating increased
                 fetch latencies, like those experienced by encrypted
                 ICs as well as the presence of low-power L0 caches.
                 Although previous research has focused on the direct
                 benefits of instruction packing, this paper explores
                 the use of increased fetch bandwidth provided by packed
                 instructions. Small L0 caches improve energy efficiency
                 but can increase execution time due to frequent cache
                 misses. We show that this penalty can be significantly
                 reduced by overlapping the execution of packed
                 instructions with miss stalls. The IRF can also be used
                 to supply additional instructions to a more aggressive
                 execution engine, effectively reducing dependence on
                 instruction cache bandwidth. This can improve energy
                 efficiency, in addition to providing additional
                 flexibility for evaluating various design tradeoffs in
                 a pipeline with asymmetric instruction bandwidth. Thus,
                 we show that the IRF is a complementary technique,
                 operating as a buffer tolerating fetch bottlenecks, as
                 well as providing additional fetch bandwidth for an
                 aggressive pipeline backend.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "instruction packing; instruction register file;
                 L0/filter cache",
}

@Article{Yan:2007:WAI,
  author =       "Jun Yan and Wei Zhang",
  title =        "{WCET} analysis of instruction caches with
                 prefetching",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "175--184",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254801",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Instruction prefetching is an effective technique to
                 reduce the instruction cache miss latency for improving
                 the average-case performance. For real-time systems,
                 however, the use of instruction prefetching will only
                 be suitable if a reasonably tight worst-case
                 performance of programs using instruction prefetching
                 can be predicted. This paper presents an approach to
                 modeling and computing the worst-case instruction cache
                 performance with prefetching. Our experimental results
                 indicate that instruction prefetching can benefit both
                 the average-case and worst-case performance; however,
                 the degree of the worst-case performance improvement
                 due to instruction prefetching is less than that of the
                 average-case performance, thus leading to increased
                 time variation for real-time computing. Also, we find
                 that the prefetching distance can significantly impact
                 the worst-case performance analysis with instruction
                 prefetching. Particularly, when the prefetching
                 distance is equal to the L1 miss penalty, the
                 worst-case execution time with instruction prefetching
                 is minimized (i.e., optimal).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hard real-time; instruction cache; instruction
                 prefetching; worst-case execution time analysis",
}

@Article{Ning:2007:EMP,
  author =       "Ke Ning and David Kaeli",
  title =        "External memory page remapping for embedded multimedia
                 systems",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "185--194",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254803",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As memory speeds and bus capacitances continue to
                 rise, external memory bus power will make up an
                 increasing portion of the total system power budget for
                 system-on-a-chip embedded systems. Both hardware and
                 software approaches can be explored to balance the
                 power/performance tradeoff associated with the external
                 memory.\par

                 In this paper we present a hardware-based, programmable
                 external memory page remapping mechanism which can
                 significantly improve performance and decrease the
                 power budget due to external memory bus accesses. Our
                 approach was developed by studying common data access
                 patterns present in embedded multimedia applications.
                 In the paper, we evaluate a mechanism that can perform
                 page remapping of external memory. We also develop an
                 efficient algorithm to map application data and
                 instruction memory into external memory pages. We
                 employ graph-coloring techniques to guide the page
                 mapping procedure. The objective is to avoid page
                 misses by remapping conflicting pages to different
                 memory banks (i.e., by assigning them different
                 colors). Our algorithm can significantly reduce the
                 memory page miss rate by 70-80\% on average. For a
                 4-bank SDRAM memory system, we reduced external memory
                 access time by 12.6\%. The proposed algorithm can
                 reduce power consumption in majority of the benchmarks,
                 averaged by 13.2\% of power reduction. Combining the
                 effects of both power and delay, our algorithm can
                 benefit significantly to the total energy cost.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded systems; memory coloring; memory controllers;
                 memory page remapping",
}

@Article{Cho:2007:DDS,
  author =       "Hyungmin Cho and Bernhard Egger and Jaejin Lee and
                 Heonshik Shin",
  title =        "Dynamic data scratchpad memory management for a memory
                 subsystem with an {MMU}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "195--206",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254804",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, we propose a dynamic scratchpad memory
                 (SPM)management technique for a
                 horizontally-partitioned memory subsystem with an MMU.
                 The memory subsystem consists of a relatively cheap
                 direct-mapped data cache and SPM. Our technique loads
                 required global data and stack pages into the SPM on
                 demand when a function is called. A scratchpad memory
                 manager loads\slash unloads the data pages and
                 maintains a page table for the MMU. Our approach is
                 based on post-pass analysis and optimization
                 techniques, and it handles the whole program including
                 libraries. The data page mapping is determined by
                 solving an integer linear programming (ILP) formulation
                 that approximates our demand paging technique. The ILP
                 model uses a dynamic call graph annotated with the
                 number of memory accesses and/or cache misses obtained
                 by profiling. We evaluate our technique on thirteen
                 embedded applications. We compare the results to a
                 reference system with a 4-way set associative data
                 cache and the ideal case with the same 4-way cache and
                 SPM, where all global and stack data is placed in the
                 SPM. On average, our approach reduces the total system
                 energy consumption by 8.1\% with no performance
                 degradation. This is equivalent to exploiting 60\% of
                 the room available in energy reduction between the
                 reference case and the ideal case.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; demand paging; horizontally-partitioned
                 memory; post-pass optimization; scratchpad memory",
}

@Article{Li:2007:SAD,
  author =       "Lian Li and Quan Hoang Nguyen and Jingling Xue",
  title =        "Scratchpad allocation for data aggregates in
                 superperfect graphs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "207--216",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254805",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Existing methods place data or code in scratchpad
                 memory, i.e., SPM by either relying on heuristics or
                 resorting to integer programming or mapping it to a
                 graph coloring problem.\par

                 In this work, the SPM allocation problem is formulated
                 as an interval coloring problem. The key observation is
                 that in many embedded applications, arrays (including
                 structs as a special case) are often related in the
                 following way: For any two arrays, their live ranges
                 are often such that one is either disjoint from or
                 contains the other. As a result, array interference
                 graphs are often superperfect graphs and optimal
                 interval colorings for such array interference graphs
                 are possible. This has led to the development of two
                 new SPM allocation algorithms. While differing in
                 whether live range splits and spills are done
                 sequentially or together, both algorithms place arrays
                 in SPM based on examining the cliques in an
                 interference graph. In both cases, we guarantee
                 optimally that all arrays in an interference graph can
                 be placed in SPM if its size is no smaller than the
                 clique number of the graph. In the case that the SPM is
                 not large enough, we rely on heuristics to split or
                 spill a live range until the graph is colorable. Our
                 experiment results using embedded benchmarks show that
                 our algorithms can outperform graph coloring when their
                 interference graphs are superperfect or nearly so
                 although graph coloring is admittedly more general and
                 may also be effective to applications with arbitrary
                 interference graphs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "interval coloring; scratchpad memory; SPM; SPM
                 allocation; superperfect graph",
}

@Article{In:2007:SSW,
  author =       "Jihyun In and Ilhoon Shin and Hyojun Kim",
  title =        "{SWL}: a search-while-load demand paging scheme with
                 {NAND} flash memory",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "217--226",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1254766.1254806",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As mobile phones become increasingly multifunctional,
                 the number and size of applications installed in phones
                 are rapidly increasing. Consequently, mobile phones
                 require more hardware resources such as NOR/NAND flash
                 memory and DRAM, and their production cost is
                 accordingly becoming higher. One candidate solution to
                 reduce production cost is demand paging using MMU.
                 However, demand paging causes unpredictably long page
                 fault latency, and as such mobile phone manufacturers
                 are reluctant to deploy this scheme. In this paper, we
                 present a method that reduces the long latency of page
                 faults by performing page fault handling in a
                 parallelized manner, considering the characteristics of
                 NAND-Type flash memory. We also discuss how to modify
                 the existing page cache replacement policies so that
                 they can exploit the benefits of the parallelized page
                 fault handler. Experimental results show that the
                 parallelized page fault handler improves the worst case
                 latency of page faults significantly, by up to roughly
                 20\%, and that the modified page cache replacement
                 policies improve both the average and worst instruction
                 fetch time.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "demand paging; NAND flash memory; page fault handler;
                 page replacement; parallelization",
}

@Article{Wang:2007:OSC,
  author =       "Qin Wang and Junpu Chen and Weihua Zhang and Min Yang
                 and Binyu Zang",
  title =        "Optimizing software cache performance of packet
                 processing applications",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "227--236",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254808",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Network processors (NPs) are widely used in many types
                 of networking equipment due to their high performance
                 and flexibility. For most NPs, software cache is used
                 instead of hardware cache due to the chip area, cost
                 and power constraints. Therefore, programmers should
                 take full responsibility for software cache management
                 which is neither intuitive nor easy to most of them.
                 Actually, without an effective use of it, long memory
                 access latency will be a critical limiting factor to
                 overall applications. Prior researches like hardware
                 multi-threading, wide-word accesses and packet access
                 combination for caching have already been applied to
                 help programmers to overcome this bottleneck. However,
                 most of them do not make enough use of the
                 characteristics of packet processing applications and
                 often perform intraprocedural optimizations only. As a
                 result, the binary codes generated by those techniques
                 often get lower performance than that comes from
                 hand-tuned assembly programming for some applications.
                 In this paper, we propose an algorithm including two
                 techniques --- Critical Path Based Analysis (CPBA) and
                 Global Adaptive Localization (GAL), to optimize the
                 software cache performance of packet processing
                 applications. Packet processing applications usually
                 have several hot paths and CPBA tries to insert
                 localization instructions according to their execution
                 frequencies. For further optimizations, GAL eliminates
                 some redundant localization instructions by
                 interprocedural analysis and optimizations. Our
                 algorithm is applied on some representative
                 applications. Experiment results show that it leads to
                 an average speedup by a factor of 1.974.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "local memory; network processor; optimization",
}

@Article{Ravindran:2007:CMP,
  author =       "Rajiv Ravindran and Michael Chu and Scott Mahlke",
  title =        "Compiler-managed partitioned data caches for low
                 power",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "7",
  pages =        "237--247",
  month =        jul,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273444.1254809",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:57:50 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Set-associative caches are traditionally managed using
                 hardware-based lookup and replacement schemes that have
                 high energy overheads. Ideally, the caching strategy
                 should be tailored to the application's memory needs,
                 thus enabling optimal use of this on-chip storage to
                 maximize performance while minimizing power
                 consumption. However, doing this in hardware alone is
                 difficult due to hardware complexity, high power
                 dissipation, overheads of dynamic discovery of
                 application characteristics, and increased likelihood
                 of making locally optimal decisions. The compiler can
                 instead determine the caching strategy by analyzing the
                 application code and providing hints to the hardware.
                 We propose a hardware/software co-managed partitioned
                 cache architecture in which enhanced load/store
                 instructions are used to control fine-grain data
                 placement within a set of cache partitions. In
                 comparison to traditional partitioning techniques, load
                 and store instructions can individually specify the set
                 of partitions for lookup and replacement. This fine
                 grain control can avoid conflicts, thus providing the
                 performance benefits of highly associative caches,
                 while saving energy by eliminating redundant tag and
                 data array accesses. Using four direct-mapped
                 partitions, we eliminated 25\% of the tag checks and
                 recorded an average 15\% reduction in the energy-delay
                 product compared to a hardware-managed 4-way
                 set-associative cache.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded processor; hardware/software co-managed
                 cache; instruction-driven cache management; low-power;
                 partitioned cache",
}

@Article{Dunlavey:2007:PTI,
  author =       "Michael Dunlavey",
  title =        "Performance tuning with instruction-level cost derived
                 from call-stack sampling",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "8",
  pages =        "4--8",
  month =        aug,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1294297.1294298",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:24 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Except for program-counter histogramming, most modern
                 profiling tools summarize at the level of entire
                 functions or basic blocks, with or without additional
                 information such as calling context or call graphs.
                 This paper explicates the value of information about
                 the cost of specific instructions, relative to
                 summaries that do not include it. A good source of this
                 information is time-random sampling of the call stack.
                 To get the diagnostic benefit of instruction costs it
                 is not necessary to measure them with high precision or
                 efficiency. In fact, manual sampling suffices quite
                 well, when it can be used. Other benefits of call stack
                 sampling are that it can be used with unmodified
                 software and libraries, and it is easily confined to
                 the time intervals of interest. As with other profiling
                 techniques, it can be employed repeatedly to remove all
                 significant performance problems in single-thread
                 programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bottleneck; call stack sampling; instrumentation;
                 optimization; performance analysis; profiling; software
                 development",
}

@Article{Gabay:2007:CJR,
  author =       "Yarom Gabay and Assaf J. Kfoury",
  title =        "A calculus for {Java}'s reference objects",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "8",
  pages =        "9--17",
  month =        aug,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1294297.1294299",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:24 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Java's Reference objects provide the programmer with
                 limited control over the process of memory management.
                 Although reference objects are often helpful, they
                 introduce nondeterminism into program evaluation and
                 lead to ambiguous program outcome. In this paper we
                 present a calculus to formally reason about Java's
                 Reference objects. We model multiple levels of
                 reference objects in a single calculus and apply a
                 different garbage collection policy to each one of
                 them. Accordingly, weak references are given the
                 semantics of eager collection and soft references are
                 given the semantics of lazy collection. In addition, we
                 constrain garbage collection with the scarcity of two
                 resources: time and space. We demonstrate the viability
                 of our calculus by modeling a Java program which
                 addresses a commonly-encountered caching problem. Using
                 our model, we reason about the program's evaluation and
                 interaction with the garbage collector.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "formal languages; garbage collection; Java reference
                 objects; weak references",
}

@Article{Sewell:2007:OET,
  author =       "Peter Sewell and Francesco Zappa Nardelli and Scott
                 Owens and Gilles Peskine and Thomas Ridge and Susmit
                 Sarkar and Rok Strni{\v{s}}a",
  title =        "{Ott}: effective tool support for the working
                 semanticist",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "1--12",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291155",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It is rare to give a semantic definition of a
                 full-scale programming language, despite the many
                 potential benefits. Partly this is because the
                 available metalanguages for expressing semantics ---
                 usually either L$^a$ T$_E$ X for informal mathematics,
                 or the formal mathematics of a proof assistant --- make
                 it much harder than necessary to work with large
                 definitions.\par

                 We present a metalanguage specifically designed for
                 this problem, and a tool, ott, that sanity-checks such
                 definitions and compiles them into proof assistant code
                 for Coq, HOL, Isabelle, and (in progress) Twelf,
                 together with L$^a$ T$_E$ X code for production-quality
                 typesetting, and OCaml boilerplate. The main
                 innovations are:(1) metalanguage design to make
                 definitions concise, and easy to read and edit;(2) an
                 expressive but intuitive metalanguage for specifying
                 binding structures; and (3) compilation to proof
                 assistant code.\par

                 This has been tested in substantial case studies,
                 including modular specifications of calculi from the
                 TAPL text, a Lightweight Java with Java JSR 277/294
                 module system proposals, and a large fragment of OCaml
                 (around 306 rules), with machine proofs of various
                 soundness results. Our aim with this work is to enable
                 a phase change: making it feasible to work routinely,
                 without heroic effort, with rigorous semantic
                 definitions of realistic languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sozeau:2007:PIF,
  author =       "Matthieu Sozeau",
  title =        "Programming finger trees in {Coq}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "13--24",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291156",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Finger Trees (Hinze \& Paterson, 2006) are a general
                 purpose persistent data structure with good
                 performance. Their genericity permits developing a
                 wealth of structures like ordered sequences or interval
                 trees on top of a single implementation. However, the
                 type systems used by current functional languages do
                 not guarantee the coherent parameterization and
                 specialization of Finger Trees, let alone the
                 correctness of their implementation. We present a
                 certified implementation of Finger Trees solving these
                 problems using the Program extension of Coq. We not
                 only implement the structure but also prove its
                 invariants along the way, which permit building
                 certified structures on top of Finger Trees in an
                 elegant way.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "certification; C{$<$} dependent types; finger trees;
                 oq{$<$} /scp{$>$} scp&gt",
}

@Article{Wazny:2007:ERF,
  author =       "Jeremy Wazny",
  title =        "Experience report: functional programming in c-rules",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "25--28",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291158",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "C-Rules is a business rules management system
                 developed by Constraint Technologies International$^1$
                 (CTI), designed for use in transportation problems.
                 Users define rules describing various aspects of a
                 problem, such as solution costs and legality, which are
                 then queried from a host application, typically an
                 optimising solver. At its core, C-Rules provides a
                 functional expression language which affords users both
                 power and flexibility when formulating rules. In this
                 paper we will describe our experiences of using
                 functional programming both at the end-user level, as
                 well as at the implementation level. We highlight some
                 of the benefits we, and the product's users, have
                 enjoyed from the decision to base our rule system on
                 features such as: higher-order functions, referential
                 transparency, and static, polymorphic typing. We also
                 outline some of our experiences in using Haskell to
                 build an efficient compiler for the core language.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Syme:2007:EPM,
  author =       "Don Syme and Gregory Neverov and James Margetson",
  title =        "Extensible pattern matching via a lightweight language
                 extension",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "29--40",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291159",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Pattern matching of algebraic data types (ADTs) is a
                 standard feature in typed functional programming
                 languages, but it is well known that it interacts
                 poorly with abstraction. While several partial
                 solutions to this problem have been proposed, few have
                 been implemented or used. This paper describes an
                 extension to the .NET language F\# called active
                 patterns, which supports pattern matching over abstract
                 representations of generic heterogeneous data such as
                 XML and term structures, including where these are
                 represented via object models in other .NET languages.
                 Our design is the first to incorporate both ad hoc
                 pattern matching functions for partial decompositions
                 and 'views' for total decompositions, and yet remains a
                 simple and lightweight extension. We give a description
                 of the language extension along with numerous
                 motivating examples. Finally we describe how this
                 feature would interact with other reasonable and
                 related language extensions: existential types
                 quantified at data discrimination tags, GADTs, and
                 monadic generalizations of pattern matching.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "F#; functional programming; ML; pattern matching",
}

@Article{Danvy:2007:BSC,
  author =       "Olivier Danvy and Michael Spivey",
  title =        "On {Barron} and {Strachey}'s {Cartesian} product
                 function",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "41--46",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291161",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Over forty years ago, David Barron and Christopher
                 Strachey published a startlingly elegant program for
                 the Cartesian product of a list of lists, expressing it
                 with a three nested occurrences of the function we now
                 call {\tt foldr}. This program is remarkable for its
                 time because of its masterful display of higher-order
                 functions and lexical scope, and we put it forward as
                 possibly the first ever functional pearl. We first
                 characterize it as the result of a sequence of program
                 transformations, and then apply similar transformations
                 to a program for the classical power set example. We
                 also show that using a higher-order representation of
                 lists allows a definition of the Cartesian product
                 function where {\tt foldr} is nested only twice.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "CPL",
}

@Article{Matsuda:2007:BTB,
  author =       "Kazutaka Matsuda and Zhenjiang Hu and Keisuke Nakano
                 and Makoto Hamana and Masato Takeichi",
  title =        "Bidirectionalization transformation based on automatic
                 derivation of view complement functions",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "47--58",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291162",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Bidirectional transformation is a pair of
                 transformations: a view function and a backward
                 transformation. A view function maps one data structure
                 called source onto another called view. The
                 corresponding backward transformation reflects changes
                 in the view to the source. Its practically useful
                 applications include replicated data synchronization,
                 presentation-oriented editor development, tracing
                 software development, and view updating in the database
                 community. However, developing a bidirectional
                 transformation is hard, because one has to give two
                 mappings that satisfy the bidirectional properties for
                 system consistency.\par

                 In this paper, we propose a new framework for
                 bidirectionalization that can automatically generate a
                 useful backward transformation from a view function
                 while guaranteeing that the two transformations satisfy
                 the bidirectional properties. Our framework is based on
                 two known approaches to bidirectionalization, namely
                 the constant complement approach from the database
                 community and the combinator approach from the
                 programming language community, but it has three new
                 features: (1) unlike the constant complement approach,
                 it can deal with transformations between algebraic data
                 structures rather than just tables; (2) unlike the
                 combinator approach, in which primitive bidirectional
                 transformations have to be explicitly given, it can
                 derive them automatically; (3) it generates a view
                 update checker to validate updates on views, which has
                 not been well addressed so far. The new framework has
                 been implemented and the experimental results show that
                 our framework has promise.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic program generation; bidirectional
                 transformation; program inversion; program
                 transformation; view updating",
}

@Article{Elliott:2007:TFP,
  author =       "Conal M. Elliott",
  title =        "Tangible functional programming",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "59--70",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291163",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a user-friendly approach to unifying
                 program creation and execution, based on a notion of
                 'tangible values' (TVs), which are visual and
                 interactive manifestations of pure values, including
                 functions. Programming happens by gestural composition
                 of TVs. Our goal is to give end-users the ability to
                 create parameterized, composable content without
                 imposing the usual abstract and linguistic working
                 style of programmers. We hope that such a system will
                 put the essence of programming into the hands of many
                 more people, and in particular people with
                 artistic/visual creative style.\par

                 In realizing this vision, we develop algebras for
                 visual presentation and for 'deep' function
                 application, where function and argument may both be
                 nested within a structure of tuples, functions, etc.
                 Composition gestures are translated into chains of
                 combinators that act simultaneously on statically typed
                 values and their visualizations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "arrows; combinator libraries; end-user programming;
                 gestural composition; interactive programming;
                 interactive visualization",
}

@Article{Sereni:2007:TAC,
  author =       "Damien Sereni",
  title =        "Termination analysis and call graph construction for
                 higher-order functional programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "71--84",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291165",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The analysis and verification of higher-order programs
                 raises the issue of control-flow analysis for
                 higher-order languages. The problem of constructing an
                 accurate call graph for a higher-order program has been
                 the topic of extensive research, and numerous methods
                 for flow analysis, varying in complexity and precision,
                 have been suggested.\par

                 While termination analysis of higher-order programs has
                 been studied, there has been little examination of the
                 impact of call graph construction on the precision of
                 termination checking. We examine the effect of various
                 control-flow analysis techniques on a termination
                 analysis for higher-order functional programs. We
                 present a termination checking framework and
                 instantiate this with three call graph constructions
                 varying in precision and complexity, and illustrate by
                 example the impact of the choice of call graph
                 construction.\par

                 Our second aim is to use the resulting analyses to shed
                 light on the relationship between control-flow
                 analyses. We prove precise inclusions between the
                 classes of programs recognised as terminating by the
                 same termination criterion over different call graph
                 analyses, giving one of the first characterisations of
                 expressive power of flow analyses for higher-order
                 programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "functional programs; program analysis; semantics;
                 termination",
}

@Article{VanHorn:2007:RCP,
  author =       "David {Van Horn} and Harry G. Mairson",
  title =        "Relating complexity and precision in control flow
                 analysis",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "85--96",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291166",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We analyze the computational complexity of $k$-CFA, a
                 hierarchy of control flow analyses that determine which
                 functions may be applied at a given call-site. This
                 hierarchy specifies related decision problems, quite
                 apart from any algorithms that may implement their
                 solutions. We identify a simple decision problem
                 answered by this analysis and prove that in the 0CFA
                 case, the problem is complete for polynomial time. The
                 proof is based on a nonstandard, symmetric
                 implementation of Boolean logic within multiplicative
                 linear logic (MLL). We also identify a simpler version
                 of 0CFA related to $\eta$-expansion, and prove that it
                 is complete for logarithmic space, using arguments
                 based on computing paths and permutations.\par

                 For any fixed $k > 0$, it is known that $k$-CFA (and
                 the analogous decision problem) can be computed in time
                 exponential in the program size. For $k = 1$, we show
                 that the decision problem is NP-hard, and sketch why
                 this remains true for larger fixed values of $k$. The
                 proof technique depends on using the approximation of
                 CFA as an essentially nondeterministic computing
                 mechanism, as distinct from the exactness of
                 normalization. When $k = n$, so that the 'depth' of the
                 control flow analysis grows linearly in the program
                 length, we show that the decision problem is complete
                 for exponential time.\par

                 In addition, we sketch how the analysis presented here
                 may be extended naturally to languages with control
                 operators. All of the insights presented give clear
                 examples of how straightforward observations about
                 linearity, and linear logic, may in turn be used to
                 give a greater understanding of functional programming
                 and program analysis.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "complexity; continuation; control flow analysis; eta
                 expansion; geometry of interaction; linear logic;
                 normalization; proofnet; static analysis",
}

@Article{Filinski:2007:IRA,
  author =       "Andrzej Filinski and Kristian St{\o}vring",
  title =        "Inductive reasoning about effectful data types",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "97--110",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291168",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a pair of reasoning principles, definition
                 and proof by rigid induction, which can be seen as
                 proper generalizations of lazy-datatype induction to
                 monadic effects other than partiality. We further show
                 how these principles can be integrated into
                 logical-relations arguments, and obtain as a particular
                 instance a general and principled proof that the
                 success-stream and failure-continuation models of
                 backtracking are equivalent. As another application, we
                 present a monadic model of general search trees, not
                 necessarily traversed depth-first. The results are
                 applicable to both lazy and eager languages, and we
                 emphasize this by presenting most examples in both
                 Haskell and SML.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract effects; backtracking; equational reasoning;
                 logical relations; monads; recursive types; streams",
}

@Article{Leijen:2007:TDT,
  author =       "Daan Leijen",
  title =        "A type directed translation of {MLF} to system {F}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "111--122",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291169",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The MLF type system by Le Botlan and R{\'e}my is a
                 natural extension of Hindley--Milner type inference
                 that supports full first-class polymorphism, where
                 types can be of higher-rank and impredicatively
                 instantiated. Even though MLF is theoretically very
                 attractive, it has not seen widespread adoption. We
                 believe that this partly because it is unclear how the
                 rich language of MLF types relate to standard System F
                 types. In this article we give the first type directed
                 translation of MLF terms to System F terms. Based on
                 insight gained from this translation, we also define
                 'Rigid MLF' (MLF$^=$), a restriction of MLF where all
                 bound values have a System F type. The expressiveness
                 of MLF$^=$ is the same as that of boxy types, but
                 MLF$^=$ needs fewer annotations and we give a detailed
                 comparison between them.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "first-class polymorphism; MLF; system F",
}

@Article{Lloyd:2007:DPA,
  author =       "John W. Lloyd",
  title =        "Declarative programming for artificial intelligence
                 applications",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "123--124",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291152",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this talk, I will consider some possible extensions
                 to existing functional programming languages that would
                 make them more suitable for the important and growing
                 class of artificial intelligence applications. First, I
                 will motivate the need for these language extensions.
                 Then I will give some technical detail about these
                 extensions that provide the logic programming idioms,
                 probabilistic computation, and modal computation. Some
                 examples will be given to illustrate these ideas which
                 have been implemented in the Bach programming language
                 that is an extension of Haskell.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "functional; logic; modal; probabilistic; programming",
}

@Article{Fredlund:2007:MMC,
  author =       "Lars-{\AA}ke Fredlund and Hans Svensson",
  title =        "{McErlang}: a model checker for a distributed
                 functional programming language",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "125--136",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291171",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a model checker for verifying distributed
                 programs written in the Erlang programming language.
                 Providing a model checker for Erlang is especially
                 rewarding since the language is by now being seen as a
                 very capable platform for developing industrial
                 strength distributed applications with excellent
                 failure tolerance characteristics. In contrast to most
                 other Erlang verification attempts, we provide support
                 for a very substantial part of the language. The model
                 checker has full Erlang data type support, support for
                 general process communication, node semantics
                 (inter-process behave subtly different from
                 intra-process communication), fault detection and fault
                 tolerance through process linking, and can verify
                 programs written using the OTP Erlang component library
                 (used by most modern Erlang programs).\par

                 As the model checking tool is itself implemented in
                 Erlang we benefit from the advantages that a
                 (dynamically typed) functional programming language
                 offers: easy prototyping and experimentation with new
                 verification algorithms, rich executable models that
                 use complex data structures directly programmed in
                 Erlang, the ability to treat executable models
                 interchangeably as programs (to be executed directly by
                 the Erlang interpreter) and data, and not least the
                 possibility to cleanly structure and to cleanly combine
                 various verification sub-tasks. In the paper we discuss
                 the design of the tool and provide early indications on
                 its performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sims:2007:ERR,
  author =       "Steve Sims and Daniel C. DuVarney",
  title =        "Experience report: the reactis validation tool",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "137--140",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291172",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Reactis is a commercially successful testing and
                 validation tool which is implemented almost entirely in
                 Standard ML. Our experience using a functional language
                 to develop a commercial product has led us to the
                 conclusion that while functional languages have some
                 disadvantages, in the case of Reactis the benefits of a
                 functional language substantially outweigh the
                 drawbacks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "functional programming; reactis; SML; standard ML",
}

@Article{Plasmeijer:2007:IES,
  author =       "Rinus Plasmeijer and Peter Achten and Pieter Koopman",
  title =        "{iTasks}: executable specifications of interactive
                 work flow systems for the web",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "141--152",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291174",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper we introduce the iTask system: a set of
                 combinators to specify work flows in a pure functional
                 language at a very high level of abstraction. Work flow
                 systems are automated systems in which tasks are
                 coordinated that have to be executed by humans and
                 computers. The combinators that we propose support work
                 flow patterns commonly found in commercial work flow
                 systems. Compared with most of these commercial
                 systems, the iTask system offers several advantages:
                 tasks are statically typed, tasks can be higher order,
                 the combinators are fully compositional, dynamic and
                 recursive work flows can be specified, and last but not
                 least, the specification is used to generate an
                 executable web-based multi-user work flow application.
                 With the iTask system, useful work flows can be defined
                 which cannot be expressed in other systems: work can be
                 interrupted and subsequently directed to other workers
                 for further processing.\par

                 The implementation is special as well. It is based on
                 the Clean iData toolkit which makes it possible to
                 create fully dynamic, interactive, thin client web
                 applications. Thanks to the generic programming
                 techniques used in the iData toolkit, the programming
                 effort is reduced significantly: state handling, form
                 rendering, user interaction, and storage management is
                 handled automatically. The iTask system allows a task
                 to be regarded as a special kind of persistent redex
                 being reduced by the application user via task
                 completion. The combinators control the order in which
                 these redexes are made available to the application
                 user. The system rewrites the persistent task redexes
                 in a similar way as functions are rewritten in lazy
                 functional languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "clean; iData; iTask",
}

@Article{Welsh:2007:ERS,
  author =       "Noel Welsh and David Gurnell",
  title =        "Experience report: scheme in commercial {Web}
                 application development",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "153--156",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291175",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Over the past year Untyped has developed some 40'000
                 lines of Scheme code for a variety of web-based
                 applications, which receive over 10'000 hits a day.
                 This is, to our knowledge, the largest web-based
                 application deployment of PLT Scheme. Our experiences
                 developing with PLT Scheme show that deficiencies in
                 the existing infrastructure can be easily overcome, and
                 we can exploit advanced language features to improve
                 productivity. We conclude that PLT Scheme makes an
                 excellent platform for developing web-based
                 applications, and is competitive with more mainstream
                 choices.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "scheme; web",
}

@Article{Herman:2007:FPG,
  author =       "David Herman",
  title =        "Functional pearl: the great escape or, how to jump the
                 border without getting caught",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "157--164",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291177",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Filinski showed that callcc and a single mutable
                 reference cell are sufficient to express the delimited
                 control operators shift and reset. However, this
                 implementation interacts poorly with dynamic bindings
                 like exception handlers. We present a variation on
                 Filinski's encoding of delimited continuations that
                 behaves appropriately in the presence of exceptions and
                 give an implementation in Standard ML of New Jersey. We
                 prove the encoding correct with respect to the
                 semantics of delimited dynamic binding.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "continuations; delimited control; dynamic binding",
}

@Article{Flatt:2007:ADC,
  author =       "Matthew Flatt and Gang Yu and Robert Bruce Findler and
                 Matthias Felleisen",
  title =        "Adding delimited and composable control to a
                 production programming environment",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "165--176",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291178",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Operators for delimiting control and for capturing
                 composable continuations litter the landscape of
                 theoretical programming language research. Numerous
                 papers explain their advantages, how the operators
                 explain each other (or don't), and other aspects of the
                 operators' existence. Production programming languages,
                 however, do not support these operators, partly because
                 their relationship to existing and demonstrably useful
                 constructs --- such as exceptions and dynamic binding
                 --- remains relatively unexplored.\par

                 In this paper, we report on our effort of translating
                 the theory of delimited and composable control into a
                 viable implementation for a production system. The
                 report shows how this effort involved a substantial
                 design element, including work with a formal model, as
                 well as significant practical exploration and
                 engineering.\par

                 The resulting version of PLT Scheme incorporates the
                 expressive combination of delimited and composable
                 control alongside dynamic-wind, dynamic binding, and
                 exception handling. None of the additional operators
                 subvert the intended benefits of existing control
                 operators, so that programmers can freely mix and match
                 control operators.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kennedy:2007:CCC,
  author =       "Andrew Kennedy",
  title =        "Compiling with continuations, continued",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "177--190",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291179",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a series of CPS-based intermediate
                 languages suitable for functional language compilation,
                 arguing that they have practical benefits over
                 direct-style languages based on A -normal form (ANF) or
                 monads. Inlining of functions demonstrates the benefits
                 most clearly: in ANF-based languages, inlining involves
                 a re-normalization step that rearranges let expressions
                 and possibly introduces a new 'join point' function,
                 and in monadic languages, commuting conversions must be
                 applied; in contrast, inlining in our CPS language is a
                 simple substitution of variables for variables.\par

                 We present a contification transformation implemented
                 by simple rewrites on the intermediate language.
                 Exceptions are modelled using so-called
                 'double-barrelled' CPS. Subtyping on exception
                 constructors then gives a very straightforward effect
                 analysis for exceptions. We also show how a graph-based
                 representation of CPS terms can be implemented
                 extremely efficiently, with linear-time term
                 simplification.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "continuation passing style; continuations; functional
                 programming languages; monads; optimizing compilation",
}

@Article{Park:2007:TSH,
  author =       "Sungwoo Park",
  title =        "Type-safe higher-order channels in {ML}-like
                 languages",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "191--202",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291181",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As a means of transmitting not only data but also code
                 encapsulated within functions, higher-order channels
                 provide an advanced form of task parallelism in
                 parallel computations. In the presence of mutable
                 references, however, they pose a safety problem because
                 references may be transmitted to remote threads where
                 they are no longer valid.\par

                 This paper presents an ML-like parallel language with
                 type-safe higher-order channels. By type safety, we
                 mean that no value written to a channel contains
                 references, or equivalently, that no reference escapes
                 via a channel from the thread where it is created. The
                 type system uses a typing judgment that is capable of
                 deciding whether the value to which a term evaluates
                 contains references or not. The use of such a typing
                 judgment also makes it easy to achieve another
                 desirable feature of channels, channel locality, that
                 associates every channel with a unique thread for
                 serving all values addressed to it.\par

                 Our type system permits mutable references in
                 sequential computations and also ensures that mutable
                 references never interfere with parallel computations.
                 Thus it provides both flexibility in sequential
                 programming and ease of implementing parallel
                 computations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "channel locality; distributed languages; higher-order
                 channels; parallel languages",
}

@Article{Nystrom:2007:EHL,
  author =       "Jan Nystr{\"o}m and Phil Trinder and David King",
  title =        "Evaluating high-level distributed language
                 constructs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "203--212",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291182",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The paper investigates the impact of high level
                 distributed programming language constructs on the
                 engineering of realistic software components. Based on
                 reengineering two non-trivial telecoms components, we
                 compare two high-level distributed functional
                 languages, Erlang and GdH, with conventional
                 distributed technologies C++/CORBA and C++/UDP.\par

                 We investigate several aspects of high-level
                 distributed languages including the impact on code size
                 of high-level constructs. We identify three language
                 constructs that primarily contribute to the reduction
                 in application size and quantify their impact. We
                 provide the first evidence based on analysis of a
                 substantial system to support the widely-held
                 supposition that high-level constructs reduce
                 programming effort associated with specifying
                 distributed coordination. We investigate whether a
                 language with sophisticated high-level fault tolerance
                 can produce suitably robust components, and both
                 measure and analyse the additional programming effort
                 needed to introduce robustness. Finally, we investigate
                 some implications of a range of type systems for
                 engineering distributed software.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distributed programming; Erlang; Haskell; programming
                 languages",
}

@Article{Beshers:2007:ERU,
  author =       "Clifford Beshers and David Fox and Jeremy Shaw",
  title =        "Experience report: using functional programming to
                 manage a {Linux} distribution",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "213--218",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291184",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We report on our experience using functional
                 programming languages in the development of a
                 commercial GNU/Linux distribution, discussing features
                 of several significant systems: hardware detection and
                 system configuration; OS installer CD creation; package
                 compilation and management. Static typing helps
                 compensate for the lack of a complete testing lab and
                 helps us be effective with a very small team. Most
                 importantly, we believe that going beyond merely using
                 functional languages to using purely functional designs
                 really helps to create simple, effective tools.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pfenning:2007:SIT,
  author =       "Frank Pfenning",
  title =        "Subtyping and intersection types revisited",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "219--219",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291153",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Church's system of simple types has proven to be
                 remarkably robust: call-by-name, call-by-need, and
                 call-by-value languages, with or without effects, and
                 even logical frameworks can be based on the same typing
                 rules. When type systems become more expressive, this
                 unity fractures. An early example is the value
                 restriction for parametric polymorphism which is
                 necessary for ML but not Haskell; a later manifestation
                 is the lack of distributivity of function types over
                 intersections in call-by-value languages with
                 effects.\par

                 In this talk we reexamine the logical justification for
                 systems of subtyping and intersection types and then
                 explore the consequences in two different settings:
                 logical frameworks and functional programming.\par

                 In logical frameworks functions are pure and their
                 definitions observable, but complications could arise
                 from the presence of dependent types. We show that this
                 is not the case, and that we can obtain soundness and
                 completeness theorems for a certain axiomatization of
                 subtyping. We also sketch a connection to the
                 type-theoretic notion of proof irrelevance.\par

                 In functional programming we investigate how the
                 encapsulation of effects in monads interacts with
                 subtyping and intersection types, providing an updated
                 analysis of the value restriction and related
                 phenomena. While at present this study is far from
                 complete, we believe that its origin in purely logical
                 notions will give rise to a uniform theory that can
                 easily be adapted to specific languages and their
                 operational interpretations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenzel:2007:ERB,
  author =       "Leif Frenzel",
  title =        "Experience report: building an eclipse-based {IDE} for
                 {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "220--222",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291186",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper summarizes experiences from an open source
                 project that builds a free Haskell IDE based on Eclipse
                 (an open source IDE platform). Eclipse is extensible
                 and has proved to be a good basis for IDEs for several
                 programming languages. Difficulties arise mainly
                 because it is written in Java and requires extensions
                 to be written in Java. This made it hard to reuse
                 existing development tools implemented in Haskell, and
                 turned out to be a considerable obstacle to finding
                 contributors. Several approaches to resolve these
                 issues are described and their advantages and
                 disadvantages discussed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ennals:2007:UFF,
  author =       "Rob Ennals and David Gay",
  title =        "User-friendly functional programming for {Web}
                 mashups",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "223--234",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291187",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "MashMaker is a web-based tool that makes it easy for a
                 normal user to create web mashups by browsing around,
                 without needing to type, or plan in advance what they
                 want to do.\par

                 Like a web browser, MashMaker allows users to create
                 mashups by browsing, rather than writing code, and
                 allows users to bookmark interesting things they find,
                 forming new widgets --- reusable mashup fragments. Like
                 a spreadsheet, MashMaker mixes program and data and
                 allows ad-hoc unstructured editing of
                 programs.\par

                 MashMaker is also a modern functional programming
                 language with non-side effecting expressions, higher
                 order functions, and lazy evaluation. MashMaker
                 programs can be manipulated either textually, or
                 through an interactive tree representation, in which a
                 program is presented together with the values it
                 produces.\par

                 In order to cope with this unusual domain, MashMaker
                 contains a number of deviations from normal function
                 languages. The most notable of these is that, in order
                 to allow the programmer to write programs directly on
                 their data, all data is stored in a single tree, and
                 evaluation of an expression always takes place at a
                 specific point in this tree, which also functions as
                 its scope.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "browser; end-used programming; mashup; web",
}

@Article{Hage:2007:GUA,
  author =       "Jurriaan Hage and Stefan Holdermans and Arie
                 Middelkoop",
  title =        "A generic usage analysis with subeffect qualifiers",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "235--246",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291189",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Sharing analysis and uniqueness typing are static
                 analyses that aim at determining which of a program's
                 objects are to be used at most once. There are many
                 commonalities between these two forms of usage
                 analysis. We make their connection precise by
                 developing an expressive generic analysis that can be
                 instantiated to both sharing analysis and uniqueness
                 typing. The resulting system, which combines parametric
                 polymorphism with effect subsumption, is specified
                 within the general framework of qualified types, so
                 that readily available tools and techniques can be used
                 for the development of implementations and
                 metatheory.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "qualified types; sharing analysis; type and effect
                 systems; uniqueness typing",
}

@Article{Cooper:2007:ERH,
  author =       "Jonathan Cooper and Steve McKeever",
  title =        "Experience report: a {Haskell} interpreter for
                 {cellML}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "247--250",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291190",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper we present our use of functional
                 programming (FP), specifically Haskell, to provide an
                 operational semantics for a domain-specific language,
                 CellML, that describes mathematical models of
                 biological processes. We analyse the benefits and
                 shortcomings of this approach, in comparison with other
                 semantic definitions for CellML.\par

                 It is our claim that using FP for our semantics results
                 in a more concise and useful artifact for describing
                 what such a model means. The use of lazy evaluation
                 removes the need to explicitly determine an evaluation
                 order for the model, resulting in a more elegant
                 interpreter. Crucially, using FP enables us to prove
                 the correctness of optimisation techniques for such
                 models. This gives us more confidence in scientific
                 deductions from simulation results. We compare the
                 Python implementation of these optimisation techniques
                 with our use of Haskell in proving their correctness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cellML; Haskell",
}

@Article{Harris:2007:FDI,
  author =       "Tim Harris and Satnam Singh",
  title =        "Feedback directed implicit parallelism",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "251--264",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291192",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper we present an automated way of using
                 spare CPU resources within a shared memory
                 multi-processor or multi-core machine. Our approach is
                 (i) to profile the execution of a program, (ii) from
                 this to identify pieces of work which are promising
                 sources of parallelism, (iii) recompile the program
                 with this work being performed speculatively via a
                 work-stealing system and then (iv) to detect at
                 run-time any attempt to perform operations that would
                 reveal the presence of speculation.\par

                 We assess the practicality of the approach through an
                 implementation based on GHC 6.6 along with a limit
                 study based on the execution profiles we gathered. We
                 support the full Concurrent Haskell language compiled
                 with traditional optimizations and including I/O
                 operations and synchronization as well as pure
                 computation. We use 20 of the larger programs from the
                 'nofib' benchmark suite. The limit study shows that
                 programs vary a lot in the parallelism we can identify:
                 some have none, 16 have a potential 2x speed-up, 4 have
                 32x. In practice, on a 4-core processor, we get 10-80\%
                 speed-ups on 7 programs. This is mainly achieved at the
                 addition of a second core rather than beyond
                 this.\par

                 This approach is therefore not a replacement for manual
                 parallelization, but rather a way of squeezing extra
                 performance out of the threads of an already-parallel
                 program or out of a program that has not yet been
                 parallelized.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "functional programming; Haskell; implicit
                 parallelism",
}

@Article{Brassel:2007:LCV,
  author =       "Bernd Bra{\ss}el and Michael Hanus and Sebastian
                 Fischer and Frank Huch and Germ{\'a}n Vidal",
  title =        "Lazy call-by-value evaluation",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "265--276",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291193",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Designing debugging tools for lazy functional
                 programming languages is a complex task which is often
                 solved by expensive tracing of lazy computations. We
                 present a new approach in which the information
                 collected as a trace is reduced considerably (kilobytes
                 instead of megabytes). The idea is to collect a kind of
                 step information for a call-by-value interpreter, which
                 can then efficiently reconstruct the computation for
                 debugging/viewing tools, like declarative debugging. We
                 show the correctness of the approach, discuss a
                 proof-of-concept implementation with a declarative
                 debugger as back end and present some benchmarks
                 comparing our new approach with the Haskell debugger
                 Hat.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debugging techniques; laziness",
}

@Article{Marlow:2007:FLU,
  author =       "Simon Marlow and Alexey Rodriguez Yakushev and Simon
                 Peyton Jones",
  title =        "Faster laziness using dynamic pointer tagging",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "277--288",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291194",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In the light of evidence that Haskell programs
                 compiled by GHC exhibit large numbers of mispredicted
                 branches on modern processors, we re-examine the
                 'tagless' aspect of the STG-machine that GHC uses as
                 its evaluation model.\par

                 We propose two tagging strategies: a simple strategy
                 called semi-tagging that seeks to avoid one common
                 source of unpredictable indirect jumps, and a more
                 complex strategy called dynamic pointer-tagging that
                 uses the spare low bits in a pointer to encode
                 information about the pointed-to object. Both of these
                 strategies have been implemented and exhaustively
                 measured in the context of a production compiler, GHC,
                 and the paper contains detailed descriptions of the
                 implementations. Our measurements demonstrate
                 significant performance improvements (14\% for dynamic
                 pointer-tagging with only a 2\% increase in code size),
                 and we further demonstrate that much of the improvement
                 can be attributed to the elimination of mispredicted
                 branch instructions.\par

                 As part of our investigations we also discovered that
                 one optimisation in the STG-machine, vectored-returns,
                 is no longer worthwhile and we explain why.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Dreyer:2007:TSR,
  author =       "Derek Dreyer",
  title =        "A type system for recursive modules",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "289--302",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291196",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "There has been much work in recent years on extending
                 ML with recursive modules. One of the most difficult
                 problems in the development of such an extension is the
                 double vision problem, which concerns the interaction
                 of recursion and data abstraction. In previous work, I
                 defined a type system called RTG, which solves the
                 double vision problem at the level of a System-F-style
                 core calculus. In this paper, I scale the ideas and
                 techniques of RTG to the level of a recursive ML-style
                 module calculus called RMC, thus establishing that no
                 tradeoff between data abstraction and recursive modules
                 is necessary. First, I describe RMC's typing rules for
                 recursive modules informally and discuss some of the
                 design questions that arose in developing them. Then, I
                 present the formal semantics of RMC, which is
                 interesting in its own right. The formalization
                 synthesizes aspects of both the Definition and the
                 Harper-Stone interpretation of Standard ML, and
                 includes a novel two-pass algorithm for recursive
                 module typechecking in which the coherence of the two
                 passes is emphasized by their representation in terms
                 of the same set of inference rules.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract data types; modules; recursion; type
                 systems",
}

@Article{Ghuloum:2007:IPR,
  author =       "Abdulaziz Ghuloum and R. Kent Dybvig",
  title =        "Implicit phasing for {R6RS} libraries",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "303--314",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291197",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The forthcoming Revised$^6$ Report on Scheme differs
                 from previous reports in that the language it describes
                 is structured as a set of libraries. It also provides a
                 syntax for defining new portable libraries. The same
                 library may export both procedure and hygienic macro
                 definitions, which allows procedures and syntax to be
                 freely intermixed, hidden, and exported.\par

                 This paper describes the design and implementation of a
                 portable version of R$^6$ RS libraries that expands
                 libraries into a core language compatible with existing
                 R$^5$ RS implementations. Our implementation is
                 characterized by its use of inference to determine when
                 the bindings of an imported library are needed, e.g.,
                 run time or compile time, relieving programmers of the
                 burden of declaring usage requirements explicitly.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binding phases; hygienic macros; libraries; macro
                 expansion; scheme",
}

@Article{Coutts:2007:SFL,
  author =       "Duncan Coutts and Roman Leshchinskiy and Don Stewart",
  title =        "Stream fusion: from lists to streams to nothing at
                 all",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "315--326",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291199",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents an automatic deforestation system,
                 stream fusion, based on equational transformations,
                 that fuses a wider range of functions than existing
                 short-cut fusion systems. In particular, stream fusion
                 is able to fuse zips, left folds and functions over
                 nested lists, including list comprehensions. A
                 distinguishing feature of the framework is its
                 simplicity: by transforming list functions to expose
                 their structure, intermediate values are eliminated by
                 general purpose compiler optimisations.\par

                 We have reimplemented the Haskell standard List library
                 on top of our framework, providing stream fusion for
                 Haskell lists. By allowing a wider range of functions
                 to fuse, we see an increase in the number of
                 occurrences of fusion in typical Haskell programs. We
                 present benchmarks documenting time and space
                 improvements.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "deforestation; functional programming; program fusion;
                 program optimisation; program transformation",
}

@Article{Jones:2007:CPS,
  author =       "Simon Peyton Jones",
  title =        "Call-pattern specialisation for {Haskell} programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "327--337",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291200",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "User-defined data types, pattern-matching, and
                 recursion are ubiquitous features of Haskell programs.
                 Sometimes a function is called with arguments that are
                 statically known to be in constructor form, so that the
                 work of pattern-matching is wasted. Even worse, the
                 argument is sometimes freshly-allocated, only to be
                 immediately decomposed by the function.\par

                 In this paper we describe a simple, modular
                 transformation that specialises recursive functions
                 according to their argument 'shapes'. We describe our
                 implementation of this transformation in the Glasgow
                 Haskell Compiler, and give measurements that
                 demonstrate substantial performance improvements: a
                 worthwhile 10\% on average, with a factor of 10 in
                 particular cases.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; Haskell; optimisation; specialisation",
}

@Article{Ekman:2007:JEJ,
  author =       "Torbj{\"o}rn Ekman and G{\"o}rel Hedin",
  title =        "The {JastAdd} Extensible {Java} compiler",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "1--18",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297029",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The JastAdd Extensible Java Compiler is a high quality
                 Java compiler that is easy to extend in order to build
                 static analysis tools for Java, and to extend Java with
                 new language constructs. It is built modularly, with a
                 Java 1.4 compiler that is extended to a Java 5
                 compiler. Example applications that are built as
                 extensions include an alternative backend that
                 generates Jimple, an extension of Java with AspectJ
                 constructs, and the implementation of a pluggable type
                 system for non-null checking and inference.\par

                 The system is implemented using JastAdd, a declarative
                 Java-like language. We describe the compiler
                 architecture, the major design ideas for building and
                 extending the compiler, in particular, for dealing with
                 complex extensions that affect name and type analysis.
                 Our extensible compiler compares very favorably
                 concerning quality, speed and size with other
                 extensible Java compiler frameworks. It also compares
                 favorably in quality and size compared with traditional
                 non-extensible Java compilers, and it runs within a
                 factor of three compared to javac.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; declarative frameworks; extensibility;
                 Java; modularity; OOP",
}

@Article{Hirzel:2007:JGJ,
  author =       "Martin Hirzel and Robert Grimm",
  title =        "{Jeannie}: granting {Java Native Interface} developers
                 their wishes",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "19--38",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297030",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Higher-level languages interface with lower-level
                 languages such as C to access platform functionality,
                 reuse legacy libraries, or improve performance. This
                 raises the issue of how to best integrate different
                 languages while also reconciling productivity, safety,
                 portability, and efficiency. This paper presents
                 Jeannie, a new language design for integrating Java
                 with C. In Jeannie, both Javaand C code are nested
                 within each other in the same file and compile down to
                 JNI, the Java platform's standard foreign function
                 interface. By combining the two languages' syntax and
                 semantics, Jeannie eliminates verbose boiler-plate
                 code, enables static error detection across the
                 language boundary, and simplifies dynamic resource
                 management. We describe the Jeannie language and its
                 compiler, while also highlighting lessons from
                 composing two mature programming languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C; foreign function interface; Java; JNI; modular
                 syntax; programming language composition; rats!; xtc",
}

@Article{Tan:2007:IIL,
  author =       "Gang Tan and Greg Morrisett",
  title =        "{Ilea}: inter-language analysis across {Java} and
                 {C}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "39--56",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297031",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Java bug finders perform static analysis to find
                 implementation mistakes that can lead to exploits and
                 failures; Java compilers perform static analysis for
                 optimization. If Java programs contain foreign function
                 calls to C libraries, however, static analysis is
                 forced to make either optimistic or pessimistic
                 assumptions about the foreign function calls, since
                 models of the C libraries are typically not
                 available.\par

                 We propose ILEA (stands for Inter-LanguagE Analysis),
                 which is a framework that enables existing Java
                 analyses to understand the behavior of C code. Our
                 framework includes: (1) a novel specification language,
                 which extends the Java Virtual Machine Language (JVML)
                 with a few primitives that approximate the effects that
                 the C code might have; (2) an automatic specification
                 extractor, which builds models of the C code. Comparing
                 to other possible specification languages, our language
                 is expressive, yet facilitates construction of
                 automatic specification extractors. Furthermore,
                 because the specification language is based on the
                 JVML, existing Java analyses can be easily migrated to
                 utilize specifications in the language. We also
                 demonstrate the utility of the specifications
                 generated, by modifying an existing non-null analysis
                 to identify null-related bugs in Java applications that
                 contain C libraries. Our preliminary experiments
                 identified dozens of null-related bugs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "inter-language analysis; Java Native Interface; JNI;
                 JVML; specification extraction",
}

@Article{Georges:2007:SRJ,
  author =       "Andy Georges and Dries Buytaert and Lieven Eeckhout",
  title =        "Statistically rigorous {Java} performance evaluation",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "57--76",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297033",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Java performance is far from being trivial to
                 benchmark because it is affected by various factors
                 such as the Java application, its input, the virtual
                 machine, the garbage collector, the heap size, etc. In
                 addition, non-determinism at run-time causes the
                 execution time of a Java program to differ from run to
                 run. There are a number of sources of non-determinism
                 such as Just-In-Time (JIT) compilation and optimization
                 in the virtual machine (VM) driven by timer-based
                 method sampling, thread scheduling, garbage collection,
                 and various.\par

                 There exist a wide variety of Java performance
                 evaluation methodologies used by researchers and
                 benchmarkers. These methodologies differ from each
                 other in a number of ways. Some report average
                 performance over a number of runs of the same
                 experiment; others report the best or second best
                 performance observed; yet others report the worst. Some
                 iterate the benchmark multiple times within a single VM
                 invocation; others consider multiple VM invocations and
                 iterate a single benchmark execution; yet others
                 consider multiple VM invocations and iterate the
                 benchmark multiple times.\par

                 This paper shows that prevalent methodologies can be
                 misleading, and can even lead to incorrect conclusions.
                 The reason is that the data analysis is not
                 statistically rigorous. In this paper, we present a
                 survey of existing Java performance evaluation
                 methodologies and discuss the importance of
                 statistically rigorous data analysis for dealing with
                 non-determinism. We advocate approaches to quantify
                 startup as well as steady-state performance, and, in
                 addition, we provide the JavaStats software to
                 automatically obtain performance numbers in a rigorous
                 manner. Although this paper focuses on Java performance
                 evaluation, many of the issues addressed in this paper
                 also apply to other programming languages and systems
                 that build on a managed runtime system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "benchmarking; data analysis; Java; methodology;
                 statistics",
}

@Article{Xian:2007:MAP,
  author =       "Feng Xian and Witawas Srisa-an and Hong Jiang",
  title =        "{Microphase}: an approach to proactively invoking
                 garbage collection for improved performance",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "77--96",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297034",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "To date, the most commonly used criterion for invoking
                 garbage collection (GC) is based on heap usage; that
                 is, garbage collection is invoked when the heap or an
                 area inside the heap is full. This approach can suffer
                 from two performance shortcomings: untimely garbage
                 collection invocations and large volumes of surviving
                 objects. In this work, we explore a new GC triggering
                 approach called MicroPhase that exploits two
                 observations: (i) allocation requests occur in phases
                 and (ii) phase boundaries coincide with times when most
                 objects also die. Thus, proactively invoking garbage
                 collection at these phase boundaries can yield high
                 efficiency. We extended the HotSpot virtual machine
                 from Sun Microsystems to support MicroPhase and
                 conducted experiments using 20 benchmarks. The
                 experimental results indicate that our technique can
                 reduce the GC times in 19 applications. The differences
                 in GC overhead range from an increase of 1\% to a
                 decrease of 26\% when the heap is set to twice the
                 maximum live-size. As a result, MicroPhase can improve
                 the overall performance of 13 benchmarks. The
                 performance differences range from a degradation of
                 2.5\% to an improvement of 14\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "execution phase; garbage collection",
}

@Article{Bond:2007:PCC,
  author =       "Michael D. Bond and Kathryn S. McKinley",
  title =        "Probabilistic calling context",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "97--112",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297035",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Calling context enhances program understanding and
                 dynamic analyses by providing a rich representation of
                 program location. Compared to imperative programs,
                 object-oriented programs use more interprocedural and
                 less intraprocedural control flow, increasing the
                 importance of context sensitivity for analysis.
                 However, prior online methods for computing calling
                 context, such as stack-walking or maintaining the
                 current location in a calling context tree, are
                 expensive in time and space. This paper introduces a
                 new online approach called probabilistic calling
                 context (PCC) that continuously maintains a
                 probabilistically unique value representing the current
                 calling context. For millions of unique contexts, a
                 32-bit PCC value has few conflicts. Computing the PCC
                 value adds 3\% average overhead to a Java virtual
                 machine. PCC is well-suited to clients that detect new
                 or anomalous behavior since PCC values from training
                 and production runs can be compared easily to detect
                 new context-sensitive behavior; clients that query the
                 PCC value at every system call, Java utility call, and
                 Java API call add 0-9\% overhead on average. PCC adds
                 space overhead proportional to the distinct contexts
                 stored by the client (one word per context). Our
                 results indicate PCC is efficient and accurate enough
                 to use in deployed software for residual testing, bug
                 detection, and intrusion detection.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "anomaly-based bug detection; calling context; dynamic
                 context sensitivity; intrusion detection; managed
                 languages; probabilistic; residual testing",
}

@Article{Igarashi:2007:VPT,
  author =       "Atsushi Igarashi and Mirko Viroli",
  title =        "Variant path types for scalable extensibility",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "113--132",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297037",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Much recent work in the design of object-oriented
                 programming languages has been focusing on identifying
                 suitable features to support so-called scalable
                 extensibility, where the usual extension mechanism by
                 inheritance works in different scales of software
                 components-that is, classes, groups of classes, groups
                 of groups and so on. Its typing issues has usually been
                 addressed by means of dependent type systems, where
                 nested types are seen as properties of objects. In this
                 work, we seek instead for a different solution, which
                 can be more easily applied to Java-like languages, in
                 which nested types are considered properties of
                 classes.\par

                 We introduce the mechanism of variant path types, which
                 provide a flexible means to express intra-group
                 relationship (among classes) that has to be preserved
                 through extension. In particular, improving and
                 extending existing works on groups and exact types, we
                 feature the new notions of exact and inexact
                 qualifications, providing rich abstractions to express
                 various kinds of set of objects, with a flexible
                 subtyping scheme. We formalize a safe type system for
                 variant path types on top of Feather weight Java. Our
                 development results in a complete solution for scalable
                 extensibility, similarly to previous attempts based on
                 dependent type systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "scalable extensibility; subtyping; variance; variant
                 path types",
}

@Article{Gasiunas:2007:DC,
  author =       "Vaidas Gasiunas and Mira Mezini and Klaus Ostermann",
  title =        "Dependent classes",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "133--152",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297038",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Virtual classes allow nested classes to be refined in
                 subclasses. In this way nested classes can be seen as
                 dependent abstractions of the objects of the enclosing
                 classes. Expressing dependency via nesting, however,
                 has two limitations: Abstractions that depend on more
                 than one object cannot be modeled and a class must know
                 all classes that depend on its objects. This paper
                 presents dependent classes, a generalization of virtual
                 classes that expresses similar semantics by
                 parameterization rather than by nesting. This increases
                 expressivity of class variations as well as the
                 flexibility of their modularization. Besides, dependent
                 classes complement multimethods in scenarios where
                 multi-dispatched abstractions rather than
                 multi-dispatched methods are needed. They can also be
                 used to express more precise signatures of multimethods
                 and even extend their dispatch semantics. We present a
                 formal semantics of dependent classes and a
                 machine-checked type soundness proof in Isabelle/HOL
                 [29], the first of this kind for a language with
                 virtual classes and path-dependent types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dependent classes; dynamic dispatch; multimethods;
                 multiple dispatch; variability; virtual classes",
}

@Article{Sasitorn:2007:CNS,
  author =       "James Sasitorn and Robert Cartwright",
  title =        "Component {NEXTGEN}: a sound and expressive component
                 framework for {Java}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "153--170",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297039",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Developing a general component system for a statically
                 typed, object-oriented language is a challenging design
                 problem for two reasons. First, mutually recursive
                 references across components are common in
                 object-oriented programs --- an issue that has proven
                 troublesome in the context of component systems for
                 functional and procedural languages. Second,
                 inheritance across component boundaries can cause
                 accidental method overrides. Our recent research shows
                 that a component framework can be constructed for a
                 nominally typed object-oriented language supporting
                 first-class generic types simply by adding appropriate
                 annotations, syntactic sugar, and component-level
                 type-checking. The fundamental semantic building blocks
                 for constructing, type-checking and manipulating
                 components are provided by the underlying first-class
                 generic type system. To demonstrate the simplicity and
                 utility of this approach we have designed and
                 implemented an extension of Java called Component
                 NEXTGEN (CGEN). CGEN, which is based on the Sun Java
                 5.0 javac compiler, is backwards compatible with
                 existing Java binary code and runs on current Java
                 Virtual Machines.\par

                 The primary contribution of this paper is a technical
                 analysis of the subtle design issues involved in
                 building a component framework for a nominally typed
                 object-oriented language supporting first-class
                 generics. In contrast to component systems for
                 structurally typed languages, mutual recursion among
                 components is accommodated in the type system and
                 semantics without incorporating any special machinery.
                 Our analysis includes a presentation of Core CGEN
                 (CCG), a small, core language modeling the CGEN
                 framework. It is based on Featherweight GJ and
                 incorporates some ideas from MIXGEN. CCG adds the
                 essential features to support components, but nothing
                 more. Our discussion includes the type rules and
                 semantics for CCG, as well as a proof of type safety.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "components; custom class loader; first-class generics;
                 Java implementation; modules; signatures",
}

@Article{Ducasse:2007:UCV,
  author =       "St{\'e}phane Ducasse and Roel Wuyts and Alexandre
                 Bergel and Oscar Nierstrasz",
  title =        "User-changeable visibility: resolving unanticipated
                 name clashes in traits",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "171--190",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297040",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A trait is a unit of behaviour that can be composed
                 with other traits and used by classes. Traits offer an
                 alternative to multiple inheritance. Conflict
                 resolution of traits, while flexible, does not
                 completely handle accidental method name conflicts: if
                 a trait with method $m$ is composed with another trait
                 defining a different method $m$ then resolving the
                 conflict may prove delicate or infeasible in cases
                 where both versions of $m$ are still needed. In this
                 paper we present freezeable traits, which provide an
                 expressive composition mechanism to support
                 unanticipated method composition conflicts. Our
                 solution introduces private trait methods and lets the
                 class composer change method visibility at composition
                 time (from public to private and vice versa). Moreover
                 two class composers may use different composition
                 policies for the same trait, something which is not
                 possible in mainstream languages. This approach
                 respects the two main design principles of traits: the
                 class composer is empowered and traits can be flattened
                 away. We present an implementation of freezable traits
                 in Smalltalk. As a side-effect of this implementation
                 we introduced private (early-bound and invisible)
                 methods to Smalltalk by distinguishing object-sends
                 from self-sends. Our implementation uses compile-time
                 bytecode manipulation and, as such, introduces no
                 run-time penalties.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "composition; dynamic typing; encapsulation;
                 information hiding; traits",
}

@Article{Smaragdakis:2007:TIC,
  author =       "Yannis Smaragdakis and Anthony Kay and Reimer Behrends
                 and Michal Young",
  title =        "Transactions with isolation and cooperation",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "191--210",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297042",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present the TIC (Transactions with Isolation and
                 Cooperation) model for concurrent programming. TIC adds
                 to standard transactional memory the ability for a
                 transaction to observe the effects of other threads at
                 selected points. This allows transactions to cooperate,
                 as well as to invoke nonrepeatable or irreversible
                 operations, such as I/O. Cooperating transactions run
                 the danger of exposing intermediate state and of having
                 other threads change the transaction's state. The TIC
                 model protects against unanticipated interference by
                 having the type system keep track of all operations
                 that may (transitively) violate the atomicity of a
                 transaction and require the programmer to establish
                 consistency at appropriate points. The result is a
                 programming model that is both general and simple. We
                 have used the TIC model to re-engineer existing
                 lock-based applications including a substantial
                 multi-threaded web mail server and a memory allocator
                 with coarse-grained locking. Our experience confirms
                 the features of the TIC model: It is convenient for the
                 programmer, while maintaining the benefits of
                 transactional memory.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "nested transactions; open-nesting; punctuation; TIC;
                 transactional memory",
}

@Article{Spring:2007:SHT,
  author =       "Jesper H. Spring and Jean Privat and Rachid Guerraoui
                 and Jan Vitek",
  title =        "{StreamFlex}: high-throughput stream programming in
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "211--228",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297043",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The stream programming paradigm aims to expose
                 coarse-grained parallelism in applications that must
                 process continuous sequences of events. The appeal of
                 stream programming comes from its conceptual
                 simplicity. A program is a collection of independent
                 filters which communicate by the means of
                 uni-directional data channels. This model lends itself
                 naturally to concurrent and efficient implementations
                 on modern multiprocessors. As the output behavior of
                 filters is determined by the state of their input
                 channels, stream programs have fewer opportunities for
                 the errors (such as data races and deadlocks) that
                 plague shared memory concurrent programming. This paper
                 introduces StreamFlex, an extension to Java which
                 marries streams with objects and thus enables to
                 combine, in the same Java virtual machine, stream
                 processing code with traditional object-oriented
                 components. StreamFlex targets high-throughput
                 low-latency applications with stringent
                 quality-of-service requirements. To achieve these
                 goals, it must, at the same time, extend and restrict
                 Java. To allow for program optimization and provide
                 latency guarantees, the StreamFlex compiler restricts
                 Java by imposing a stricter typing discipline on
                 filters. On the other hand, StreamFlex extends the Java
                 virtual machine with real-time capabilities,
                 transactional memory and type-safe region-based
                 allocation. The result is a rich and expressive
                 language that can be implemented efficiently.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Java Virtual Machine; memory management; ownership
                 types; real-time systems; stream processing",
}

@Article{Kuehne:2007:CPL,
  author =       "Thomas Kuehne and Daniel Schreiber",
  title =        "Can programming be liberated from the two-level style:
                 multi-level programming with {DeepJava}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "229--244",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297044",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Since the introduction of object-oriented programming
                 few programming languages have attempted to provide
                 programmers with more than objects and classes, i.e.,
                 more than two levels. Those that did, almost
                 exclusively aimed at describing language
                 properties-i.e., their metaclasses exert linguistic
                 control on language concepts and mechanisms-often in
                 order to make the language extensible. In terms of
                 supporting logical domain classification levels,
                 however, they are still limited to two levels.\par

                 In this paper we conservatively extend the
                 object-oriented programming paradigm to feature an
                 unbounded number of domain classification levels. We
                 can therefore avoid the introduction of accidental
                 complexity into programs caused by accommodating
                 multiple domain levels within only two programming
                 levels. We present a corresponding language design
                 featuring ``deep instantiation'' and demonstrate its
                 features with a running example. Finally, we outline
                 the implementation of our compiler prototype and
                 discuss the potentials of further developing our
                 language design.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "deep characterization; domain metatypes; ontological
                 metamodeling",
}

@Article{Mitchell:2007:CBL,
  author =       "Nick Mitchell and Gary Sevitsky",
  title =        "The causes of bloat, the limits of health",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "245--260",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297046",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Applications often have large runtime memory
                 requirements. In some cases, large memory footprint
                 helps accomplish an important functional, performance,
                 or engineering requirement. A large cache,for example,
                 may ameliorate a pernicious performance problem. In
                 general, however, finding a good balance between memory
                 consumption and other requirements is quite
                 challenging. To do so, the development team must
                 distinguish effective from excessive use of
                 memory.\par

                 We introduce health signatures to enable these
                 distinctions. Using data from dozens of applications
                 and benchmarks, we show that they provide concise and
                 application-neutral summaries of footprint. We show how
                 to use them to form value judgments about whether a
                 design or implementation choice is good or bad. We show
                 how being independent of any application eases
                 comparison across disparate implementations. We
                 demonstrate the asymptotic nature of memory health:
                 certain designs are limited in the health they can
                 achieve, no matter how much the data size scales up.
                 Finally, we show how to use health signatures to
                 automatically generate formulas that predict this
                 asymptotic behavior, and show how they enable powerful
                 limit studies on memory health.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bloat; limit studies; memory footprint; metrics",
}

@Article{Dekel:2007:NRC,
  author =       "Uri Dekel and James D. Herbsleb",
  title =        "Notation and representation in collaborative
                 object-oriented design: an observational study",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "261--280",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297047",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software designers in the object-oriented paradigm can
                 make use of modeling tools and standard notations such
                 as UML. Nevertheless, casual observations from
                 collocated design collaborations suggest that teams
                 tend to use physical mediums to sketch a plethora of
                 informal diagrams in varied representations that often
                 diverge from UML. To better understand such
                 collaborations and support them with tools, we need to
                 understand the origins, roles, uses, and implications
                 of these alternate representations. To this end we
                 conducted observational studies of collaborative design
                 exercises, in which we focused on representation
                 use.\par

                 Our primary finding is that teams intentionally
                 improviserepresentations and organize design
                 information in response to ad-hoc needs, which arise
                 from the evolution of the design, and which are
                 difficult to meet with fixed standard notations. This
                 behavior incurs orientation and grounding difficulties
                 for which teams compensate by relying on memory, other
                 communication mediums, and contextual cues. Without
                 this additional information the artifacts are difficult
                 to interpret and have limited documentation potential.
                 Collaborative design tools and processes should
                 therefore focus on preserving contextual information
                 while permitting unconstrained mixing and improvising
                 of notations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "collaborative software design; modeling; notation;
                 OOD; representation; UML",
}

@Article{Leff:2007:WEV,
  author =       "Avraham Leff and James T. Rayfield",
  title =        "{WebRB}: evaluating a visual domain-specific language
                 for building relational web-applications",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "281--300",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297048",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many web-applications can be characterized as
                 'relational'. In this paper we introduce and evaluate
                 WebRB, a visual domain-specific language for building
                 such applications. WebRB addresses the limitations of
                 the conventional 'imperative-embedding' approach
                 typically used to build relational web-applications. We
                 describe the WebRB language, present extended examples
                 of its use, and discuss the WebRB visual editor,
                 libraries, and runtime. We then evaluate WebRB by
                 comparing it to alternative approaches, and demonstrate
                 its effectiveness in building relational
                 web-applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data-flow languages; relational web-applications;
                 visual programming languages; web relational blocks;
                 web-application development; WebRB",
}

@Article{Bierhoff:2007:MTC,
  author =       "Kevin Bierhoff and Jonathan Aldrich",
  title =        "Modular typestate checking of aliased objects",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "301--320",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297050",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Objects often define usage protocols that clients must
                 follow in order for these objects to work properly.
                 Aliasing makes it notoriously difficult to check
                 whether clients and implementations are compliant with
                 such protocols. Accordingly, existing approaches either
                 operate globally or severely restrict aliasing.\par

                 We have developed a sound modular protocol checking
                 approach, based on typestates, that allows a great deal
                 of flexibility in aliasing while guaranteeing the
                 absence of protocol violations at runtime. The main
                 technical contribution is a novel abstraction, access
                 permissions, that combines typestate and object
                 aliasing information. In our methodology, developers
                 express their protocol design intent through
                 annotations based on access permissions. Our checking
                 approach then tracks permissions through method
                 implementations. For each object reference the checker
                 keeps track of the degree of possible aliasing and is
                 appropriately conservative in reasoning about that
                 reference. This helps developers account for object
                 manipulations that may occur through aliases. The
                 checking approach handles inheritance in a novel way,
                 giving subclasses more flexibility in method
                 overriding. Case studies on Java iterators and streams
                 provide evidence that access permissions can model
                 realistic protocols, and protocol checking based on
                 access permissions can be used to reason precisely
                 about the protocols that arise in practice.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aliasing; behavioral subtyping; linear logic;
                 permissions; typestates",
}

@Article{Greenfieldboyce:2007:TQI,
  author =       "David Greenfieldboyce and Jeffrey S. Foster",
  title =        "Type qualifier inference for {Java}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "321--336",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297051",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Java's type system provides programmers with strong
                 guarantees of type and memory safety, but there are
                 many important properties not captured by standard Java
                 types. We describe JQual, a tool that adds user-defined
                 type qualifiers to Java, allowing programmers to
                 quickly and easily incorporate extra lightweight,
                 application-specific type checking into their programs.
                 JQual provides type qualifier inference, so that
                 programmers need only add a few key qualifier
                 annotations to their program, and then JQual infers any
                 remaining qualifiers and checks their consistency. We
                 explore two applications of JQual. First, we introduce
                 opaque and enum qualifiers to track C pointers and
                 enumerations that flow through Java code via the JNI.
                 In our benchmarks we found that these C values are
                 treated correctly, but there are some places where a
                 client could potentially violate safety. Second,we
                 introduce a read only qualifier for annotating
                 references that cannot be used to modify the objects
                 they refer to. We found that JQual is able to
                 automatically infer read only in many places on method
                 signatures. These results suggest that type qualifiers
                 and type qualifier inference are a useful addition to
                 Java.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "context-free language reachability;
                 context-sensitivity; field-sensitivity; Java; JQual;
                 mutable; opaque; readonly; tracked; transparent; type
                 qualifiers",
}

@Article{Fahndrich:2007:EOI,
  author =       "Manuel Fahndrich and Songtao Xia",
  title =        "Establishing object invariants with delayed types",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "337--350",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297052",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Mainstream object-oriented languages such as C\# and
                 Java provide an initialization model for objects that
                 does not guarantee programmer controlled initialization
                 of fields. Instead, all fields are initialized to
                 default values (0 for scalars and null for non-scalars)
                 on allocation. This is in stark contrast to functional
                 languages, where all parts of an allocation are
                 initialized to programmer-provided values. These
                 choices have a direct impact on two main issues: 1) the
                 prevalence of null in object oriented languages (and
                 its general absence in functional languages), and 2)
                 the ability to initialize circular data structures.
                 This paper explores connections between these differing
                 approaches and proposes a fresh look at initialization.
                 Delayed types are introduced to express and formalize
                 prevalent initialization patterns in object-oriented
                 languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "initialization; non-null types; object invariants",
}

@Article{Shaner:2007:MVH,
  author =       "Steve M. Shaner and Gary T. Leavens and David A.
                 Naumann",
  title =        "Modular verification of higher-order methods with
                 mandatory calls specified by model programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "351--368",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297053",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "What we call a ''higher-order method' (HOM) is a
                 method that makes mandatory calls to other
                 dynamically-dispatched methods. Examples include
                 template methods as in the Template method design
                 pattern and notify methods in the Observer pattern.
                 HOMs are particularly difficult to reason about,
                 because standard pre- and postcondition specifications
                 cannot describe the mandatory calls. For reasoning
                 about such methods, existing approaches use either
                 higher order logic or traces, but both are complex and
                 verbose.\par

                 We describe a simple, concise, and modular approach to
                 specifying HOMs We show how to verify calls to HOMs and
                 their code using first-order verification conditions,
                 in a sound and modular way.\par

                 Verification of client code that calls HOMs can take
                 advantage of the client's knowledge about the mandatory
                 calls to make strong conclusions. Our verification
                 technique validates and explains traditional
                 documentation practice for HOMs, which typically shows
                 their code. However, specifications do not have to
                 expose all of the code to clients, but only enough to
                 determine how the HOM makes its mandatory calls.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "grey-box approach; higher order method; Hoare logic;
                 mandatory call; model program; refinement calculus;
                 specification languages; verification",
}

@Article{Rinard:2007:UEP,
  author =       "Martin C. Rinard",
  title =        "Using early phase termination to eliminate load
                 imbalances at barrier synchronization points",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "369--386",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297055",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a new technique, early phase termination,
                 for eliminating idle processors in parallel
                 computations that use barrier synchronization. This
                 technique simply terminates each parallel phase as soon
                 as there are too few remaining tasks to keep all of the
                 processors busy.\par

                 Although this technique completely eliminates the
                 idling that would other wise occur at barrier
                 synchronization points, it may also change the
                 computation and therefore the result that the
                 computation produces. We address this issue by
                 providing probabilistic distortion models that
                 characterize how the use of early phase termination
                 distorts the result that the computation produces. Our
                 experimental results show that for our set of benchmark
                 applications, 1) early phase termination can improve
                 the performance of the parallel computation, 2) the
                 distortion is small (or can be made to be small with
                 the use of an appropriate compensation technique) and
                 3) the distortion models provide accurate and tight
                 distortion bounds. These bounds can enable users to
                 evaluate the effect of early phase termination and
                 confidently accept results from parallel computations
                 that use this technique if they find the distortion
                 bounds to be acceptable.\par

                 Finally, we identify a general computational pattern
                 that works well with early phase termination and
                 explain why computations that exhibit this pattern can
                 tolerate the early termination of parallel tasks
                 without producing unacceptable results.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "barrier synchronization; early phase termination;
                 parallel computing; probabilistic distortion models",
}

@Article{Elkarablieh:2007:SSA,
  author =       "Bassem Elkarablieh and Sarfraz Khurshid and Duy Vu and
                 Kathryn S. McKinley",
  title =        "{STARC}: static analysis for efficient repair of
                 complex data",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "387--404",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297056",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Data structure corruptions are insidious bugs that
                 reduce the reliability of software systems.
                 Constraint-based datastructure repair promises to help
                 programs recover from potentially crippling corruption
                 errors. Prior work repairs a variety of relatively
                 small data structures, usually with hundreds of
                 nodes.\par

                 We present STARC which uses static analysis to repair
                 data structures with tens of thousands of nodes. Given
                 a Java predicate method that describes the integrity
                 constraints of a structure, STARC statically analyzes
                 the method to identify: (1) the recurrent fields, i.e.,
                 fields that the predicate method uses to traverse the
                 structure; and (2) local field constraints, i.e., how
                 the value of an object field is related to the value of
                 a neighboring object field. STARC executes the
                 predicate method on the structure and monitors its
                 execution to identify corrupt object fields, which
                 STARC then repairs using a systematic search of a
                 neighborhood of the given structure. Each repair action
                 is guided by the result of the static analysis, which
                 enables more efficient and effective repair compared to
                 prior work. Experimental results show that STARC can
                 repair structures with tens of thousands of nodes, up
                 to 100 times larger than prior work.\par

                 STARC efficiency is probably not practical for very
                 large data structures in deployed systems, but opens a
                 promising direction for future work.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data structure repair; static analysis; symbolic
                 execution",
}

@Article{Bond:2007:TBA,
  author =       "Michael D. Bond and Nicholas Nethercote and Stephen W.
                 Kent and Samuel Z. Guyer and Kathryn S. McKinley",
  title =        "Tracking bad apples: reporting the origin of null and
                 undefined value errors",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "405--422",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297057",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programs sometimes crash due to unusable values, for
                 example, when Java and C\# programs dereference null
                 pointers and when C and C++ programs use undefined
                 values to affect program behavior. A stack trace
                 produced on such a crash identifies the effect of the
                 unusable value, not its cause, and is often not much
                 help to the programmer.\par

                 This paper presents efficient origin tracking of
                 unusable values; it shows how to record where these
                 values come into existence, correctly propagate them,
                 and report them if they cause an error. The key idea is
                 value piggybacking: when the original program stores an
                 unusable value, value piggybacking instead stores
                 origin information in the spare bits of the unusable
                 value. Modest compiler support alters the program to
                 propagate these modified values through operations such
                 as assignments and comparisons. We evaluate two
                 implementations: the first tracks null pointer origins
                 in a JVM, and the second tracks undefined value origins
                 in a memory-checking tool built with Valgrind. These
                 implementations show that origin tracking via value
                 piggybacking is fast and often useful, and in the Java
                 case, has low enough overhead for use in a production
                 environment.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debugging; Java; low-overhead run-time support;
                 managed languages; null pointer exceptions; undefined
                 values; valgrind",
}

@Article{Ma:2007:IAE,
  author =       "Kin-Keung Ma and Jeffrey S. Foster",
  title =        "Inferring aliasing and encapsulation properties for
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "423--440",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297059",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "There are many proposals for language techniques to
                 control aliasing and encapsulation in object oriented
                 programs, typically based on notions of object
                 ownership and pointer uniqueness. Most of these systems
                 require extensive manual annotations, and thus there is
                 little experience with these properties in large,
                 existing Java code bases. To remedy this situation, we
                 present Uno, a novel static analysis for automatically
                 inferring ownership, uniqueness, and other aliasing and
                 encapsulation properties in Java. Our analysis requires
                 no annotations, and combines an intraprocedural
                 points-to analysis with an interprocedural,
                 demand-driven predicate resolution algorithm. We have
                 applied Uno to a variety of Java applications and found
                 that some aliasing properties, such as temporarily
                 lending a reference to a method, are common, while
                 others, in particular field and argument ownership, are
                 relatively uncommon. As a result, we believe that Uno
                 can be a valuable tool for discovering and
                 understanding aliasing and encapsulation in Java
                 programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aliasing; encapsulation; Java; lending; ownership;
                 ownership inference; uniqueness; uniqueness inference;
                 Uno",
}

@Article{Cameron:2007:MO,
  author =       "Nicholas R. Cameron and Sophia Drossopoulou and James
                 Noble and Matthew J. Smith",
  title =        "Multiple ownership",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "441--460",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297060",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Existing ownership type systems require objects to
                 have precisely one primary owner, organizing the heap
                 into an ownership tree. Unfortunately, a tree structure
                 is too restrictive for many programs, and prevents many
                 common design patterns where multiple objects
                 interact.\par

                 Multiple Ownership is an ownership type system where
                 objects can have more than one owner, and the resulting
                 ownership structure forms a DAG. We give a
                 straightforward model for multiple ownership, focusing
                 in particular on how multiple ownership can support a
                 powerful effects system that determines when two
                 computations interfere-in spite of the DAG
                 structure.\par

                 We present a core programming language MOJO, Multiple
                 ownership for Java-like Objects, including a type and
                 effects system, and soundness proof. In comparison to
                 other systems, MOJO imposes absolutely no restrictions
                 on pointers, modifications or programs' structure, but
                 in spite of this, MOJO's effects can be used to reason
                 about or describe programs' behaviour.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "effects; ownership types; type and effect systems",
}

@Article{Muller:2007:OTU,
  author =       "Peter M{\"u}ller and Arsenii Rudich",
  title =        "Ownership transfer in universe types",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "461--478",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297061",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Ownership simplifies reasoning about object-oriented
                 programs by controlling aliasing and modifications of
                 objects. Several type systems have been proposed to
                 express and check ownership statically.\par

                 For ownership systems to be practical, they must allow
                 objects to migrate from one owner to another. This
                 ownership transfer is common and occurs, for instance,
                 during the initialization of data structures and when
                 data structures are merged. However, existing ownership
                 type systems either do not support ownership transfer
                 at all or they are too restrictive, give rather weak
                 static guarantees, or require a high annotation
                 overhead.\par

                 In this paper, we present UTT, an extension of Universe
                 Types that supports ownership transfer. UTT combines
                 ownership type checking with a modular static analysis
                 to control references to transferable objects. UTT is
                 very flexible because it permits temporary aliases,
                 even across certain method calls. Nevertheless, it
                 guarantees statically that a cluster of objects is
                 externally-unique when it is transferred and, thus,
                 that ownership transfer is type safe. UTT provides the
                 same encapsulation as Universe Types and requires only
                 negligible annotation overhead.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aliasing; ownership transfer; uniqueness; universe
                 types",
}

@Article{Bierman:2007:LTF,
  author =       "Gavin M. Bierman and Erik Meijer and Mads Torgersen",
  title =        "Lost in translation: formalizing proposed extensions
                 to {C\#}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "479--498",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297063",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Current real-world software applications typically
                 involve heavy use of relational and XML data and their
                 query languages. Unfortunately object-oriented
                 languages and database query languages are based on
                 different semantic foundations and optimization
                 strategies. The resulting ''ROX (Relations, Objects,
                 XML) impedance mismatch'' makes life very difficult for
                 developers.\par

                 Microsoft Corporation is developing extensions to the
                 .NET framework to facilitate easier processing of
                 non-object-oriented data models. Part of this project
                 (known as 'LINQ') includes various extensions to the
                 .NET languages to leverage this support.\par

                 In this paper we consider proposals for C$^\#$ 3.0, the
                 next version of the C$^\#$ programming language. We
                 give both an informal introduction to the new language
                 features, and a precise formal account by defining a
                 translation from C$^\#$ 3.0 to C$^\#$ 2.0. This
                 translation also demonstrates how these language
                 extensions do not require any changes to the underlying
                 CLR.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C\#; LINQ",
}

@Article{Strnisa:2007:JMS,
  author =       "Rok Strni{\v{s}}a and Peter Sewell and Matthew
                 Parkinson",
  title =        "The {Java} module system: core design and semantic
                 definition",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "499--514",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297064",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Java has no module system. Its packages only subdivide
                 the class name space, allowing only a very limited form
                 of component-level information hiding and reuse. Two
                 Java Community Processes have started addressing this
                 problem: one describes the runtime system and has
                 reached an early draft stage, while the other considers
                 the developer's view and only has a straw-man proposal.
                 Both are natural language documents, which inevitably
                 contain ambiguities.\par

                 In this work we design and formalize a core module
                 system for Java. Where the JCP documents are complete,
                 we follow them closely; elsewhere we make reasonable
                 choices. We define the syntax, the type system, and the
                 operational semantics of an LJAM language, defining
                 these rigorously in the Isabelle/HOL automated proof
                 assistant. Using this formalization, we identify
                 various issues with the module system. We highlight the
                 underlying design decisions, and discuss several
                 alternatives and their benefits. Our Isabelle/HOL
                 definitions should provide a basis for further
                 consideration of the design alternatives, for reference
                 implementations, and for proofs of soundness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "JAM; Java; LJAM; module; superpackage",
}

@Article{Kojarski:2007:AAC,
  author =       "Sergei Kojarski and David H. Lorenz",
  title =        "{Awesome}: an aspect co-weaving system for composing
                 multiple aspect-oriented extensions",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "515--534",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297065",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Domain specific aspect-oriented language extensions
                 offer unique capabilities to deal with a variety of
                 cross cutting concerns. Ideally, one should be able to
                 use several of these extensions together in a single
                 program. Unfortunately, each extension generally
                 implements its own specialized weaver and the different
                 weavers are incompatible. Even if the weavers were
                 compatible, combining them is a difficult problem to
                 solve in general, because each extension defines its
                 own language with new semantics. In this paper we
                 present a practical composition framework, named
                 Awesome, for constructing a multi-extension weaver by
                 plugging together independently developed aspect
                 mechanisms. The framework has a component-based and
                 aspect-oriented architecture that facilitates the
                 development and integration of aspect weavers. To be
                 scalable, the framework provides a default resolution
                 of feature interactions in the composition. To be
                 general, the framework provides means for customizing
                 the composition behavior. Furthermore, to be
                 practically useful, there is no framework-associated
                 overhead on the runtime performance of compiled aspect
                 programs. To illustrate the Awesome framework
                 concretely, we demonstrate the construction of a weaver
                 for a multi-extension AOP language that combines Cool
                 and AspectJ. However, the composition method is not
                 exclusive to Cool and AspectJ-it can be applied to
                 combine any comparable reactive aspect mechanisms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "AOP; aspect extension; aspect mechanism; aspect
                 weaver; composition; DSL; framework; pluggability",
}

@Article{Pothier:2007:SOD,
  author =       "Guillaume Pothier and {\'E}ric Tanter and Jos{\'e}
                 Piquer",
  title =        "Scalable omniscient debugging",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "535--552",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297067",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Omniscient debuggers make it possible to navigate
                 backwards in time within a program execution trace,
                 drastically improving the task of debugging complex
                 applications. Still, they are mostly ignored in
                 practice due to the challenges raised by the
                 potentially huge size of the execution traces. This
                 paper shows that omniscient debugging can be
                 realistically realized through the use of different
                 techniques addressing efficiency, scalability and
                 usability. We present TOD, a portable Trace-Oriented
                 Debugger for Java, which combines an efficient
                 instrumentation for event generation, a specialized
                 distributed database for scalable storage and efficient
                 querying, support for partial traces in order to reduce
                 the trace volume to relevant events, and innovative
                 interface components for interactive trace navigation
                 and analysis in the development environment. Provided a
                 reasonable infrastructure, the performance of TOD
                 allows a responsive debugging experience in the face of
                 large programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "execution traces; interface components; omniscient
                 debugging; partial traces; scalability; specialized
                 distributed database",
}

@Article{Buytaert:2007:UHS,
  author =       "Dries Buytaert and Andy Georges and Michael Hind and
                 Matthew Arnold and Lieven Eeckhout and Koen {De
                 Bosschere}",
  title =        "Using {HPM}-sampling to drive dynamic compilation",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "553--568",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297068",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "All high-performance production JVMs employ an
                 adaptive strategy for program execution. Methods are
                 first executed unoptimized and then an online profiling
                 mechanism is used to find a subset of methods that
                 should be optimized during the same execution. This
                 paper empirically evaluates the design space of several
                 profilers for initiating dynamic compilation and shows
                 that existing online profiling schemes suffer from
                 several limitations. They provide an insufficient
                 number of samples, are untimely, and have limited
                 accuracy at determining the frequently executed
                 methods. We describe and comprehensively evaluate
                 HPM-sampling, a simple but effective profiling scheme
                 for finding optimization candidates using hardware
                 performance monitors (HPMs) that addresses the
                 aforementioned limitations. We show that HPM-sampling
                 is more accurate; has low overhead; and improves
                 performance by 5.7\% on average and up to 18.3\% when
                 compared to the default system in Jikes RVM, without
                 changing the compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hardware performance monitors; Java; just-in-time
                 compilation; profiling",
}

@Article{Chen:2007:MEG,
  author =       "Feng Chen and Grigore Ro{\c{s}}u",
  title =        "{MOP}: an efficient and generic runtime verification
                 framework",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "569--588",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297069",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Monitoring-Oriented Programming (MOP1) [21, 18, 22,
                 19] is a formal framework for software development and
                 analysis, in which the developer specifies desired
                 properties using definable specification formalisms,
                 along with code to execute when properties are violated
                 or validated. The MOP framework automatically generates
                 monitors from the specified properties and then
                 integrates them together with the user-defined code
                 into the original system.\par

                 The previous design of MOP only allowed specifications
                 without parameters, so it could not be used to state
                 and monitor safety properties referring to two or more
                 related objects. In this paper we propose a parametric
                 specification formalism-independent extension of MOP,
                 together with an implementation of JavaMOP that
                 supports parameters. In our current implementation,
                 parametric specifications are translated into AspectJ
                 code and then weaved into the application using
                 off-the-shelf AspectJ compilers; hence, MOP
                 specifications can be seen as formal or logical
                 aspects.\par

                 Our JavaMOP implementation was extensively evaluated on
                 two benchmarks, Dacapo [14] and Tracematches [8],
                 showing that runtime verification in general and MOP in
                 particular are feasible. In some of the examples,
                 millions of monitor instances are generated, each
                 observing a set of related objects. To keep the runtime
                 overhead of monitoring and event observation low, we
                 devised and implemented a decentralized indexing
                 optimization. Less than 8\% of the experiments showed
                 more than 10\% runtime overhead; in most cases our tool
                 generates monitoring code as efficient as the
                 hand-optimized code. Despite its genericity, JavaMOP is
                 empirically shown to be more efficient than runtime
                 verification systems specialized and optimized for
                 particular specification formalisms. Many property
                 violations were detected during our experiments; some
                 of them are benign, others indicate defects in
                 programs. Many of these are subtle and hard to find by
                 ordinary testing.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented programming; monitoring-oriented
                 programming; runtime verification",
}

@Article{Avgustinov:2007:MTM,
  author =       "Pavel Avgustinov and Julian Tibble and Oege de Moor",
  title =        "Making trace monitors feasible",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "589--608",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297070",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A trace monitor observes an execution trace at
                 runtime; when it recognises a specified sequence of
                 events, the monitor runs extra code. In the
                 aspect-oriented programming community, the idea
                 originated as a generalisation of the advice-trigger
                 mechanism: instead of matching on single events
                 (joinpoints), one matches on a sequence of events. The
                 runtime verification community has been investigating
                 similar mechanisms for a number of years, specifying
                 the event patterns in terms of temporal logic, and
                 applying the monitors to hardware and software.\par

                 In recent years trace monitors have been adapted for
                 use with mainstream object-oriented languages. In this
                 setting, a crucial feature is to allow the programmer
                 to quantify over groups of related objects when
                 expressing the sequence of events to match. While many
                 language proposals exist for allowing such features,
                 until now no implementation had scalable performance:
                 execution on all but very simple examples was
                 infeasible.\par

                 This paper rectifies that situation, by identifying two
                 optimisations for generating feasible trace monitors
                 from declarative specifications of the relevant event
                 pattern. We restrict ourselves to optimisations that do
                 not have a significant impact on compile-time: they
                 only analyse the event pattern, and not the monitored
                 code itself.\par

                 The first optimisation is an important improvement over
                 an earlier proposal in [2] to avoid space leaks. The
                 second optimisation is a form of indexing for partial
                 matches. Such indexing needs to be very carefully
                 designed to avoid introducing new space leaks, and the
                 resulting data structure is highly non-trivial.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "program analysis; program monitors; runtime
                 verification",
}

@Article{Rinard:2007:LCZ,
  author =       "Martin C. Rinard",
  title =        "Living in the comfort zone",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "611--622",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297072",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A comfort zone is a tested region of a system's input
                 space within which it has been observed to behave
                 acceptably. To keep systems operating within their
                 comfort zones, we advocate the interposition of
                 rectifiers between systems and their input sources.
                 Rectifiers are designed to transform inputs to ensure
                 that they are within the comfort zone before they are
                 presented to the system. Rectifiers enforce a highly
                 constrained input format and, if necessary, discard
                 information to force inputs to conform to this format.
                 Potential benefits of this approach include the
                 elimination of errors and vulnerabilities, the excision
                 of undesirable excess functionality from large, complex
                 systems, and a simplification of the computing
                 environment.\par

                 We have developed a rectifier for email messages and
                 used this rectifier to force messages into a specific
                 constrained form. Our results show that this rectifier
                 can successfully produce messages that keep the Pine
                 email client strictly within code previously confirmed
                 (during a small testing and training session) to
                 function acceptably. Our results also show that the
                 rectifier completely eliminates a security
                 vulnerability in the Pine email client. And finally,
                 the rectifier is able to accomplish these goals while
                 still preserving an acceptable amount of information
                 from the original messages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "acceptability properties; comfort zone; monitoring;
                 rectification; repair",
}

@Article{McDirmid:2007:LIL,
  author =       "Sean McDirmid",
  title =        "Living it up with a live programming language",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "623--638",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297073",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A dynamic language promotes ease of use through
                 flexible typing, a focus on high-level programming, and
                 by streamlining the edit-compile-debug cycle. Live
                 languages go beyond dynamic languages with more ease of
                 use features. A live language supports live programming
                 that provides programmers with responsive and
                 continuous feedback about how their edits affect
                 program execution. A live language is also based on
                 high-level constructs such as declarative rules so that
                 programmers can write less code. A live language could
                 also provide programmers with responsive semantic
                 feedback to enable time-saving services such as code
                 completion. This paper describes the design of a
                 textual live language that is based on reactive
                 data-flow values known as signals and dynamic
                 inheritance. Our language, SuperGlue, supports live
                 programming with responsive semantic feedback, which we
                 demonstrate with a working prototype.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "live programming",
}

@Article{Edwards:2007:NIA,
  author =       "Jonathan Edwards",
  title =        "No ifs, ands, or buts: uncovering the simplicity of
                 conditionals",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "639--658",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297075",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Schematic tables are a new representation for
                 conditionals. Roughly a cross between decision tables
                 and data flowgraphs, they represent computation and
                 decision-making orthogonally. They unify the full range
                 of conditional constructs, from if statements through
                 pattern matching to polymorphic predicate dispatch.
                 Program logic is maintained in a declarative canonical
                 form that enforces completeness and disjointness among
                 choices. Schematic tables can be used either as a code
                 specification/generation tool, or as a self-contained
                 diagrammatic programming language. They give program
                 logic the clarity of truth tables, and support
                 high-level direct manipulation of that logic, avoiding
                 much of the mental computation demanded by conventional
                 conditionals.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "control structures; decision tables; polymorphism;
                 refactoring; visual programming",
}

@Article{Fleissner:2007:EAA,
  author =       "Sebastian Fleissner and Elisa L. A. Baniassad",
  title =        "Epi-aspects: aspect-oriented conscientious software",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "659--674",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297076",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Conscientious software is a recently proposed paradigm
                 for developing reliable, self-sustaining software
                 systems. Conscientious software systems consist of an
                 allopoietic part, which encapsulates application
                 functionality, and an autopoietic part that is
                 responsible for keeping the system alive by monitoring
                 the application and adapting it to environmental
                 changes. Practical application of the conscientious
                 software paradigm requires solutions to two open
                 problems: The design of suitable autopoietic
                 programming languages and the proposal of concrete
                 architectures for combining the autopoietic and
                 allopoietic parts. In this paper, we tackle the second
                 challenge, and propose a concrete, aspect-oriented
                 architecture for realizing conscientious software.
                 Here, we introduce epi-aspects, a construct for
                 upgrading new and existing applications into
                 conscientious software. This paper provides the
                 architectural design of epi-aspects, an autopoietic
                 simulator, and a concrete framework for developing
                 epi-aspects in Java. The framework and the simulator
                 are used to conduct a case study in which we develop
                 and test a conscientious Java application.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented programming; conscientious software",
}

@Article{Meijer:2007:CUP,
  author =       "Erik Meijer",
  title =        "Confessions of a used programming language salesman",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "677--694",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297078",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "For many years I had been fruitlessly trying to sell
                 functional programming and Haskell to solve real world
                 problems such as scripting and data-intensive
                 three-tier distributed web applications. The lack of
                 widespread adoption of Haskell is a real pity.
                 Functional programming concepts are key to curing many
                 of the headaches that plague the majority of
                 programmers, who today are forced to use imperative
                 languages. If the mountain won't come to Mohammed,
                 Mohammed must go to the mountain, and so I left
                 academia to join industry. Instead of trying to
                 convince imperative programmers to forget everything
                 they already know and learn something completely new, I
                 decided to infuse existing imperative object-oriented
                 programming languages with functional programming
                 features. As a result, functional programming has
                 finally reached the masses, except that it is called
                 Visual Basic 9 instead of Haskell 98.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Grossman:2007:TMG,
  author =       "Dan Grossman",
  title =        "The transactional memory \slash garbage collection
                 analogy",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "695--706",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297080",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This essay presents remarkable similarities between
                 transactional memory and garbage collection. The
                 connections are fascinating in their own right, and
                 they let us better understand one technology by
                 thinking about the corresponding issues for the
                 other.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "garbage collection; transactional memory",
}

@Article{Frenger:2007:HYM,
  author =       "Paul Frenger",
  title =        "Hacking your mouse: errata for {Mar}. 2007",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "11",
  pages =        "3--3",
  month =        nov,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328788.1328790",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:02 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sarma:2007:SSS,
  author =       "M. Sarma and R. Mall",
  title =        "Synthesis of system state models",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "11",
  pages =        "5--14",
  month =        nov,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328788.1328792",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:02 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many modern systems are state-based. For such systems,
                 a system state model is important not only for
                 understanding the behavior of the system, but also for
                 test case design, test coverage analysis, maintenance,
                 etc. However, developers rarely construct the system
                 state model for practical systems because it is usually
                 too complex and cumbersome to construct. On the other
                 hand, developers normally construct the state models of
                 individual classes. We propose a novel method to
                 automatically synthesize the state model of a system by
                 analyzing the different sequences of scenarios and
                 determining whether these lead to any state changes of
                 the individual objects.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic test case generation; state coverage; system
                 state model; test coverage analysis; transition
                 coverage; UML",
}

@Article{Svensson:2007:FXD,
  author =       "Kurt Svensson",
  title =        "Faster {XML} data validation in a programming language
                 with {XML} datatypes",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "11",
  pages =        "15--21",
  month =        nov,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328788.1328793",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:02 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "EDI-C is a programming language used in B2B (EDI,
                 WebServices) applications. It is possible to declare
                 XML variables in the language. XML variables are
                 declared in a way similar to structures in C and C++.
                 These variables are accessed through dot-notation.
                 Validation information (facets) can also be declared.
                 The XML structures and their validation values are, at
                 compile time, optimized for fast evaluation and
                 execution in the runtime environment. Usually XSD
                 schema are read and evaluated when an XML document
                 loads -- our method loads and evaluates the XSD schema
                 at compile time. Thus, when executing a program, the
                 XSD schema has already been loaded and evaluated --
                 i.e., it's no longer necessary to load and evaluate
                 each time the program is executed. This method
                 increases XML processing speed, which is vital for
                 WebServices messaging.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "B2B; data validation; format conversion; WebServices;
                 XML; XML data declarations; XSD schema; XSD schema
                 facets",
}

@Article{Xia:2007:FSE,
  author =       "Feng Xia and Guosong Tian and Youxian Sun",
  title =        "Feedback scheduling: an event-driven paradigm",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "12",
  pages =        "7--14",
  month =        dec,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1341752.1341753",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:09 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Embedded computing systems today increasingly feature
                 resource constraints and workload variability, which
                 lead to uncertainty in resource availability. This
                 raises great challenges to software design and
                 programming in multitasking environments. In this
                 paper, the emerging methodology of feedback scheduling
                 is introduced to address these challenges. As a
                 closed-loop approach to resource management, feedback
                 scheduling promises to enhance the flexibility and
                 resource efficiency of various software programs
                 through dynamically distributing available resources
                 among concurrent tasks based on feedback information
                 about the actual usage of the resources. With emphasis
                 on the behavioral design of feedback schedulers, we
                 describe a general framework of feedback scheduling in
                 the context of real-time control applications. A simple
                 yet illustrative feedback scheduling algorithm is
                 given. From a programming perspective, we describe how
                 to modify the implementation of control tasks to
                 facilitate the application of feedback scheduling. An
                 event-driven paradigm that combines time-triggered and
                 event-triggered approaches is proposed for programming
                 of the feedback scheduler. Simulation results argue
                 that the proposed event-driven paradigm yields better
                 performance than time-triggered paradigm in dynamic
                 environments where the workload varies irregularly and
                 unpredictably.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "event-driven; feedback scheduling; flexibility;
                 overhead; programming; resource efficiency",
}

@Article{Syropoulos:2007:PMV,
  author =       "Apostolos Syropoulos",
  title =        "{$\Pi$} machines: virtual machines realizing graph
                 structured transition {P} systems",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "12",
  pages =        "15--22",
  month =        dec,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1341752.1341754",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:09 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "P systems is a model of computation inspired by the
                 way cells live and function. A typical P system
                 consists of nested compartments surrounded by porous
                 membranes, which contain data that are transformed by
                 transformation rules. P systems can be simulated by a
                 distributed computing system, where each compartment of
                 a given system is simulated by a (remote) process, each
                 running on a different node. By adopting a more
                 'liberal' membrane structure where compartments do not
                 necessarily form a tree-structure but a
                 graph-structure, we get a more general model of
                 computation, which we call graph structured P systems.
                 Any instance of the new model can be implemented by a
                 network of virtual machines, called $\pi$ machines,
                 where each machine is able to implement the
                 functionality of any simple compartment.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distributed computing; graph structured P systems;
                 virtual machines",
}

@Article{Fontana:2008:SBM,
  author =       "Walter Fontana",
  title =        "Systems biology, models, and concurrency",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "1--2",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328439",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Models will play a central role in the representation,
                 storage, manipulation, and communication of knowledge
                 in systems biology. Models capable of fulfilling such a
                 role will likely differ from the all familiar styles
                 deployed with great success in the physical sciences.
                 Molecular systems at the basis of cellular decision
                 processes are concurrent and combinatorial. Their
                 behavior is as much constrained by relationships of
                 causality between molecular interactions as it is by
                 chemical kinetics. Understanding how such systems give
                 rise to coherent behavior and designing effective
                 interventions to fight disease will require a notion of
                 model that is akin to the concept of program in
                 computer science. I will discuss recent progress in
                 implementing a platform and tools for formal analysis
                 that bring us closer to this vision. Protein
                 interactions are represented by means of rules
                 expressed in a formal language that captures a very
                 simple, yet effective and biologically meaningful level
                 of abstraction. Models, then, are collections of rules
                 operating on an initial set of agents, in complete
                 analogy to rules of organic chemical reactions. I will
                 describe tools for analyzing and navigating rule
                 collections as well as exploring their dynamics. We
                 draw on concepts familiar to computer science,
                 especially event structures, and adapt them to
                 biological needs with the goal of formalizing the
                 notion of 'pathway'. The challenges are many, but a
                 road map for the future is discernible. Computer
                 science will play a central role in providing an
                 additional foundational layer, both theoretical and
                 practical, that neither physics nor chemistry can offer
                 on their own in the future definition of the biological
                 sciences.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "kappa; models; systems biology",
}

@Article{Aydemir:2008:EFM,
  author =       "Brian Aydemir and Arthur Chargu{\'e}raud and Benjamin
                 C. Pierce and Randy Pollack and Stephanie Weirich",
  title =        "Engineering formal metatheory",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "3--15",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328443",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Machine-checked proofs of properties of programming
                 languages have become a critical need, both for
                 increased confidence in large and complex designs and
                 as a foundation for technologies such as proof-carrying
                 code. However, constructing these proofs remains a
                 black art, involving many choices in the formulation of
                 definitions and theorems that make a huge cumulative
                 difference in the difficulty of carrying out large
                 formal developments. There presentation and
                 manipulation of terms with variable binding is a key
                 issue.\par

                 We propose a novel style for formalizing metatheory,
                 combining locally nameless representation of terms and
                 cofinite quantification of free variable names in
                 inductive definitions of relations on terms (typing,
                 reduction, \ldots{}). The key technical insight is that
                 our use of cofinite quantification obviates the need
                 for reasoning about equivariance (the fact that free
                 names can be renamed in derivations); in particular,
                 the structural induction principles of relations
                 defined using cofinite quantification are strong enough
                 for metatheoretic reasoning, and need not be explicitly
                 strengthened. Strong inversion principles follow
                 (automatically, in Coq) from the induction principles.
                 Although many of the underlying ingredients of our
                 technique have been used before, their combination here
                 yields a significant improvement over other
                 methodologies using first-order representations,
                 leading to developments that are faithful to informal
                 practice, yet require no external tool support and
                 little infrastructure within the proof assistant.\par

                 We have carried out several large developments in this
                 style using the Coq proof assistant and have made them
                 publicly available. Our developments include type
                 soundness for System F sub; and core ML (with
                 references, exceptions, datatypes, recursion, and
                 patterns) and subject reduction for the Calculus of
                 Constructions. Not only do these developments
                 demonstrate the comprehensiveness of our approach; they
                 have also been optimized for clarity and robustness,
                 making them good templates for future extension.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binding; coq; locally nameless",
}

@Article{Tristan:2008:FVT,
  author =       "Jean-Baptiste Tristan and Xavier Leroy",
  title =        "Formal verification of translation validators: a case
                 study on instruction scheduling optimizations",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "17--27",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328444",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Translation validation consists of transforming a
                 program and a posteriori validating it in order to
                 detect a modification of its semantics. This approach
                 can be used in a verified compiler, provided that
                 validation is formally proved to be correct. We present
                 two such validators and their Coq proofs of
                 correctness. The validators are designed for two
                 instruction scheduling optimizations: list scheduling
                 and trace scheduling.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "scheduling optimizations; the coq proof assistant;
                 translation validation; verified compilers",
}

@Article{Voigtlander:2008:MAA,
  author =       "Janis Voigtl{\"a}nder",
  title =        "Much ado about two (pearl): a pearl on parallel prefix
                 computation",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "29--35",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328445",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This pearl develops a statement about parallel prefix
                 computation in the spirit of Knuth's 0-1-Principle for
                 oblivious sorting algorithms. It turns out that 0-1 is
                 not quite enough here. The perfect hammer for the nails
                 we are going to drive in is relational parametricity.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "0-1-principle; free theorems; parallel prefix
                 computation; relational parametricity",
}

@Article{Neamtiu:2008:CEV,
  author =       "Iulian Neamtiu and Michael Hicks and Jeffrey S. Foster
                 and Polyvios Pratikakis",
  title =        "Contextual effects for version-consistent dynamic
                 software updating all and safe concurrent programming",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "37--49",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328447",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a generalization of standard
                 effect systems that we call contextual effects. A
                 traditional effect system computes the effect of an
                 expression e. Our system additionally computes the
                 effects of the computational context in which $e$
                 occurs. More specifically, we compute the effect of the
                 computation that has already occurred(the prior effect)
                 and the effect of the computation yet to take place
                 (the future effect).\par

                 Contextual effects are useful when the past or future
                 computation of the program is relevant at various
                 program points. We present two substantial examples.
                 First, we show how prior and future effects can be used
                 to enforce transactional version consistency (TVC), a
                 novel correctness property for dynamic software
                 updates. TV Censures that programmer-designated
                 transactional code blocks appear to execute entirely at
                 the same code version, even if a dynamic update occurs
                 in the middle of the block. Second, we show how future
                 effects can be used in the analysis of multi-threaded
                 programs to find thread-shared locations. This is an
                 essential step in applications such as data race
                 detection.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "computation effects; contextual effects; data race
                 detection; dynamic software updating; type and effect
                 systems; version consistency",
}

@Article{Moore:2008:HLS,
  author =       "Katherine F. Moore and Dan Grossman",
  title =        "High-level small-step operational semantics for
                 transactions",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "51--62",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328448",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software transactions have received significant
                 attention as a way to simplify shared-memory concurrent
                 programming, but insufficient focus has been given to
                 the precise meaning of software transactions or their
                 interaction with other language features. This work
                 begins to rectify that situation by presenting a family
                 of formal languages that model a wide variety of
                 behaviors for software transactions. These languages
                 abstract away implementation details of transactional
                 memory, providing high-level definitions suitable for
                 programming languages. We use small-step semantics in
                 order to represent explicitly the interleaved execution
                 of threads that is necessary to investigate pertinent
                 issues.\par

                 We demonstrate the value of our core approach to
                 modeling transactions by investigating two issues in
                 depth. First, we consider parallel nesting, in which
                 parallelism and transactions can nest arbitrarily.
                 Second, we present multiple models for weak isolation,
                 in which nontransactional code can violate the
                 isolation of a transaction. For both, type-and-effect
                 systems let us soundly and statically restrict what
                 computation can occur inside or outside a transaction.
                 We prove some key language-equivalence theorems to
                 confirm that under sufficient static restrictions, in
                 particular that each mutable memory location is used
                 outside transactions or inside transactions (but not
                 both), no program can determine whether the language
                 implementation uses weak isolation or strong
                 isolation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "isolation; operational semantics; parallelism; strong
                 atomicity; transactional memory; weak atomicity",
}

@Article{Abadi:2008:STM,
  author =       "Mart{\'\i}n Abadi and Andrew Birrell and Tim Harris
                 and Michael Isard",
  title =        "Semantics of transactional memory and automatic mutual
                 exclusion",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "63--74",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328449",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software Transactional Memory (STM) is an attractive
                 basis for the development of language features for
                 concurrent programming. However, the semantics of these
                 features can be delicate and problematic. In this paper
                 we explore the tradeoffs between semantic simplicity,
                 the viability of efficient implementation strategies,
                 and the flexibility of language constructs.
                 Specifically, we develop semantics and type systems for
                 the constructs of the Automatic Mutual Exclusion (AME)
                 programming model; our results apply also to other
                 constructs, such as atomic blocks. With this semantics
                 as a point of reference, we study several
                 implementation strategies. We model STM systems that
                 use in-place update, optimistic concurrency, lazy
                 conflict detection, and roll-back. These strategies are
                 correct only under non-trivial assumptions that we
                 identify and analyze. One important source of errors is
                 that some efficient implementations create dangerous
                 'zombie' computations where a transaction keeps running
                 after experiencing a conflict; the assumptions confine
                 the effects of these computations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "operational semantics; STM; transactional memory",
}

@Article{Parkinson:2008:SLA,
  author =       "Matthew J. Parkinson and Gavin M. Bierman",
  title =        "Separation logic, abstraction and inheritance",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "75--86",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328451",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Inheritance is a fundamental concept in
                 object-oriented programming, allowing new classes to be
                 defined in terms of old classes. When used with care,
                 inheritance is an essential tool for object-oriented
                 programmers. Thus, for those interested in developing
                 formal verification techniques, the treatment of
                 inheritance is of paramount importance. Unfortunately,
                 inheritance comes in a number of guises, all requiring
                 subtle techniques.\par

                 To address these subtleties, most existing verification
                 methodologies typically adopt one of two restrictions
                 to handle inheritance: either (1) they prevent a
                 derived class from restricting the behaviour of its
                 base class (typically by syntactic means) to trivialize
                 the proof obligations; or (2) they allow a derived
                 class to restrict the behaviour of its base class, but
                 require that every inherited method must be reverified.
                 Unfortunately, this means that typical inheritance-rich
                 code either cannot be verified or results in an
                 unreasonable number of proof obligations.\par

                 In this paper, we develop a separation logic for a core
                 object-oriented language. It allows derived classes
                 which override the behaviour of their base class, yet
                 supports the inheritance of methods without
                 reverification where this is safe. For each method, we
                 require two specifications: a static specification that
                 is used to verify the implementation and direct method
                 calls (in Java this would be with a super call); and a
                 dynamic specification that is used for calls that are
                 dynamically dispatched; along with a simple
                 relationship between the two specifications. Only the
                 dynamic specification is involved with behavioural
                 subtyping. This simple separation of concerns leads to
                 a powerful system that supports all forms of
                 inheritance with low proof-obligation overheads. We
                 both formalize our methodology and demonstrate its
                 power with a series of inheritance examples.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "classes; modularity; separation logic",
}

@Article{Chin:2008:EMO,
  author =       "Wei-Ngan Chin and Cristina David and Huu Hai Nguyen
                 and Shengchao Qin",
  title =        "Enhancing modular {OO} verification with separation
                 logic",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "87--99",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328452",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Conventional specifications for object-oriented (OO)
                 programs must adhere to behavioral subtyping in support
                 of class inheritance and method overriding. However,
                 this requirement inherently weakens the specifications
                 of overridden methods in superclasses, leading to
                 imprecision during program reasoning. To address this,
                 we advocate a fresh approach to OO verification that
                 focuses on the distinction and relation between
                 specifications that cater to calls with static
                 dispatching from those for calls with dynamic
                 dispatching. We formulate a novel specification
                 subsumption that can avoid code re-verification, where
                 possible. Using a predicate mechanism, we propose a
                 flexible scheme for supporting class invariant and
                 lossless casting. Our aim is to lay the foundation for
                 a practical verification system that is precise,
                 concise and modular for sequential OO programs. We
                 exploit the separation logic formalism to achieve
                 this.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automated verification; enhanced subsumption; lossless
                 casting; separation logic; static and dynamic
                 specifications",
}

@Article{Brotherston:2008:CPP,
  author =       "James Brotherston and Richard Bornat and Cristiano
                 Calcagno",
  title =        "Cyclic proofs of program termination in separation
                 logic",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "101--112",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328453",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a novel approach to proving the termination
                 of heap-manipulating programs, which combines
                 separation logic with cyclic proof within a Hoare-style
                 proof system. Judgements in this system express
                 (guaranteed) termination of the program when started
                 from a given line in the program and in a state
                 satisfying a given precondition, which is expressed as
                 a formula of separation logic. The proof rules of our
                 system are of two types: logical rules that operate on
                 preconditions; and symbolic execution rules that
                 capture the effect of executing program
                 commands.\par

                 Our logical preconditions employ inductively defined
                 predicates to describe heap properties, and proofs in
                 our system are cyclic proofs: cyclic derivations in
                 which some inductive predicate is unfolded infinitely
                 often along every infinite path, thus allowing us to
                 discard all infinite paths in the proof by an infinite
                 descent argument. Moreover, the use of this soundness
                 condition enables us to avoid the explicit construction
                 and use of ranking functions for termination. We also
                 give a completeness result for our system, which is
                 relative in that it relies upon completeness of a proof
                 system for logical implications in separation logic. We
                 give examples illustrating our approach, including one
                 example for which the corresponding ranking function is
                 non-obvious: termination of the classical algorithm for
                 in-place reversal of a (possibly cyclic) linked list.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cyclic proof; Hoare logic; inductive definitions;
                 program verification; separation logic; termination",
}

@Article{Asperti:2008:ICR,
  author =       "Andrea Asperti",
  title =        "The intensional content of {Rice}'s theorem",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "113--119",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328455",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The proofs of major results of Computability Theory
                 like Rice, Rice-Shapiro or Kleene's fixed point theorem
                 hide more information of what is usually expressed in
                 their respective statements. We make this information
                 explicit, allowing to state stronger, complexity
                 theoretic-versions of all these theorems. In
                 particular, we replace the notion of extensional set of
                 indices of programs, by a set of indices of programs
                 having not only the same extensional behavior but also
                 similar complexity (Complexity Clique). We prove, under
                 very weak complexity assumptions, that any recursive
                 Complexity Clique is trivial, and any r.e. Complexity
                 Clique is an extensional set (and thus satisfies
                 Rice-Shapiro conditions). This allows, for instance, to
                 use Rice's argument to prove that the property of
                 having polynomial complexity is not decidable, and to
                 use Rice-Shapiro to conclude that it is not even
                 semi-decidable. We conclude the paper with a discussion
                 of 'complexity-theoretic' versions of Kleene's Fixed
                 Point Theorem.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "complexity; computability; recursion theory",
}

@Article{Gaboardi:2008:LAP,
  author =       "Marco Gaboardi and Jean-Yves Marion and Simona Ronchi
                 Della Rocca",
  title =        "A logical account of pspace",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "121--131",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328456",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a characterization of PSPACE by means of a
                 type assignment for an extension of lambda calculus
                 with a conditional construction. The type assignment
                 STA$_B$ is an extension of STA, a type assignment for
                 lambda-calculus inspired by Lafont's Soft Linear
                 Logic.\par

                 We extend STA by means of a ground type and terms for
                 booleans. The key point is that the elimination rule
                 for booleans is managed in an additive way. Thus, we
                 are able to program polynomial time Alternating Turing
                 Machines. Conversely, we introduce a call-by-name
                 evaluation machine in order to compute programs in
                 polynomial space. As far as we know, this is the first
                 characterization of PSPACE which is based on lambda
                 calculus and light logics.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "implicit computational complexity; linear logic;
                 polynomial space; type assignment",
}

@Article{Danielsson:2008:LST,
  author =       "Nils Anders Danielsson",
  title =        "Lightweight semiformal time complexity analysis for
                 purely functional data structures",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "133--144",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328457",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Okasaki and others have demonstrated how purely
                 functional data structures that are efficient even in
                 the presence of persistence can be constructed. To
                 achieve good time bounds essential use is often made of
                 laziness. The associated complexity analysis is
                 frequently subtle, requiring careful attention to
                 detail, and hence formalising it is valuable. This
                 paper describes a simple library which can be used to
                 make the analysis of a class of purely functional data
                 structures and algorithms almost fully formal. The
                 basic idea is to use the type system to annotate every
                 function with the time required to compute its result.
                 An annotated monad is used to combine time complexity
                 annotations. The library has been used to analyse some
                 existing data structures, for instance the deque
                 operations of Hinze and Paterson's finger trees.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "amortised time complexity; dependent types; lazy
                 evaluation; purely functional data structures",
}

@Article{McMillan:2008:RHP,
  author =       "K. L. McMillan",
  title =        "Relevance heuristics for program analysis",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "145--146",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328440",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Relevance heuristics allow us to tailor a program
                 analysis to a particular property to be verified. This
                 in turn makes it possible to improve the precision of
                 the analysis where needed, while maintaining
                 scalability. In this talk I will discuss the principles
                 by which SAT solvers and other decision procedures
                 decide what information is relevant to a given proof.
                 Then we will see how these ideas can be exploited in
                 program verification using the method of Craig
                 interpolation. The result is an analysis that is finely
                 tuned to prove a given property of a program. At the
                 end of the talk, I will cover some recent research in
                 this area, including the use of interpolants for
                 verifying heap-manipulating programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpretation; Craig interpolation; model
                 checking",
}

@Article{Gupta:2008:PNT,
  author =       "Ashutosh Gupta and Thomas A. Henzinger and Rupak
                 Majumdar and Andrey Rybalchenko and Ru-Gang Xu",
  title =        "Proving non-termination",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "147--158",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328459",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The search for proof and the search for
                 counterexamples (bugs) are complementary activities
                 that need to be pursued concurrently in order to
                 maximize the practical success rate of verification
                 tools. While this is well-understood in safety
                 verification, the current focus of liveness
                 verification has been almost exclusively on the search
                 for termination proofs. A counterexample to termination
                 is an infinite program execution. In this paper, we
                 propose a method to search for such counterexamples.
                 The search proceeds in two phases. We first dynamically
                 enumerate lasso-shaped candidate paths for
                 counterexamples, and then statically prove their
                 feasibility. We illustrate the utility of our
                 nontermination prover, called TNT, on several
                 nontrivial examples, some of which require bit-level
                 reasoning about integer representations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "model checking; non-termination; program verification;
                 recurrent sets; testing",
}

@Article{Chaudhuri:2008:SAR,
  author =       "Swarat Chaudhuri",
  title =        "Subcubic algorithms for recursive state machines",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "159--169",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328460",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We show that the reachability problem for recursive
                 state machines (or equivalently, pushdown systems),
                 believed for long to have cubic worst-case complexity,
                 can be solved in slightly subcubic time. All that is
                 necessary for the new bound is a simple adaptation of a
                 known technique. We also show that a better algorithm
                 exists if the input machine does not have infinite
                 recursive loops.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "CFL-reachability; context-free languages; cubic
                 bottleneck; interprocedural analysis; pushdown systems;
                 recursive state machines; transitive closure",
}

@Article{Lahiri:2008:BFR,
  author =       "Shuvendu Lahiri and Shaz Qadeer",
  title =        "Back to the future: revisiting precise program
                 verification using {SMT} solvers",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "171--182",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328461",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper takes a fresh look at the problem of
                 precise verification of heap-manipulating programs
                 using first-order Satisfiability-Modulo-Theories (SMT)
                 solvers. We augment the specification logic of such
                 solvers by introducing the Logic of Interpreted Sets
                 and Bounded Quantification for specifying properties of
                 heap-manipulating programs. Our logic is expressive,
                 closed under weakest preconditions, and efficiently
                 implementable on top of existing SMT solvers. We have
                 created a prototype implementation of our logic over
                 the solvers Simplify and Z3 and used our prototype to
                 verify many programs. Our preliminary experience is
                 encouraging; the completeness and the efficiency of the
                 decision procedure is clearly evident in practice and
                 has greatly improved the user experience of the
                 verifier.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "decision procedures; heap-manipulating programs;
                 linked lists; reachability; SMT solvers; software
                 verification",
}

@Article{Unkel:2008:AIS,
  author =       "Christopher Unkel and Monica S. Lam",
  title =        "Automatic inference of stationary fields: a
                 generalization of {Java}'s final fields",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "183--195",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328463",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Java programmers can document that the relationship
                 between two objects is unchanging by declaring the
                 field that encodes that relationship to be final. This
                 information can be used in program understanding and
                 detection of errors in new code additions.
                 Unfortunately, few fields in programs are actually
                 declared final. Programs often contain fields that
                 could be final, but are not declared so. Moreover, the
                 definition of final has restrictions on initialization
                 that limit its applicability.\par

                 We introduce stationary fields as a generalization of
                 final. A field in a program is stationary if, for every
                 object that contains it, all writes to the field occur
                 before all the reads. Unlike the definition of final
                 fields, there can be multiple writes during
                 initialization, and initialization can span multiple
                 methods.\par

                 We have developed an efficient algorithm for inferring
                 which fields are stationary in a program, based on the
                 observation that many fields acquire their value very
                 close to object creation. We presume that an object's
                 initialization phase has concluded when its reference
                 is saved in some heap object. We perform precise
                 analysis only regarding recently created objects.
                 Applying our algorithm to real-world Java programs
                 demonstrates that stationary fields are more common
                 than final fields: 44-59\% vs. 11-17\% respectively in
                 our benchmarks.\par

                 These surprising results have several significant
                 implications. First, substantial portions of Java
                 programs appear to be written in a functional style.
                 Second, initialization of these fields occurs very
                 close to object creation, when very good alias
                 information is available. These results open the door
                 for more accurate and efficient pointer alias
                 analysis.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "final; initialization; Java; stationary",
}

@Article{Zheng:2008:DDA,
  author =       "Xin Zheng and Radu Rugina",
  title =        "Demand-driven alias analysis for {C}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "197--208",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328464",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a demand-driven, flow-insensitive
                 analysis algorithm for answering may-alias queries. We
                 formulate the computation of alias queries as a
                 CFL-reachability problem, and use this formulation to
                 derive a demand-driven analysis algorithm. The analysis
                 uses a worklist algorithm that gradually explores the
                 program structure and stops as soon as enough evidence
                 is gathered to answer the query. Unlike existing
                 techniques, our approach does not require building or
                 intersecting points-to sets.\par

                 Experiments show that our technique is effective at
                 answering alias queries accurately and efficiently in a
                 demand-driven fashion. For a set of alias queries from
                 the SPEC2000 benchmarks, an implementation of our
                 analysis is able to accurately answer 96\% of the
                 queries in 0.5 milliseconds per query on average, using
                 only 65 KB of memory. Compared to a demand-driven
                 points-to analysis that constructs and intersects
                 points-to sets on the fly, our alias analysis can
                 achieve better accuracy while running more than 30
                 times faster. The low run-time cost and low memory
                 demands of the analysis make it a very good candidate
                 not only for compilers, but also for interactive tools,
                 such as program understanding tools or integrated
                 development environments (IDEs).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "alias analysis; CFL reachability; demand-driven
                 analysis; memory disambiguation; pointer analysis",
}

@Article{Nita:2008:TPD,
  author =       "Marius Nita and Dan Grossman and Craig Chambers",
  title =        "A theory of platform-dependent low-level software",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "209--220",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328465",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The C language definition leaves the sizes and layouts
                 of types partially unspecified. When a C program makes
                 assumptions about type layout, its semantics is defined
                 only on platforms (C compilers and the underlying
                 hardware) on which those assumptions hold. Previous
                 work on formalizing C-like languages has ignored this
                 issue, either by assuming that programs do not make
                 such assumptions or by assuming that all valid programs
                 target only one platform. In the latter case, the
                 platform's choices are hard-wired in the language
                 semantics.\par

                 In this paper, we present a practically-motivated model
                 for a C-like language in which the memory layouts of
                 types are left largely unspecified. The dynamic
                 semantics is parameterized by a platform's layout
                 policy and makes manifest the consequence of
                 platform-dependent (i.e., unspecified) steps. A
                 type-and-effect system produces a layout constraint: a
                 logic formula encoding layout conditions under which
                 the program is memory-safe. We prove that if a program
                 type-checks, it is memory-safe on all platforms
                 satisfying its constraint.\par

                 Based on our theory, we have implemented a tool that
                 discovers unportable layout assumptions in C programs.
                 Our approach should generalize to other kinds of
                 platform-dependent assumptions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "casts; low-level software; portability; type safety",
}

@Article{Yorsh:2008:GPC,
  author =       "Greta Yorsh and Eran Yahav and Satish Chandra",
  title =        "Generating precise and concise procedure summaries",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "221--234",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328467",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a framework for generating procedure
                 summaries that are (a) precise --- applying the summary
                 in a given context yields the same result as
                 re-analyzing the procedure in that context, and(b)
                 concise --- the summary exploits the commonalities in
                 the ways the procedure manipulates abstract values, and
                 does not contain superfluous context
                 information.\par

                 The use of a precise and concise procedure summary in
                 modular analyses provides a way to capture infinitely
                 many possible contexts in a finite way; in
                 interprocedural analyses, it provides a compact
                 representation of an explicit input-output summary
                 table without loss of precision.\par

                 We define a class of abstract domains and transformers
                 for which precise and concise summaries can be
                 efficiently generated using our framework. Our
                 framework is rich enough to encode a wide range of
                 problems, including all IFDS and IDE problems. In
                 addition, we show how the framework is instantiated to
                 provide novel solutions to two hard problems: modular
                 linear constant propagation and modular typestate
                 verification, both in the presence of aliasing. We
                 implemented a prototype of our framework that computes
                 summaries for the typestate domain, and report on
                 preliminary experimental results.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aliasing; composition; dataflow analysis;
                 micro-transformers; relational analysis; summarization;
                 symbolic summary; typestate verification",
}

@Article{Gulwani:2008:LAI,
  author =       "Sumit Gulwani and Bill McCloskey and Ashish Tiwari",
  title =        "Lifting abstract interpreters to quantified logical
                 domains",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "235--246",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328468",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe a general technique for building abstract
                 interpreters over powerful universally quantified
                 abstract domains that leverage existing quantifier-free
                 domains. Our quantified abstract domain can represent
                 universally quantified facts like $\forall i (0 \leq i
                 < n \Rightarrow \alpha[i] = 0$). The principal
                 challenge in this effort is that, while most domains
                 supply over-approximations of operations like join,
                 meet, and variable elimination, working with the guards
                 of quantified facts requires under -approximation. We
                 present an automatic technique to convert the standard
                 over-approximation operations provided with all domains
                 into sound under-approximations. We establish the
                 correctness of our abstract interpreters by identifying
                 two lattices---one that establishes the soundness of
                 the abstract interpreter and another that defines its
                 precision, or completeness. Our experiments on a
                 variety of programs using arrays and pointers
                 (including several sorting algorithms) demonstrate the
                 feasibility of the approach on challenging examples.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpreter; logical lattices; quantified
                 invariants; underapproximation algorithms",
}

@Article{Chang:2008:RIS,
  author =       "Bor-Yuh Evan Chang and Xavier Rival",
  title =        "Relational inductive shape analysis",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "247--260",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328469",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Shape analyses are concerned with precise abstractions
                 of the heap to capture detailed structural properties.
                 To do so, they need to build and decompose summaries of
                 disjoint memory regions. Unfortunately, many data
                 structure invariants require relations be tracked
                 across disjoint regions, such as intricate numerical
                 data invariants or structural invariants concerning
                 back and cross pointers. In this paper, we identify
                 issues inherent to analyzing relational structures and
                 design an abstract domain that is parameterized both by
                 an abstract domain for pure data properties and by
                 user-supplied specifications of the data structure
                 invariants to check. Particularly, it supports hybrid
                 invariants about shape and data and features a generic
                 mechanism for materializing summaries at the beginning,
                 middle, or end of inductive structures. Around this
                 domain, we build a shape analysis whose interesting
                 components include a pre-analysis on the user-supplied
                 specifications that guides the abstract interpretation
                 and a widening operator over the combined shape and
                 data domain. We then demonstrate our techniques on the
                 proof of preservation of the red-black tree invariants
                 during insertion.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "heap analysis; inductive definitions; materialization;
                 separation logic; shape analysis; symbolic abstract
                 domain",
}

@Article{Castagna:2008:TCW,
  author =       "Giuseppe Castagna and Nils Gesbert and Luca Padovani",
  title =        "A theory of contracts for {Web} services",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "261--272",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328471",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Contracts are behavioural descriptions of Web
                 services. We devise a theory of contracts that
                 formalises the compatibility of a client to a service,
                 and the safe replacement of a service with another
                 service. The use of contracts statically ensures the
                 successful completion of every possible interaction
                 between compatible clients and services.\par

                 The technical device that underlies the theory is the
                 definition of filters, which are explicit coercions
                 that prevent some possible behaviours of services and,
                 in doing so, they make services compatible with
                 different usage scenarios. We show that filters can be
                 seen as proofs of a sound and complete subcontracting
                 deduction system which simultaneously refines and
                 extends Hennessy's classical axiomatisation of the must
                 testing preorder. The relation is decidable and the
                 decision algorithm is obtained via a cut-elimination
                 process that proves the coherence of subcontracting as
                 a logical system.\par

                 Despite the richness of the technical development, the
                 resulting approach is based on simple ideas and basic
                 intuitions. Remarkably, its application is mostly
                 independent of the language used to program the
                 services or the clients. We also outline the possible
                 practical impact of such a work and the perspectives of
                 future research it opens.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "CCS; concurrency theory; contracts; explicit
                 coercions; must testing; subtyping; type theory; web
                 services",
}

@Article{Honda:2008:MAS,
  author =       "Kohei Honda and Nobuko Yoshida and Marco Carbone",
  title =        "Multiparty asynchronous session types",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "273--284",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328472",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Communication is becoming one of the central elements
                 in software development. As a potential typed
                 foundation for structured communication-centred
                 programming, session types have been studied over the
                 last decade for a wide range of process calculi and
                 programming languages, focussing on binary (two-party)
                 sessions. This work extends the foregoing theories of
                 binary session types to multiparty, asynchronous
                 sessions, which often arise in practical
                 communication-centred applications. Presented as a
                 typed calculus for mobile processes, the theory
                 introduces a new notion of types in which interactions
                 involving multiple peers are directly abstracted as a
                 global scenario. Global types retain a friendly type
                 syntax of binary session types while capturing complex
                 causal chains of multiparty asynchronous interactions.
                 A global type plays the role of a shared agreement
                 among communication peers, and is used as a basis of
                 efficient type checking through its projection onto
                 individual peers. The fundamental properties of the
                 session type discipline such as communication safety,
                 progress and session fidelity are established for
                 general n-party asynchronous interactions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "causality; choreography; communications; mobile
                 processes; multiparty; session types; structured
                 programming",
}

@Article{Minsky:2008:CT,
  author =       "Yaron M. Minsky",
  title =        "{Caml} trading",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "285--285",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328441",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Jane Street Capital is a successful proprietary
                 trading company that has shifted from developing
                 software in mainstream programming languages to
                 developing software almost entirely in OCaml, a
                 statically typed functional programming language that
                 has only modest industrial use. The scope of the
                 enterprise is small but growing: Jane Street now has
                 over 20 OCaml programmers that have collectively
                 written hundreds of thousands of lines of OCaml code.
                 OCaml is used for building everything from trading
                 systems to research infrastructure to user interfaces
                 to systems administration tools. This talk will discuss
                 the motivations behind Jane Street's adoption of OCaml,
                 and why we think that statically typed functional
                 programming languages are such a good fit for the world
                 of trading and finance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "functional programming; ML",
}

@Article{McBride:2008:CLM,
  author =       "Conor McBride",
  title =        "Clowns to the left of me, jokers to the right (pearl):
                 dissecting data structures",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "287--295",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328474",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper introduces a small but useful
                 generalisation to the 'derivative' operation on
                 datatypes underlying Huet's notion of 'zipper', giving
                 a concrete representation to one-hole contexts in data
                 which is undergoing transformation. This operator,
                 'dissection', turns a container-like functor into a
                 bifunctor representing a one-hole context in which
                 elements to the left of the hole are distinguished in
                 type from elements to its right.\par

                 I present dissection here as a generic program, albeit
                 for polynomial functors only. The notion is certainly
                 applicable more widely, but here I prefer to
                 concentrate on its diverse applications. For a start,
                 map-like operations over the functor and fold-like
                 operations over the recursive data structure it induces
                 can be expressed by tail recursion alone. Further, the
                 derivative is readily recovered from the dissection.
                 Indeed, it is the dissection structure which delivers
                 Huet's operations for navigating zippers.\par

                 The original motivation for dissection was to define
                 'division', capturing the notion of leftmost hole,
                 canonically distinguishing values with no elements from
                 those with at least one. Division gives rise to an
                 isomorphism corresponding to the remainder theorem in
                 algebra. By way of a larger example, division and
                 dissection are exploited to give a relatively efficient
                 generic algorithm for abstracting all occurrences of
                 one term from another in a first-order syntax. The
                 source code for the paper is available online and
                 compiles with recent extensions to the Glasgow Haskell
                 Compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "datatype; differentiation; dissection; division;
                 generic programming; iteration; polynomial; stack; tail
                 recursion; traversal; zipper",
}

@Article{Johann:2008:FSP,
  author =       "Patricia Johann and Neil Ghani",
  title =        "Foundations for structured programming with {GADTs}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "297--308",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328475",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "GADTs are at the cutting edge of functional
                 programming and become more widely used every day.
                 Nevertheless, the semantic foundations underlying GADTs
                 are not well understood. In this paper we solve this
                 problem by showing that the standard theory of data
                 types as carriers of initial algebras of functors can
                 be extended from algebraic and nested data types to
                 GADTs. We then use this observation to derive an
                 initial algebra semantics for GADTs, thus ensuring that
                 all of the accumulated knowledge about initial algebras
                 can be brought to bear on them. Next, we use our
                 initial algebra semantics for GADTs to derive
                 expressive and principled tools --- analogous to the
                 well-known and widely-used ones for algebraic and
                 nested data types---for reasoning about, programming
                 with, and improving the performance of programs
                 involving, GADTs; we christen such a collection of
                 tools for a GADT an initial algebra package. Along the
                 way, we give a constructive demonstration that every
                 GADT can be reduced to one which uses only the equality
                 GADT and existential quantification. Although other
                 such reductions exist in the literature, ours is
                 entirely local, is independent of any particular
                 syntactic presentation of GADTs, and can be implemented
                 in the host language, rather than existing solely as a
                 metatheoretical artifact. The main technical ideas
                 underlying our approach are (i) to modify the notion of
                 a higher-order functor so that GADTs can be seen as
                 carriers of initial algebras of higher-order functors,
                 and (ii) to use left Kan extensions to trade arbitrary
                 GADTs for simpler-but-equivalent ones for which initial
                 algebra semantics can be derived.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "GADTs; initial algebra semantics; program fusion",
}

@Article{Acar:2008:ISA,
  author =       "Umut A. Acar and Amal Ahmed and Matthias Blume",
  title =        "Imperative self-adjusting computation",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "309--322",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328476",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Self-adjusting computation enables writing programs
                 that can automatically and efficiently respond to
                 changes to their data (e.g., inputs). The idea behind
                 the approach is to store all data that can change over
                 time in modifiable references and to let computations
                 construct traces that can drive change propagation.
                 After changes have occurred, change propagation updates
                 the result of the computation by re-evaluating only
                 those expressions that depend on the changed data.
                 Previous approaches to self-adjusting computation
                 require that modifiable references be written at most
                 once during execution---this makes the model applicable
                 only in a purely functional setting.\par

                 In this paper, we present techniques for imperative
                 self-adjusting computation where modifiable references
                 can be written multiple times. We define a language
                 SAIL (Self-Adjusting Imperative Language) and prove
                 consistency, i.e., that change propagation and
                 from-scratch execution are observationally equivalent.
                 Since SAIL programs are imperative, they can create
                 cyclic data structures. To prove equivalence in the
                 presence of cycles in the store, we formulate and use
                 an untyped, step-indexed logical relation, where step
                 indices are used to ensure well-foundedness. We show
                 that SAIL accepts an asymptotically efficient
                 implementation by presenting algorithms and data
                 structures for its implementation. When the number of
                 operations (reads and writes) per modifiable is bounded
                 by a constant, we show that change propagation becomes
                 as efficient as in the non-imperative case. The general
                 case incurs a slowdown that is logarithmic in the
                 maximum number of such operations. We describe a
                 prototype implementation of SAIL as a Standard ML
                 library.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "change propagation; imperative programming;
                 incremental computation; memoization; mutable state;
                 self-adjusting computation; step-indexed logical
                 relations",
}

@Article{Fournet:2008:CSI,
  author =       "C{\'e}dric Fournet and Tamara Rezk",
  title =        "Cryptographically sound implementations for typed
                 information-flow security",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "323--335",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328478",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In language-based security, confidentiality and
                 integrity policies conveniently specify the permitted
                 flows of information between different parts of a
                 program with diverse levels of trust. These policies
                 enable a simple treatment of security, and they can
                 often be verified by typing. However, their enforcement
                 in concrete systems involves delicate compilation
                 issues.\par

                 We consider cryptographic enforcement mechanisms for
                 imperative programs with untrusted components. Such
                 programs may represent, for instance, distributed
                 systems connected by some untrusted network. In source
                 programs, security depends on an abstract
                 access-control policy for reading and writing the
                 shared memory. In their implementations, shared memory
                 is unprotected and security depends instead on
                 encryption and signing.\par

                 We build a translation from well-typed source programs
                 and policies to cryptographic implementations. To
                 establish its correctness, we develop a type system for
                 the target language. Our typing rules enforce a correct
                 usage of cryptographic primitives against active
                 adversaries; from an information-flow viewpoint, they
                 capture controlled forms of robust declassification and
                 endorsement. We show type soundness for a variant of
                 the non-interference property, then show that our
                 translation preserves typeability.\par

                 We rely on concrete primitives and hypotheses for
                 cryptography, stated in terms of probabilistic
                 polynomial-time algorithms and games. We model these
                 primitives as commands in our target language. Thus, we
                 develop a uniform language-based model of security,
                 ranging from computational non-interference for
                 probabilistic programs down to standard cryptographic
                 hypotheses.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; computational model; confidentiality;
                 cryptography; integrity; non-interference;
                 probabilistic programs; secure information flow; type
                 systems",
}

@Article{Laud:2008:CSC,
  author =       "Peeter Laud",
  title =        "On the computational soundness of cryptographically
                 masked flows",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "337--348",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328479",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "To speak about the security of information flow in
                 programs employing cryptographic operations,
                 definitions based on computational indistinguishability
                 of distributions over program states have to be used.
                 These definitions, as well as the accompanying analysis
                 tools, are complex and error-prone to argue about.
                 Cryptographically masked flows, proposed by Askarov,
                 Hedin and Sabelfeld, are an abstract execution model
                 and security definition that attempt to abstract away
                 the details of computational security. This abstract
                 model is useful because analysis of programs can be
                 conducted using the usual techniques for enforcing
                 non-interference.\par

                 In this paper we investigate under which conditions
                 this abstract model is computationally sound, i.e. when
                 does the security of a program in their model imply the
                 computational security of this program. This paper
                 spells out a reasonable set of conditions and then
                 proposes a simpler abstract model that is nevertheless
                 no more restrictive than the cryptographically masked
                 flows together with these conditions for soundness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "computational soundness; cryptographically masked
                 flows; encryption; secure information flow",
}

@Article{Alavi:2008:EET,
  author =       "Hamed Seiied Alavi and Seth Gilbert and Rachid
                 Guerraoui",
  title =        "Extensible encoding of type hierarchies",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "349--358",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328480",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The subtyping test consists of checking whether a type
                 $t$ is a descendant of a type $r$ (Agrawal et al.
                 1989). We study how to perform such a test efficiently,
                 assuming a dynamic hierarchy when new types are
                 inserted at run-time. The goal is to achieve time and
                 space efficiency, even as new types are inserted. We
                 propose an extensible scheme, named ESE, that ensures
                 (1) efficient insertion of new types, (2) efficient
                 subtyping tests, and (3) small space usage. On the one
                 hand ESE provides comparable test times to the most
                 efficient existing static schemes (e.g., Zibin et al.
                 (2001)). On the other hand, ESE has comparable
                 insertion times to the most efficient existing dynamic
                 scheme (Baehni et al. 2007), while ESE outperforms it
                 by a factor of 2--3 times in terms of space usage.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic loading; subtyping test",
}

@Article{Zeilberger:2008:FHO,
  author =       "Noam Zeilberger",
  title =        "Focusing and higher-order abstract syntax",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "359--369",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328482",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Focusing is a proof-search strategy, originating in
                 linear logic, that elegantly eliminates inessential
                 nondeterminism, with one byproduct being a
                 correspondence between focusing proofs and programs
                 with explicit evaluation order. Higher-order abstract
                 syntax (HOAS) is a technique for representing
                 higher-order programming language constructs (e.g.,
                 \lambda 's) by higher-order terms at the 'meta-level',
                 thereby avoiding some of the bureaucratic headaches of
                 first-order representations (e.g., capture-avoiding
                 substitution).\par

                 This paper begins with a fresh, judgmental analysis of
                 focusing for intuitionistic logic (with a full suite of
                 propositional connectives), recasting the 'derived
                 rules' of focusing as iterated inductive definitions.
                 This leads to a uniform presentation, allowing concise,
                 modular proofs of the identity and cut principles. Then
                 we show how this formulation of focusing induces,
                 through the Curry--Howard isomorphism, a new kind of
                 higher-order encoding of abstract syntax: functions are
                 encoded by maps from patterns to expressions. Dually,
                 values are encoded as patterns together with explicit
                 substitutions. This gives us pattern-matching 'for
                 free', and lets us reason about a rich type system with
                 minimal syntactic overhead. We describe how to
                 translate the language and proof of type safety almost
                 directly into Coq using HOAS, and finally, show how the
                 system's modular design pays off in enabling a very
                 simple extension with recursion and recursive types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "focusing; higher-order abstract syntax;
                 pattern-matching",
}

@Article{Pientka:2008:TTF,
  author =       "Brigitte Pientka",
  title =        "A type-theoretic foundation for programming with
                 higher-order abstract syntax and first-class
                 substitutions",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "371--382",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328483",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Higher-order abstract syntax (HOAS) is a simple,
                 powerful technique for implementing object languages,
                 since it directly supports common and tricky routines
                 dealing with variables, such as capture-avoiding
                 substitution and renaming. This is achieved by
                 representing binders in the object-language via binders
                 in the meta-language. However, enriching functional
                 programming languages with direct support for HOAS has
                 been a major challenge, because recursion over HOAS
                 encodings requires one to traverse lambda-abstractions
                 and necessitates programming with open objects.\par

                 We present a novel type-theoretic foundation based on
                 contextual modal types which allows us to recursively
                 analyze open terms via higher-order pattern matching.
                 By design, variables occurring in open terms can never
                 escape their scope. Using several examples, we
                 demonstrate that our framework provides a name-safe
                 foundation to operations typically found in nominal
                 systems. In contrast to nominal systems however, we
                 also support capture-avoiding substitution operations
                 and even provide first-class substitutions to the
                 programmer. The main contribution of this paper is a
                 syntax-directed bi-directional type system where we
                 distinguish between the data language and the
                 computation language together with the progress and
                 preservation proof for our language.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "logical frameworks; type system",
}

@Article{Herbelin:2008:ACN,
  author =       "Hugo Herbelin and Silvia Ghilezan",
  title =        "An approach to call-by-name delimited continuations",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "383--394",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328484",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We show that a variant of Parigot's \lambda
                 $\mu$-calculus, originally due to de Groote and proved
                 to satisfy Boehm's theorem by Saurin, is canonically
                 interpretable as a call-by-name calculus of delimited
                 control. This observation is expressed using Ariola et
                 al's call-by-value calculus of delimited control, an
                 extension of \lambda $\mu$-calculus with delimited
                 control known to be equationally equivalent to Danvy
                 and Filinski's calculus with shift and reset. Our main
                 result then is that de Groote and Saurin's variant of
                 \lambda $\mu$-calculus is equivalent to a canonical
                 call-by-name variant of Ariola et al's calculus. The
                 rest of the paper is devoted to a comparative study of
                 the call-by-name and call-by-value variants of Ariola
                 et al's calculus, covering in particular the questions
                 of simple typing, operational semantics, and
                 continuation-passing-style semantics. Finally, we
                 discuss the relevance of Ariola et al's calculus as a
                 uniform framework for representing different calculi of
                 delimited continuations, including 'lazy' variants such
                 as Sabry's shift and lazy reset calculus.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Boehm separability; classical logic; delimited
                 control; observational completeness",
}

@Article{Tobin-Hochstadt:2008:DIT,
  author =       "Sam Tobin-Hochstadt and Matthias Felleisen",
  title =        "The design and implementation of typed scheme",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "395--406",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328486",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "When scripts in untyped languages grow into large
                 programs, maintaining them becomes difficult. A lack of
                 types in typical scripting languages means that
                 programmers must (re)discover critical pieces of design
                 information every time they wish to change a program.
                 This analysis step both slows down the maintenance
                 process and may even introduce mistakes due to the
                 violation of undiscovered invariants.\par

                 This paper presents Typed Scheme, an explicitly typed
                 extension of an untyped scripting language. Its type
                 system is based on the novel notion of occurrence
                 typing, which we formalize and mechanically prove
                 sound. The implementation of Typed Scheme additionally
                 borrows elements from a range of approaches, including
                 recursive types, true unions and subtyping, plus
                 polymorphism combined with a modicum of local
                 inference. Initial experiments with the implementation
                 suggest that Typed Scheme naturally accommodates the
                 programming style of the underlying scripting language,
                 at least for the first few thousand lines of ported
                 code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "scheme; type systems",
}

@Article{Bohannon:2008:BRL,
  author =       "Aaron Bohannon and J. Nathan Foster and Benjamin C.
                 Pierce and Alexandre Pilkiewicz and Alan Schmitt",
  title =        "{Boomerang}: resourceful lenses for string data",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "407--419",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328487",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A lens is a bidirectional program. When read from left
                 to right, it denotes an ordinary function that maps
                 inputs to outputs. When read from right to left, it
                 denotes an ''update translator'' that takes an input
                 together with an updated output and produces a new
                 input that reflects the update. Many variants of this
                 idea have been explored in the literature, but none
                 deal fully with ordered data. If, for example, an
                 update changes the order of a list in the output, the
                 items in the output list and the chunks of the input
                 that generated them can be misaligned, leading to lost
                 or corrupted data.\par

                 We attack this problem in the context of bidirectional
                 transformations over strings, the primordial ordered
                 data type. We first propose a collection of
                 bidirectional string lens combinators, based on
                 familiar operations on regular transducers (union,
                 concatenation, Kleene-star) and with a type system
                 based on regular expressions. We then design anew
                 semantic space of dictionary lenses, enriching the
                 lenses of Foster et al. (2007) with support for two
                 additional combinators for marking ''reorderable
                 chunks'' and their keys. To demonstrate the
                 effectiveness of these primitives, we describe the
                 design and implementation of Boomerang, a full-blown
                 bidirectional programming language with dictionary
                 lenses at its core. We have used Boomerang to build
                 transformers for complex real-world data formats
                 including the SwissProt genomic database.\par

                 We formalize the essential property of resourcefulness
                 -the correct use of keys to associate chunks in the
                 input and output-by defining a refined semantic space
                 of quasi-oblivious lenses. Several previously studied
                 properties of lenses turn out to have compact
                 characterizations in this space.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bidirectional languages; lenses; regular string
                 transducers; regular types; view update problem",
}

@Article{Fisher:2008:DSF,
  author =       "Kathleen Fisher and David Walker and Kenny Q. Zhu and
                 Peter White",
  title =        "From dirt to shovels: fully automatic tool generation
                 from ad hoc data",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "421--434",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328488",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "An ad hoc data source is any semistructured data
                 source for which useful data analysis and
                 transformation tools are not readily available. Such
                 data must be queried, transformed and displayed by
                 systems administrators, computational biologists,
                 financial analysts and hosts of others on a regular
                 basis. In this paper, we demonstrate that it is
                 possible to generate a suite of useful data processing
                 tools, including a semi-structured query engine,
                 several format converters, a statistical analyzer and
                 data visualization routines directly from the ad hoc
                 data itself, without any human intervention. The key
                 technical contribution of the work is a multi-phase
                 algorithm that automatically infers the structure of an
                 ad hoc data source and produces a format specification
                 in the PADS data description language. Programmers
                 wishing to implement custom data analysis tools can use
                 such descriptions to generate printing and parsing
                 libraries for the data. Alternatively, our software
                 infrastructure will push these descriptions through the
                 PADS compiler, creating format-dependent modules that,
                 when linked with format-independent algorithms for
                 analysis and transformation, result in fully functional
                 tools. We evaluate the performance of our inference
                 algorithm, showing it scales linearly in the size of
                 the training data --- completing in seconds, as opposed
                 to the hours or days it takes to write a description by
                 hand. We also evaluate the correctness of the
                 algorithm, demonstrating that generating accurate
                 descriptions often requires less than 5\% of the
                 available data.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "ad hoc data; data description languages; grammar
                 induction; tool generation",
}

@Article{Fitzgerald:2008:VAS,
  author =       "John Fitzgerald and Peter Gorm Larsen and Shin
                 Sahara",
  title =        "{VDMTools}: advances in support for formal modeling in
                 {VDM}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "2",
  pages =        "3--11",
  month =        feb,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1361213.1361214",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:32 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe the current status of 'VDMTools', a group
                 of tools supporting the analysis of system models
                 expressed in the formal language of the Vienna
                 Development Method. Three dialects of the language are
                 supported: the ISO standard VDM specification language
                 with support for modular structuring, the extension
                 VDM++ which supports object-oriented structuring and
                 concurrency, and a version extending VDM++ with
                 features for modeling and analysing distributed
                 embedded real-time systems. VDMTools provides extensive
                 static semantics checking, automatic code generation,
                 round-trip mapping to UML class diagrams, documentation
                 support, test coverage analysis and debugging support.
                 The tools' focus is on supporting the cost-effective
                 development and exploitation of formal models in
                 industrial settings. The paper presents the components
                 of VDMTools and reports recent experience using them
                 for the development of large models.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "formal methods; tool support; validation; VDM; Vienna
                 Development Method",
}

@Article{Lu:2008:CIE,
  author =       "Jia Lu and Jing Ying and Ming hu Wu and Cang Hong
                 Jin",
  title =        "Crosscutting invariant and an efficient checking
                 algorithm using program slicing",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "2",
  pages =        "12--20",
  month =        feb,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1361213.1361215",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:32 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Owing to the characteristics of quantification and
                 obliviousness, modular behavioral analysis and modular
                 reasoning in aspect-oriented language are more
                 difficult than that of traditional paradigms. Similar
                 to the method of Design by Contract in object-oriented
                 language, we annotate crosscutting modules and affected
                 modules with pre-conditions and post-conditions.
                 Because assigning blame for pre-condition and
                 post-condition failures during the process of
                 crosscutting is subtle and complex, we introduce a
                 notion of crosscutting invariant and a checking
                 algorithm based on this notion. Since there are some
                 repeated contract checks in the original algorithm, we
                 use the technology of program slicing to search those
                 unnecessary repeat checks and delete them. We also
                 represent an example to represent the algorithm and its
                 improvement.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented language; crosscutting interference;
                 crosscutting quality; crosscutting safety",
}

@Article{Qian:2008:PSU,
  author =       "Ju Qian and Baowen Xu",
  title =        "Program slicing under {UML} scenario models",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "2",
  pages =        "21--24",
  month =        feb,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1361213.1361216",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:32 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Slicing is an important decomposition technique for
                 program understanding. However, traditional slicing
                 methods tend to produce too large slices for human
                 inspection as modern programs are often huge and static
                 program analyses are hard to be precise enough.
                 According to the state-of-the art research and our own
                 experience, we believe a possible solution to such
                 problem could be incorporating UML scenario models into
                 program slicing. This paper presents a detail
                 discussion on how scenarios can benefit slicing
                 relevant program analyses and proposes a general
                 scenario specified program slicing method. The analyses
                 indicate that scenario specified program slicing may
                 obtain smaller slices for program understanding.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "program slicing; program understanding; scenario",
}

@Article{Zhang:2008:ASA,
  author =       "Danfeng Zhang and Yao Guo and Xiangqun Chen",
  title =        "{AspectC2C}: a symmetric aspect extension to the {C}
                 language",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "2",
  pages =        "25--32",
  month =        feb,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1361213.1361217",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:32 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "By separating crosscutting concerns into modules,
                 aspect-oriented programming (AOP) can greatly improve
                 the maintainability, understandability and reusability
                 of software. However, the asymmetric paradigm adopted
                 by most AOP extensions could bring crosscutting
                 concerns into the aspect code and thus limit the
                 reusability of aspects.\par

                 Symmetric paradigms have been proposed to alleviate
                 such limitations, but few extensions on such paradigm
                 target at non-object-oriented languages, such as C. In
                 this paper, we propose a symmetric aspect extension to
                 the C language, called AspectC2C, and discuss
                 implementation issues and benefits of this new
                 extension comparing to the asymmetric ones.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect extension; aspect-oriented programming; C
                 language; symmetric paradigm",
}

@Article{Winfree:2008:TMP,
  author =       "Erik Winfree",
  title =        "Toward molecular programming with {DNA}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "1--1",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353534.1346282",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Biological organisms are beautiful examples of
                 programming. The program and data are stored in
                 biological molecules such as DNA, RNA, and proteins;
                 the algorithms are carried out by molecular and
                 biochemical processes; and the end result is the
                 creation and function of an organism. If we understood
                 how to program molecular systems, what could we create?
                 Lifelike technologies whose basic operations are
                 chemical reactions? The fields of chemistry, physics,
                 biology, and computer science are converging as we
                 begin to synthesize molecules, molecular machines, and
                 molecular systems of ever increasing complexity,
                 leading to subdisciplines such as DNA nanotechnology,
                 DNA computing, and synthetic biology. Having
                 demonstrated simple devices and systems --
                 self-assembled structures, molecular motors, chemical
                 logic gates -- researchers are now turning to the
                 question of how to create large-scale integrated
                 systems. To do so, we must learn how to manage
                 complexity: how to efficiently specify the structure
                 and behavior of intricate molecular systems, how to
                 compile such specifications down to the design of
                 molecules to be synthesized in the lab, and how to
                 ensure that such systems function robustly. These
                 issues will be illustrated for chemical logic circuits
                 based on cascades of DNA hybridization reactions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "DNA; molecular programming",
}

@Article{Chen:2008:OVB,
  author =       "Xiaoxin Chen and Tal Garfinkel and E. Christopher
                 Lewis and Pratap Subrahmanyam and Carl A. Waldspurger
                 and Dan Boneh and Jeffrey Dwoskin and Dan R. K. Ports",
  title =        "{Overshadow}: a virtualization-based approach to
                 retrofitting protection in commodity operating
                 systems",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "2--13",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346284",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Commodity operating systems entrusted with securing
                 sensitive data are remarkably large and complex, and
                 consequently, frequently prone to compromise. To
                 address this limitation, we introduce a
                 virtual-machine-based system called Overshadow that
                 protects the privacy and integrity of application data,
                 even in the event of a total OS compromise. Overshadow
                 presents an application with a normal view of its
                 resources, but the OS with an encrypted view. This
                 allows the operating system to carry out the complex
                 task of managing an application's resources, without
                 allowing it to read or modify them. Thus, Overshadow
                 offers a last line of defense for application
                 data.\par

                 Overshadow builds on multi-shadowing, a novel mechanism
                 that presents different views of 'physical' memory,
                 depending on the context performing the access. This
                 primitive offers an additional dimension of protection
                 beyond the hierarchical protection domains implemented
                 by traditional operating systems and processor
                 architectures.\par

                 We present the design and implementation of Overshadow
                 and show how its new protection semantics can be
                 integrated with existing systems. Our design has been
                 fully implemented and used to protect a wide range of
                 unmodified legacy applications running on an unmodified
                 Linux operating system. We evaluate the performance of
                 our implementation, demonstrating that this approach is
                 practical.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cloaking; hypervisors; memory protection;
                 multi-shadowing; operating systems; virtual machine
                 monitors; VMM",
}

@Article{McCune:2008:HLC,
  author =       "Jonathan M. McCune and Bryan Parno and Adrian Perrig
                 and Michael K. Reiter and Arvind Seshadri",
  title =        "How low can you go?: recommendations for
                 hardware-supported minimal {TCB} code execution",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "14--25",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346285",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We explore the extent to which newly available
                 CPU-based security technology can reduce the Trusted
                 Computing Base (TCB) for security-sensitive
                 applications. We find that although this new technology
                 represents a step in the right direction, significant
                 performance issues remain. We offer several suggestions
                 that leverage existing processor technology, retain
                 security, and improve performance. Implementing these
                 recommendations will finally allow application
                 developers to focus exclusively on the security of
                 their own code, enabling it to execute in isolation
                 from the numerous vulnerabilities in the underlying
                 layers of legacy code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "late launch; secure execution; trusted computing",
}

@Article{Bhargava:2008:ATD,
  author =       "Ravi Bhargava and Benjamin Serebrin and Francesco
                 Spadini and Srilatha Manne",
  title =        "Accelerating two-dimensional page walks for
                 virtualized systems",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "26--35",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346286",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Nested paging is a hardware solution for alleviating
                 the software memory management overhead imposed by
                 system virtualization. Nested paging complements
                 existing page walk hardware to form a two-dimensional
                 (2D) page walk, which reduces the need for hypervisor
                 intervention in guest page table management. However,
                 the extra dimension also increases the maximum number
                 of architecturally-required page table
                 references.\par

                 This paper presents an in-depth examination of the 2D
                 page table walk overhead and options for decreasing it.
                 These options include using the AMD Opteron processor's
                 page walk cache to exploit the strong reuse of page
                 entry references. For a mix of server and SPEC
                 benchmarks, the presented results show a 15\%-38\%
                 improvement in guest performance by extending the
                 existing page walk cache to also store the nested
                 dimension of the 2D page walk. Caching nested page
                 table translations and skipping multiple page entry
                 references produce an additional 3\%-7\%
                 improvement.\par

                 Much of the remaining 2D page walk overhead is due to
                 low-locality nested page entry references, which result
                 in additional memory hierarchy misses. By using large
                 pages, the hypervisor can eliminate many of these
                 long-latency accesses and further improve the guest
                 performance by 3\%-22\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "AMD; hypervisor; memory management; nested paging;
                 page walk caching; TLB; virtual machine monitor;
                 virtualization",
}

@Article{Lee:2008:ETL,
  author =       "Benjamin C. Lee and David Brooks",
  title =        "Efficiency trends and limits from comprehensive
                 microarchitectural adaptivity",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "36--47",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353534.1346288",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Increasing demand for power-efficient,
                 high-performance computing requires tuning applications
                 and/or the underlying hardware to improve the mapping
                 between workload heterogeneity and computational
                 resources. To assess the potential benefits of hardware
                 tuning, we propose a framework that leverages
                 synergistic interactions between recent advances in (a)
                 sampling, (b) predictive modeling, and (c) optimization
                 heuristics. This framework enables qualitatively new
                 capabilities in analyzing the performance and power
                 characteristics of adaptive microarchitectures. For the
                 first time, we are able to simultaneously consider high
                 temporal and comprehensive spatial adaptivity. In
                 particular, we optimize efficiency for many, short
                 adaptive intervals and identify the best configuration
                 of 15 parameters, which define a space of 240B
                 point.\par

                 With frequent sub-application reconfiguration and a
                 fully reconfigurable hardware substrate, adaptive
                 microarchitectures achieve bips$^3$ /w efficiency gains
                 of up to 5.3x (median 2.4x) relative to their static
                 counterparts already optimized for a given application.
                 This 5.3x efficiency gain is derived from a 1.6x
                 performance gain and 0.8x power reduction. Although
                 several applications achieve a significant fraction of
                 their potential efficiency with as few as three
                 adaptive parameters, the three most significant
                 parameters differ across applications. These
                 differences motivate a hardware substrate capable of
                 comprehensive adaptivity to meet these diverse
                 application requirements.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "adaptivity; efficiency; inference; microarchitecture;
                 performance; power; reconfigurablity; regression;
                 simulation; statistics",
}

@Article{Raghavendra:2008:NPS,
  author =       "Ramya Raghavendra and Parthasarathy Ranganathan and
                 Vanish Talwar and Zhikui Wang and Xiaoyun Zhu",
  title =        "No 'power' struggles: coordinated multi-level power
                 management for the data center",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "48--59",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353534.1346289",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Power delivery, electricity consumption, and heat
                 management are becoming key challenges in data center
                 environments. Several past solutions have individually
                 evaluated different techniques to address separate
                 aspects of this problem, in hardware and software, and
                 at local and global levels. Unfortunately, there has
                 been no corresponding work on coordinating all these
                 solutions. In the absence of such coordination, these
                 solutions are likely to interfere with one another, in
                 unpredictable (and potentially dangerous) ways. This
                 paper seeks to address this problem. We make two key
                 contributions. First, we propose and validate a power
                 management solution that coordinates different
                 individual approaches. Using simulations based on 180
                 server traces from nine different real-world
                 enterprises, we demonstrate the correctness, stability,
                 and efficiency advantages of our solution. Second,
                 using our unified architecture as the base, we perform
                 a detailed quantitative sensitivity analysis and draw
                 conclusions about the impact of different
                 architectures, implementations, workloads, and system
                 design choices.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "capping; control theory; coordination; data center;
                 efficiency; power management; virtualization",
}

@Article{Ballapuram:2008:EAS,
  author =       "Chinnakrishnan S. Ballapuram and Ahmad Sharif and
                 Hsien-Hsin S. Lee",
  title =        "Exploiting access semantics and program behavior to
                 reduce snoop power in chip multiprocessors",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "60--69",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346290",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Integrating more processor cores on-die has become the
                 unanimous trend in the microprocessor industry. Most of
                 the current research thrusts using chip multiprocessors
                 (CMPs) as the baseline to analyze problems in various
                 domains. One of the main design issues facing CMP
                 systems is the growing number of snoops required to
                 maintain cache coherency and to support
                 self/cross-modifying code that leads to power and
                 performance limitations. In this paper, we analyze the
                 internal and external snoop behavior in a CMP system
                 and relax the snoopy cache coherence protocol based on
                 the program semantics and properties of the shared
                 variables for saving power. Based on the observations
                 and analyses, we propose two novel techniques:
                 Selective Snoop Probe (SSP) and Essential Snoop Probe
                 (ESP) to reduce power without compromising performance.
                 Our simulation results show that using the SSP
                 technique, 5\% to 65\% data cache energy savings per
                 core for different processor configurations can be
                 achieved with 1\% to 2\% performance improvement. We
                 also show that 5\% to 82\% of data cache energy per
                 core is spent on the non-essential snoop probes that
                 can be saved using the ESP technique.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "chip multiprocessors; internal and external snoops;
                 MESI protocol; self-modifying code",
}

@Article{Mallik:2008:PMU,
  author =       "Arindam Mallik and Jack Cosgrove and Robert P. Dick
                 and Gokhan Memik and Peter Dinda",
  title =        "{PICSEL}: measuring user-perceived performance to
                 control dynamic frequency scaling",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "70--79",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353534.1346291",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The ultimate goal of a computer system is to satisfy
                 its users. The success of architectural or system-level
                 optimizations depends largely on having accurate
                 metrics for user satisfaction. We propose to derive
                 such metrics from information that is 'close to flesh'
                 and apparent to the user rather than from information
                 that is 'close to metal' and hidden from the user. We
                 describe and evaluate PICSEL, a dynamic voltage and
                 frequency scaling (DVFS) technique that uses
                 measurements of variations in the rate of change of a
                 computer's video output to estimate user-perceived
                 performance. Our adaptive algorithms, one conservative
                 and one aggressive, use these estimates to dramatically
                 reduce operating frequencies and voltages for
                 graphically-intensive applications while maintaining
                 performance at a satisfactory level for the user. We
                 evaluate PICSEL through user studies conducted on a
                 Pentium M laptop running Windows XP. Experiments
                 performed with 20 users executing three applications
                 indicate that the measured laptop power can be reduced
                 by up to 12.1\%, averaged across all of our users and
                 applications, compared to the default Windows XP DVFS
                 policy. User studies revealed that the difference in
                 overall user satisfaction between the more aggressive
                 version of PICSEL and Windows DVFS were statistically
                 insignificant, whereas the conservative version of
                 PICSEL actually improved user satisfaction when
                 compared to Windows DVFS.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic voltage and frequency scaling; power
                 management; thermal emergency; user-perceived
                 performance",
}

@Article{Joao:2008:IPO,
  author =       "Jose A. Joao and Onur Mutlu and Hyesoon Kim and Rishi
                 Agarwal and Yale N. Patt",
  title =        "Improving the performance of object-oriented languages
                 with dynamic predication of indirect jumps",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "80--90",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353535.1346293",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Indirect jump instructions are used to implement
                 increasingly-common programming constructs such as
                 virtual function calls, switch-case statements, jump
                 tables, and interface calls. The performance impact of
                 indirect jumps is likely to increase because indirect
                 jumps with multiple targets are difficult to predict
                 even with specialized hardware.\par

                 This paper proposes a new way of handling
                 hard-to-predict indirect jumps: dynamically predicating
                 them. The compiler (static or dynamic) identifies
                 indirect jumps that are suitable for predication along
                 with their control-flow merge (CFM) points. The
                 hardware predicates the instructions between different
                 targets of the jump and its CFM point if the jump turns
                 out to be hard-to-predict at run time. If the jump
                 would actually have been mispredicted, its dynamic
                 predication eliminates a pipeline flush, thereby
                 improving performance.\par

                 Our evaluations show that Dynamic Indirect jump
                 Predication (DIP) improves the performance of a set of
                 object-oriented applications including the Java DaCapo
                 benchmark suite by 37.8\% compared to a commonly-used
                 branch target buffer based predictor, while also
                 reducing energy consumption by 24.8\%. We compare DIP
                 to three previously proposed indirect jump predictors
                 and find that it provides the best performance and
                 energy-efficiency.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic predication; indirect jumps; object-oriented
                 languages; predicated execution; virtual functions",
}

@Article{Wegiel:2008:MCV,
  author =       "Michal Wegiel and Chandra Krintz",
  title =        "The mapping collector: virtual memory support for
                 generational, parallel, and concurrent compaction",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "91--102",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353535.1346294",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Parallel and concurrent garbage collectors are
                 increasingly employed by managed runtime environments
                 (MREs) to maintain scalability, as multi-core
                 architectures and multi-threaded applications become
                 pervasive. Moreover, state-of-the-art MREs commonly
                 implement compaction to eliminate heap fragmentation
                 and enable fast linear object allocation.\par

                 Our empirical analysis of object demographics reveals
                 that unreachable objects in the heap tend to form
                 clusters large enough to be effectively managed at the
                 granularity of virtual memory pages. Even though
                 processes can manipulate the mapping of the virtual
                 address space through the standard operating system
                 (OS) interface on most platforms, extant
                 parallel/concurrent compactors do not do so to exploit
                 this clustering behavior and instead achieve compaction
                 by performing, relatively expensive, object moving and
                 pointer adjustment.\par

                 We introduce the Mapping Collector (MC), which
                 leverages virtual memory operations to reclaim and
                 consolidate free space without moving objects and
                 updating pointers. MC is a nearly-single-phase
                 compactor that is simpler and more efficient than
                 previously reported compactors that comprise two to
                 four phases. Through effective MRE-OS coordination, MC
                 maintains the simplicity of a non-moving collector
                 while providing efficient parallel and concurrent
                 compaction.\par

                 We implement both stop-the-world and concurrent MC in a
                 generational garbage collection framework within the
                 open-source HotSpot Java Virtual Machine. Our
                 experimental evaluation using a multiprocessor
                 indicates that MC significantly increases throughput
                 and scalability as well as reduces pause times,
                 relative to state-of-the-art, parallel and concurrent
                 compactors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compaction; concurrent; parallel; virtual memory",
}

@Article{Devietti:2008:HAS,
  author =       "Joe Devietti and Colin Blundell and Milo M. K. Martin
                 and Steve Zdancewic",
  title =        "{Hardbound}: architectural support for spatial safety
                 of the {C} programming language",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "103--114",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346295",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The C programming language is at least as well known
                 for its absence of spatial memory safety guarantees
                 (i.e., lack of bounds checking) as it is for its high
                 performance. C's unchecked pointer arithmetic and array
                 indexing allow simple programming mistakes to lead to
                 erroneous executions, silent data corruption, and
                 security vulnerabilities. Many prior proposals have
                 tackled enforcing spatial safety in C programs by
                 checking pointer and array accesses. However, existing
                 software-only proposals have significant drawbacks that
                 may prevent wide adoption, including: unacceptably high
                 run-time overheads, lack of completeness, incompatible
                 pointer representations, or need for non-trivial
                 changes to existing C source code and compiler
                 infrastructure.\par

                 Inspired by the promise of these software-only
                 approaches, this paper proposes a hardware bounded
                 pointer architectural primitive that supports
                 cooperative hardware/software enforcement of spatial
                 memory safety for C programs. This bounded pointer is a
                 new hardware primitive datatype for pointers that
                 leaves the standard C pointer representation intact,
                 but augments it with bounds information maintained
                 separately and invisibly by the hardware. The bounds
                 are initialized by the software, and they are then
                 propagated and enforced transparently by the hardware,
                 which automatically checks a pointer's bounds before it
                 is dereferenced. One mode of use requires instrumenting
                 only malloc, which enables enforcement of
                 per-allocation spatial safety for heap-allocated
                 objects for existing binaries. When combined with
                 simple intraprocedural compiler instrumentation,
                 hardware bounded pointers enable a low-overhead
                 approach for enforcing complete spatial memory safety
                 in unmodified C programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C programming language; spatial memory safety",
}

@Article{Lvin:2008:ATA,
  author =       "Vitaliy B. Lvin and Gene Novark and Emery D. Berger
                 and Benjamin G. Zorn",
  title =        "{Archipelago}: trading address space for reliability
                 and security",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "115--124",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353535.1346296",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Memory errors are a notorious source of security
                 vulnerabilities that can lead to service interruptions,
                 information leakage and unauthorized access. Because
                 such errors are also difficult to debug, the absence of
                 timely patches can leave users vulnerable to attack for
                 long periods of time. A variety of approaches have been
                 introduced to combat these errors, but these often
                 incur large runtime overheads and generally abort on
                 errors, threatening availability.\par

                 This paper presents Archipelago, a runtime system that
                 takes advantage of available address space to
                 substantially reduce the likelihood that a memory error
                 will affect program execution. Archipelago randomly
                 allocates heap objects far apart in virtual address
                 space, effectively isolating each object from buffer
                 overflows. Archipelago also protects against dangling
                 pointer errors by preserving the contents of freed
                 objects after they are freed. Archipelago thus trades
                 virtual address space---a plentiful resource on 64-bit
                 systems---for significantly improved program
                 reliability and security, while limiting physical
                 memory consumption by tracking the working set of an
                 application and compacting cold objects. We show that
                 Archipelago allows applications to continue to run
                 correctly in the face of thousands of memory errors.
                 Across a suite of server applications, Archipelago's
                 performance overhead is 6\% on average (between -7\%
                 and 22\%), making it especially suitable to protect
                 servers that have known security vulnerabilities due to
                 heap memory errors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Archipelago; buffer overflow; dynamic memory
                 allocation; memory errors; probabilistic memory safety;
                 randomized algorithms; virtual memory",
}

@Article{Choi:2008:ABP,
  author =       "Bumyong Choi and Leo Porter and Dean M. Tullsen",
  title =        "Accurate branch prediction for short threads",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "125--134",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353534.1346298",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multi-core processors, with low communication costs
                 and high availability of execution cores, will increase
                 the use of execution and compilation models that use
                 short threads to expose parallelism. Current branch
                 predictors seek to incorporate large amounts of control
                 flow history to maximize accuracy. However, when that
                 history is absent the predictor fails to work as
                 intended. Thus, modern predictors are almost useless
                 for threads below a certain length.\par

                 Using a Speculative Multithreaded (SpMT) architecture
                 as an example of a system which generates shorter
                 threads, this work examines techniques to improve
                 branch prediction accuracy when a new thread begins to
                 execute on a different core. This paper proposes a
                 minor change to the branch predictor that gives
                 virtually the same performance on short threads as an
                 idealized predictor that incorporates unknowable
                 pre-history of a spawned speculative thread. At the
                 same time, strong performance on long threads is
                 preserved. The proposed technique sets the global
                 history register of the spawned thread to the initial
                 value of the program counter. This novel and simple
                 design reduces branch mispredicts by 29\% and provides
                 as much as a 13\% IPC improvement on selected SPEC2000
                 benchmarks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "branch prediction; chip multiprocessors",
}

@Article{Srikantaiah:2008:ASP,
  author =       "Shekhar Srikantaiah and Mahmut Kandemir and Mary Jane
                 Irwin",
  title =        "Adaptive set pinning: managing shared caches in chip
                 multiprocessors",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "135--144",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353534.1346299",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As part of the trend towards Chip Multiprocessors
                 (CMPs) for the next leap in computing performance, many
                 architectures have explored sharing the last level of
                 cache among different processors for better
                 performance-cost ratio and improved resource
                 allocation. Shared cache management is a crucial CMP
                 design aspect for the performance of the system. This
                 paper first presents a new classification of cache
                 misses --- CII: Compulsory, Inter-processor and
                 Intra-processor misses --- for CMPs with shared caches
                 to provide a better understanding of the interactions
                 between memory transactions of different processors at
                 the level of shared cache in a CMP. We then propose a
                 novel approach, called set pinning, for eliminating
                 inter-processor misses and reducing intra-processor
                 misses in a shared cache. Furthermore, we show that an
                 adaptive set pinning scheme improves over the benefits
                 obtained by the set pinning scheme by significantly
                 reducing the number of off-chip accesses. Extensive
                 analysis of these approaches with SPEComp 2001
                 benchmarks is performed using a full system simulator.
                 Our experiments indicate that the set pinning scheme
                 achieves an average improvement of 22.18\% in the L2
                 miss rate while the adaptive set pinning scheme reduces
                 the miss rates by an average of 47.94\% as compared to
                 the traditional shared cache scheme. They also improve
                 the performance by 7.24\% and 17.88\% respectively.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "CMP; inter-processor; intra-processor; set pinning;
                 shared cache",
}

@Article{Tuck:2008:SSE,
  author =       "James Tuck and Wonsun Ahn and Luis Ceze and Josep
                 Torrellas",
  title =        "{SoftSig}: software-exposed hardware signatures for
                 code analysis and optimization",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "145--156",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346300",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many code analysis techniques for optimization,
                 debugging, or parallelization need to perform runtime
                 disambiguation of sets of addresses. Such operations
                 can be supported efficiently and with low complexity
                 with hardware signatures.\par

                 To enable flexible use of signatures, this paper
                 proposes to expose a Signature Register File to the
                 software through a rich ISA. The software has great
                 flexibility to decide, for each signature,which
                 addresses to collect and which addresses to
                 disambiguate against. We call this architecture
                 SoftSig. In addition, as an example of SoftSig use, we
                 show how to detect redundant function calls efficiently
                 and eliminate them dynamically. We call this algorithm
                 MemoiSE. On average for five popular applications,
                 MemoiSE reduces the number of dynamic instructions by
                 9.3\%, thereby reducing the execution time of the
                 applications by 9\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "memory disambiguation; multi-core architectures;
                 runtime optimization",
}

@Article{Burcea:2008:PV,
  author =       "Ioana Burcea and Stephen Somogyi and Andreas Moshovos
                 and Babak Falsafi",
  title =        "Predictor virtualization",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "157--167",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346301",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many hardware optimizations rely on collecting
                 information about program behavior at runtime. This
                 information is stored in lookup tables. To be accurate
                 and effective, these optimizations usually require
                 large dedicated on-chip tables. Although technology
                 advances offer an increased amount of on-chip
                 resources, these resources are allocated to increase
                 the size of on-chip conventional cache
                 hierarchies.\par

                 This work proposes Predictor Virtualization, a
                 technique that uses the existing memory hierarchy to
                 emulate large predictor tables. We demonstrate the
                 benefits of this technique by virtualizing a
                 state-of-the-art data prefetcher. Full-system,
                 cycle-accurate simulations demonstrate that the
                 virtualized prefetcher preserves the performance
                 benefits of the original design, while reducing the
                 on-chip storage dedicated to the predictor table from
                 60KB down to less than one kilobyte.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "caches; memory hierarchy; metadata; predictor
                 virtualization",
}

@Article{Ganapathy:2008:DIM,
  author =       "Vinod Ganapathy and Matthew J. Renzelmann and Arini
                 Balakrishnan and Michael M. Swift and Somesh Jha",
  title =        "The design and implementation of microdrivers",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "168--178",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346303",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Device drivers commonly execute in the kernel to
                 achieve high performance and easy access to kernel
                 services. However, this comes at the price of decreased
                 reliability and increased programming difficulty.
                 Driver programmers are unable to use user-mode
                 development tools and must instead use cumbersome
                 kernel tools. Faults in kernel drivers can cause the
                 entire operating system to crash. User-mode drivers
                 have long been seen as a solution to this problem, but
                 suffer from either poor performance or new interfaces
                 that require a rewrite of existing drivers.\par

                 This paper introduces the Microdrivers architecture
                 that achieves high performance and compatibility by
                 leaving critical path code in the kernel and moving the
                 rest of the driver code to a user-mode process. This
                 allows data-handling operations critical to I/O
                 performance to run at full speed, while management
                 operations such as initialization and configuration run
                 at reduced speed in user-level. To achieve
                 compatibility, we present DriverSlicer, a tool that
                 splits existing kernel drivers into a kernel-level
                 component and a user-level component using a small
                 number of programmer annotations. Experiments show that
                 as much as 65\% of driver code can be removed from the
                 kernel without affecting common-case performance, and
                 that only 1-6 percent of the code requires
                 annotations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "device drivers; program partitioning; reliability",
}

@Article{Weinsberg:2008:TFC,
  author =       "Yaron Weinsberg and Danny Dolev and Tal Anker and Muli
                 Ben-Yehuda and Pete Wyckoff",
  title =        "Tapping into the fountain of {CPUs}: on operating
                 system support for programmable devices",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "179--188",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346304",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The constant race for faster and more powerful CPUs is
                 drawing to a close. No longer is it feasible to
                 significantly increase the speed of the CPU without
                 paying a crushing penalty in power consumption and
                 production costs. Instead of increasing single thread
                 performance, the industry is turning to multiple CPU
                 threads or cores (such as SMT and CMP) and
                 heterogeneous CPU architectures (such as the Cell
                 Broadband Engine). While this is a step in the right
                 direction, in every modern PC there is a wealth of
                 untapped compute resources. The NIC has a CPU; the disk
                 controller is programmable; some high-end graphics
                 adapters are already more powerful than host CPUs. Some
                 of these CPUs can perform some functions more
                 efficiently than the host CPUs. Our operating systems
                 and programming abstractions should be expanded to let
                 applications tap into these computational resources and
                 make the best use of them.\par

                 Therefore, we propose the H\par

                 YDRA framework, which lets application developers use
                 the combined power of every compute resource in a
                 coherent way. HYDRA is a programming model and a
                 runtime support layer which enables utilization of host
                 processors as well as various programmable peripheral
                 devices' processors. We present the framework and its
                 application for a demonstrative use-case, as well as
                 provide a thorough evaluation of its capabilities.
                 Using HYDRA we were able to cut down the development
                 cost of a system that uses multiple heterogeneous
                 compute resources significantly.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "offloading; operating systems; programming model",
}

@Article{Shen:2008:HCD,
  author =       "Kai Shen and Ming Zhong and Sandhya Dwarkadas and
                 Chuanpeng Li and Christopher Stewart and Xiao Zhang",
  title =        "Hardware counter driven on-the-fly request
                 signatures",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "189--200",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346306",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Today's processors provide a rich source of
                 statistical information on application execution
                 through hardware counters. In this paper, we explore
                 the utilization of these statistics as request
                 signatures in server applications for identifying
                 requests and inferring high-level request properties
                 (e.g., CPU and I/O resource needs). Our key finding is
                 that effective request signatures may be constructed
                 using a small amount of hardware statistics while the
                 request is still in an early stage of its execution.
                 Such on-the-fly request identification and property
                 inference allow guided operating system adaptation at
                 request granularity (e.g., resource-aware request
                 scheduling and on-the-fly request classification). We
                 address the challenges of selecting hardware counter
                 metrics for signature construction and providing
                 necessary operating system support for per-request
                 statistics management. Our implementation in the Linux
                 2.6.10 kernel suggests that our approach requires low
                 overhead suitable for runtime deployment. Our
                 on-the-fly request resource consumption inference
                 (averaging 7\%, 3\%, 20\%, and 41\% prediction errors
                 for four server workloads, TPC-C, TPC-H, J2EE-based
                 RUBiS, and a trace-driven index search, respectively)
                 is much more accurate than the online running-average
                 based prediction (73-82\% errors). Its use for
                 resource-aware request scheduling results in a 15-70\%
                 response time reduction for three CPU-bound
                 applications. Its use for on-the-fly request
                 classification and anomaly detection exhibits high
                 accuracy for the TPC-H workload with synthetically
                 generated anomalous requests following a typical
                 SQL-injection attack pattern.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "anomaly detection; hardware counter; operating system
                 adaptation; request classification; server system",
}

@Article{VanErtvelde:2008:DPA,
  author =       "Luk {Van Ertvelde} and Lieven Eeckhout",
  title =        "Dispersing proprietary applications as benchmarks
                 through code mutation",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "201--210",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353534.1346307",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Industry vendors hesitate to disseminate proprietary
                 applications to academia and third party vendors. By
                 consequence, the benchmarking process is typically
                 driven by standardized, open-source benchmarks which
                 may be very different from and likely not
                 representative of the real-life applications of
                 interest.\par

                 This paper proposes code mutation, a novel technique
                 that mutates a proprietary application to complicate
                 reverse engineering so that it can be distributed as a
                 benchmark. The benchmark mutant then serves as a proxy
                 for the proprietary application. The key idea in the
                 proposed code mutation approach is to preserve the
                 proprietary application's dynamic memory access and/or
                 control flow behavior in the benchmark mutant while
                 mutating the rest of the application code. To this end,
                 we compute program slices for memory access operations
                 and/or control flow operations trimmed through constant
                 value and branch profiles; and subsequently mutate the
                 instructions not appearing in these slices through
                 binary rewriting.\par

                 Our experimental results using SPEC CPU2000 and MiBench
                 benchmarks show that code mutation is a promising
                 technique that mutates up to 90\% of the static binary,
                 up to 50\% of the dynamically executed instructions,
                 and up to 35\% of the at run time exposed
                 inter-operation data dependencies. The performance
                 characteristics of the mutant are very similar to those
                 of the proprietary application across a wide range of
                 microarchitectures and hardware implementations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "benchmark generation; code mutation",
}

@Article{Mysore:2008:UVF,
  author =       "Shashidhar Mysore and Bita Mazloom and Banit Agrawal
                 and Timothy Sherwood",
  title =        "Understanding and visualizing full systems with data
                 flow tomography",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "211--221",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353534.1346308",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It is not uncommon for modern systems to be composed
                 of a variety of interacting services, running across
                 multiple machines in such a way that most developers do
                 not really understand the whole system. As abstraction
                 is layered atop abstraction, developers gain the
                 ability to compose systems of extraordinary complexity
                 with relative ease. However, many software properties,
                 especially those that cut across abstraction layers,
                 become very difficult to understand in such
                 compositions. The communication patterns involved, the
                 privacy of critical data, and the provenance of
                 information, can be difficult to find and understand,
                 even with access to all of the source code. The goal of
                 Data Flow Tomography is to use the inherent information
                 flow of such systems to help visualize the interactions
                 between complex and interwoven components across
                 multiple layers of abstraction. In the same way that
                 the injection of short-lived radioactive isotopes help
                 doctors trace problems in the cardiovascular system,
                 the use of 'data tagging' can help developers slice
                 through the extraneous layers of software and pin-point
                 those portions of the system interacting with the data
                 of interest. To demonstrate the feasibility of this
                 approach we have developed a prototype system in which
                 tags are tracked both through the machine and in
                 between machines over the network, and from which novel
                 visualizations of the whole system can be derived. We
                 describe the system-level challenges in creating a
                 working system tomography tool and we qualitatively
                 evaluate our system by examining several example real
                 world scenarios.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data flow tracking; tomography; virtual machine",
}

@Article{Ottoni:2008:COG,
  author =       "Guilherme Ottoni and David I. August",
  title =        "Communication optimizations for global multi-threaded
                 instruction scheduling",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "222--232",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353535.1346310",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The recent shift in the industry towards chip
                 multiprocessor (CMP) designs has brought the need for
                 multi-threaded applications to mainstream computing. As
                 observed in several limit studies, most of the
                 parallelization opportunities require looking for
                 parallelism beyond local regions of code. To exploit
                 these opportunities, especially for sequential
                 applications, researchers have recently proposed global
                 multi-threaded instruction scheduling techniques,
                 including DSWP and GREMIO. These techniques
                 simultaneously schedule instructions from large regions
                 of code, such as arbitrary loop nests or whole
                 procedures, and have been shown to be effective at
                 extracting threads for many applications. A key enabler
                 of these global instruction scheduling techniques is
                 the Multi-Threaded Code Generation (MTCG) algorithm
                 proposed in [16], which generates multi-threaded code
                 for any partition of the instructions into threads.
                 This algorithm inserts communication and
                 synchronization instructions in order to satisfy all
                 inter-thread dependences.\par

                 In this paper, we present a general compiler framework,
                 COCO, to optimize the communication and synchronization
                 instructions inserted by the MTCG algorithm. This
                 framework, based on thread-aware data-flow analyses and
                 graph min-cut algorithms, appropriately models and
                 optimizes all kinds of inter-thread dependences,
                 including register, memory, and control dependences.
                 Our experiments, using a fully automatic compiler
                 implementation of these techniques, demonstrate
                 significant reductions (about 30\% on average) in the
                 number of dynamic communication instructions in code
                 parallelized with DSWP and GREMIO. This reduction in
                 communication translates to performance gains of up to
                 40\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "communication; data-flow analysis; graph min-cut;
                 instruction scheduling; multi-threading;
                 synchronization",
}

@Article{Kulkarni:2008:OPB,
  author =       "Milind Kulkarni and Keshav Pingali and Ganesh
                 Ramanarayanan and Bruce Walter and Kavita Bala and L.
                 Paul Chew",
  title =        "Optimistic parallelism benefits from data
                 partitioning",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "233--243",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353534.1346311",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Recent studies of irregular applications such as
                 finite-element mesh generators and data-clustering
                 codes have shown that these applications have a
                 generalized data parallelism arising from the use of
                 iterative algorithms that perform computations on
                 elements of worklists. In some irregular applications,
                 the computations on different elements are independent.
                 In other applications, there may be complex patterns of
                 dependences between these computations.\par

                 The Galois system was designed to exploit this kind of
                 irregular data parallelism on multicore processors. Its
                 main features are (i) two kinds of set iterators for
                 expressing worklist-based data parallelism, and (ii) a
                 runtime system that performs optimistic parallelization
                 of these iterators, detecting conflicts and rolling
                 back computations as needed. Detection of conflicts and
                 rolling back iterations requires information from class
                 implementors.\par

                 In this paper, we introduce mechanisms to improve the
                 execution efficiency of Galois programs: data
                 partitioning, data-centric work assignment, lock
                 coarsening, and over-decomposition. These mechanisms
                 can be used to exploit locality of reference, reduce
                 mis-speculation, and lower synchronization overhead. We
                 also argue that the design of the Galois system permits
                 these mechanisms to be used with relatively little
                 modification to the user code. Finally, we present
                 experimental results that demonstrate the utility of
                 these mechanisms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data partitioning; irregular programs; locality; lock
                 coarsening; optimistic parallelism;
                 over-decomposition",
}

@Article{Cox:2008:XEO,
  author =       "Russ Cox and Tom Bergan and Austin T. Clements and
                 Frans Kaashoek and Eddie Kohler",
  title =        "{Xoc}, an extension-oriented compiler for systems
                 programming",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "244--254",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353535.1346312",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Today's system programmers go to great lengths to
                 extend the languages in which they program. For
                 instance, system-specific compilers find errors in
                 Linux and other systems, and add support for
                 specialized control flow to Qt and event-based
                 programs. These compilers are difficult to build and
                 cannot always understand each other's language changes.
                 However, they can greatly improve code
                 understandability and correctness, advantages that
                 should be accessible to all programmers.\par

                 We describe an extension-oriented compiler for C called
                 xoc. An extension-oriented compiler, unlike a
                 conventional extensible compiler, implements new
                 features via many small extensions that are loaded
                 together as needed. Xoc gives extension writers full
                 control over program syntax and semantics while hiding
                 many compiler internals. Xoc programmers concisely
                 define powerful compiler extensions that, by
                 construction, can be combined; even some parts of the
                 base compiler, such as GNU C compatibility, are
                 structured as extensions.\par

                 Xoc is based on two key interfaces. Syntax patterns
                 allow extension writers to manipulate language
                 fragments using concrete syntax. Lazy computation of
                 attributes allows extension writers to use the results
                 of analyses by other extensions or the core without
                 needing to worry about pass scheduling.\par

                 Extensions built using xoc include xsparse, a 345-line
                 extension that mimics Sparse, Linux's C front end, and
                 xlambda, a 170-line extension that adds function
                 expressions to C. An evaluation of xoc using these and
                 13 other extensions shows that xoc extensions are
                 typically more concise than equivalent extensions
                 written for conventional extensible compilers and that
                 it is possible to compose extensions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "extension-oriented compilers",
}

@Article{Wells:2008:AIF,
  author =       "Philip M. Wells and Koushik Chakraborty and Gurindar
                 S. Sohi",
  title =        "Adapting to intermittent faults in multicore systems",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "255--264",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353536.1346314",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Future multicore processors will be more susceptible
                 to a variety of hardware failures. In particular,
                 intermittent faults, caused in part by manufacturing,
                 thermal, and voltage variations, can cause bursts of
                 frequent faults that last from several cycles to
                 several seconds or more. Due to practical limitations
                 of circuit techniques, cost-effective reliability will
                 likely require the ability to temporarily suspend
                 execution on a core during periods of intermittent
                 faults.\par

                 We investigate three of the most obvious techniques for
                 adapting to the dynamically changing resource
                 availability caused by intermittent faults, and
                 demonstrate their different system-level implications.
                 We show that system software reconfiguration has very
                 high overhead, that temporarily pausing execution on a
                 faulty core can lead to cascading livelock, and that
                 using spare cores has high fault-free cost. To remedy
                 these and other drawbacks of the three baseline
                 techniques, we propose using a thin hardware/firmware
                 layer to manage an overcommitted system -- one where
                 the OS is configured to use more virtual processors
                 than the number of currently available physical cores.
                 We show that this proposed technique can gracefully
                 degrade performance during intermittent faults of
                 various duration with low overhead, without involving
                 system software, and without requiring spare cores.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "intermittent faults; overcommitted system",
}

@Article{Li:2008:UPH,
  author =       "Man-Lap Li and Pradeep Ramachandran and Swarup Kumar
                 Sahoo and Sarita V. Adve and Vikram S. Adve and
                 Yuanyuan Zhou",
  title =        "Understanding the propagation of hard errors to
                 software and implications for resilient system design",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "265--276",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346315",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "With continued CMOS scaling, future shipped hardware
                 will be increasingly vulnerable to in-the-field faults.
                 To be broadly deployable, the hardware reliability
                 solution must incur low overheads, precluding use of
                 expensive redundancy. We explore a cooperative
                 hardware-software solution that watches for anomalous
                 software behavior to indicate the presence of hardware
                 faults. Fundamental to such a solution is a
                 characterization of how hardware faults indifferent
                 microarchitectural structures of a modern processor
                 propagate through the application and OS.\par

                 This paper aims to provide such a characterization,
                 resulting in identifying low-cost detection methods and
                 providing guidelines for implementation of the recovery
                 and diagnosis components of such a reliability
                 solution. We focus on hard faults because they are
                 increasingly important and have different system
                 implications than the much studied transients. We
                 achieve our goals through fault injection experiments
                 with a microarchitecture-level full system timing
                 simulator. Our main results are: (1) we are able to
                 detect 95\% of the unmasked faults in 7 out of 8
                 studied microarchitectural structures with simple
                 detectors that incur zero to little hardware overhead;
                 (2) over 86\% of these detections are within latencies
                 that existing hardware checkpointing schemes can
                 handle, while others require software checkpointing;
                 and (3) a surprisingly large fraction of the detected
                 faults corrupt OS state, but almost all of these are
                 detected with latencies short enough to use hardware
                 checkpointing, thereby enabling OS recovery in
                 virtually all such cases.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "architecture; error detection; fault injection;
                 permanent fault",
}

@Article{Suleman:2008:FDT,
  author =       "M. Aater Suleman and Moinuddin K. Qureshi and Yale N.
                 Patt",
  title =        "Feedback-driven threading: power-efficient and
                 high-performance execution of multi-threaded workloads
                 on {CMPs}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "277--286",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346317",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Extracting high-performance from the emerging Chip
                 Multiprocessors (CMPs) requires that the application be
                 divided into multiple threads. Each thread executes on
                 a separate core thereby increasing concurrency and
                 improving performance. As the number of cores on a CMP
                 continues to increase, the performance of some
                 multi-threaded applications will benefit from the
                 increased number of threads, whereas, the performance
                 of other multi-threaded applications will become
                 limited by data-synchronization and off-chip bandwidth.
                 For applications that get limited by
                 data-synchronization, increasing the number of threads
                 significantly degrades performance and increases
                 on-chip power. Similarly, for applications that get
                 limited by off-chip bandwidth, increasing the number of
                 threads increases on-chip power without providing any
                 performance improvement. Furthermore, whether an
                 application gets limited by data-synchronization, or
                 bandwidth, or neither depends not only on the
                 application but also on the input set and the machine
                 configuration. Therefore, controlling the number of
                 threads based on the run-time behavior of the
                 application can significantly improve performance and
                 reduce power.\par

                 This paper proposes Feedback-Driven Threading (FDT), a
                 framework to dynamically control the number of threads
                 using run-time information. FDT can be used to
                 implement Synchronization-Aware Threading (SAT), which
                 predicts the optimal number of threads depending on the
                 amount of data-synchronization. Our evaluation shows
                 that SAT can reduce both execution time and power by up
                 to 66\% and 78\% respectively. Similarly, FDT can be
                 used to implement Bandwidth-Aware Threading (BAT),
                 which predicts the minimum number of threads required
                 to saturate the off-chip bus. Our evaluation shows that
                 BAT reduces on-chip power by up to 78\%. When SAT and
                 BAT are combined, the average execution time reduces by
                 17\% and power reduces by 59\%. The proposed techniques
                 leverage existing performance counters and require
                 minimal support from the threading library.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bandwidth; CMP; multi-threaded; synchronization",
}

@Article{Linderman:2008:MPM,
  author =       "Michael D. Linderman and Jamison D. Collins and Hong
                 Wang and Teresa H. Meng",
  title =        "{Merge}: a programming model for heterogeneous
                 multi-core systems",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "287--296",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346318",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper we propose the Merge framework, a
                 general purpose programming model for heterogeneous
                 multi-core systems. The Merge framework replaces
                 current ad hoc approaches to parallel programming on
                 heterogeneous platforms with a rigorous, library-based
                 methodology that can automatically distribute
                 computation across heterogeneous cores to achieve
                 increased energy and performance efficiency. The Merge
                 framework provides (1) a predicate dispatch-based
                 library system for managing and invoking function
                 variants for multiple architectures; (2) a high-level,
                 library-oriented parallel language based on map-reduce;
                 and (3) a compiler and runtime which implement the
                 map-reduce language pattern by dynamically selecting
                 the best available function implementations for a given
                 input and machine configuration. Using a generic
                 sequencer architecture interface for heterogeneous
                 accelerators, the Merge framework can integrate
                 function variants for specialized accelerators,
                 offering the potential for to-the-metal performance for
                 a wide range of heterogeneous architectures, all
                 transparent to the user. The Merge framework has been
                 prototyped on a heterogeneous platform consisting of an
                 Intel Core 2 Duo CPU and an 8-core 32-thread Intel
                 Graphics and Media Accelerator X3000, and a homogeneous
                 32-way Unisys SMP system with Intel Xeon processors. We
                 implemented a set of benchmarks using the Merge
                 framework and enhanced the library with X3000 specific
                 implementations, achieving speedups of 3.6x -- 8.5x
                 using the X3000 and 5.2x -- 22x using the 32-way system
                 relative to the straight C reference implementation on
                 a single IA32 core.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "GPGPU; heterogeneous multi-core; predicate dispatch",
}

@Article{Gummaraju:2008:SPG,
  author =       "Jayanth Gummaraju and Joel Coburn and Yoshio Turner
                 and Mendel Rosenblum",
  title =        "{Streamware}: programming general-purpose multicore
                 processors using streams",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "297--307",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346319",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Recently, the number of cores on general-purpose
                 processors has been increasing rapidly. Using
                 conventional programming models, it is challenging to
                 effectively exploit these cores for maximal
                 performance. An interesting alternative candidate for
                 programming multiple cores is the stream programming
                 model, which provides a framework for writing programs
                 in a sequential-style while greatly simplifying the
                 task of automatic parallelization. It has been shown
                 that not only traditional media/image applications but
                 also more general-purpose data-intensive applications
                 can be expressed in the stream programming
                 style.\par

                 In this paper, we investigate the potential to use the
                 stream programming model to efficiently utilize
                 commodity multicore general-purpose processors (e.g.,
                 Intel/AMD). Although several stream languages and
                 stream compilers have recently been developed, they
                 typically target special-purpose stream processors. In
                 contrast, we propose a flexible software system,
                 Streamware, which automatically maps stream programs
                 onto a wide variety of general-purpose multicore
                 processor configurations. We leverage existing
                 compilation framework for stream processors and design
                 a runtime environment which takes as input the output
                 of these stream compilers in the form of
                 machine-independent stream virtual machine code. The
                 runtime environment assigns work to processor cores
                 considering processor/cache configurations and adapts
                 to workload variations. We evaluate this approach for a
                 few general-purpose scientific applications on real
                 hardware and a cycle-level simulator set-up to showcase
                 scaling and contention issues. The results show that
                 the stream programming model is a good choice for
                 efficiently exploiting modern and future multicore CPUs
                 for an important class of applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "general-purpose multicore processors; programming;
                 runtime system; streams",
}

@Article{Nightingale:2008:PSC,
  author =       "Edmund B. Nightingale and Daniel Peek and Peter M.
                 Chen and Jason Flinn",
  title =        "Parallelizing security checks on commodity hardware",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "308--318",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346321",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Speck (Speculative Parallel Check) is a system that
                 accelerates powerful security checks on commodity
                 hardware by executing them in parallel on multiple
                 cores. Speck provides an infrastructure that allows
                 sequential invocations of a particular security check
                 to run in parallel without sacrificing the safety of
                 the system. Speck creates parallelism in two ways.
                 First, Speck decouples a security check from an
                 application by continuing the application, using
                 speculative execution, while the security check
                 executes in parallel on another core. Second, Speck
                 creates parallelism between sequential invocations of a
                 security check by running later checks in parallel with
                 earlier ones. Speck provides a process-level replay
                 system to deterministically and efficiently synchronize
                 state between a security check and the original
                 process. We use Speck to parallelize three security
                 checks: sensitive data analysis, on-access virus
                 scanning, and taint propagation. Running on a 4-core
                 and an 8-core computer, Speck improves performance 4x
                 and 7.5x for the sensitive data analysis check, 3.3x
                 and 2.8x for the on-access virus scanning check, and
                 1.6x and 2x for the taint propagation check.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "operating systems; parallel; performance; security;
                 speculative execution",
}

@Article{Castro:2008:BBR,
  author =       "Miguel Castro and Manuel Costa and Jean-Philippe
                 Martin",
  title =        "Better bug reporting with better privacy",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "319--328",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1346281.1346322",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software vendors collect bug reports from customers to
                 improve the quality of their software. These reports
                 should include the inputs that make the software fail,
                 to enable vendors to reproduce the bug. However,
                 vendors rarely include these inputs in reports because
                 they may contain private user data. We describe a
                 solution to this problem that provides software vendors
                 with new input values that satisfy the conditions
                 required to make the software follow the same execution
                 path until it fails, but are otherwise unrelated with
                 the original inputs. These new inputs allow vendors to
                 reproduce the bug while revealing less private
                 information than existing approaches. Additionally, we
                 provide a mechanism to measure the amount of
                 information revealed in an error report. This mechanism
                 allows users to perform informed decisions on whether
                 or not to submit reports. We implemented a prototype of
                 our solution and evaluated it with real errors in real
                 programs. The results show that we can produce error
                 reports that allow software vendors to reproduce bugs
                 while revealing almost no private information.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bug reports; constraint solving; privacy; symbolic
                 execution",
}

@Article{Lu:2008:LMC,
  author =       "Shan Lu and Soyeon Park and Eunsoo Seo and Yuanyuan
                 Zhou",
  title =        "Learning from mistakes: a comprehensive study on real
                 world concurrency bug characteristics",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "3",
  pages =        "329--339",
  month =        mar,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1353536.1346323",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:03:40 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The reality of multi-core hardware has made concurrent
                 programs pervasive. Unfortunately, writing correct
                 concurrent programs is difficult. Addressing this
                 challenge requires advances in multiple directions,
                 including concurrency bug detection, concurrent program
                 testing, concurrent programming model design, etc.
                 Designing effective techniques in all these directions
                 will significantly benefit from a deep understanding of
                 real world concurrency bug characteristics.\par

                 This paper provides the first (to the best of our
                 knowledge) comprehensive real world concurrency bug
                 characteristic study. Specifically, we have carefully
                 examined concurrency bug patterns, manifestation, and
                 fix strategies of 105 randomly selected real world
                 concurrency bugs from 4 representative server and
                 client open-source applications (MySQL, Apache, Mozilla
                 and OpenOffice). Our study reveals several interesting
                 findings and provides useful guidance for concurrency
                 bug detection, testing, and concurrent programming
                 language design.\par

                 Some of our findings are as follows: (1) Around one
                 third of the examined non-deadlock concurrency bugs are
                 caused by violation to programmers' order intentions,
                 which may not be easily expressed via synchronization
                 primitives like locks and transactional memories; (2)
                 Around 34\% of the examined non-deadlock concurrency
                 bugs involve multiple variables, which are not well
                 addressed by existing bug detection tools; (3) About
                 92\% of the examined concurrency bugs can be reliably
                 triggered by enforcing certain orders among no more
                 than 4 memory accesses. This indicates that testing
                 concurrent programs can target at exploring possible
                 orders among every small groups of memory accesses,
                 instead of among all memory accesses; (4) About 73\% of
                 the examined non-deadlock concurrency bugs were not
                 fixed by simply adding or changing locks, and many of
                 the fixes were not correct at the first try, indicating
                 the difficulty of reasoning concurrent execution by
                 programmers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bug characteristics; concurrency bug; concurrent
                 program",
}

@Article{Ce:2008:PVM,
  author =       "Yu Ce and Xu Zhen and Sun Ji-zhou and Meng Xiao-jing
                 and Huang Yan-yan and Wu Hua-bei",
  title =        "{ParaModel}: a visual modeling and code skeleton
                 generation system for programming parallel
                 applications",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "4",
  pages =        "4--10",
  month =        apr,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1374752.1374753",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:46 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "ParaModel is an extensible system for simplifying the
                 development of parallel applications, by providing a
                 unified user interface for modeling visually while
                 generating different code skeletons according to
                 specific runtime environment automatically. A set of
                 construction blocks and rules is designed to describe
                 parallel applications in form of graph, and parsers for
                 different parallel environments are implemented to
                 translate graph to source code skeletons. ParaModel is
                 implemented basing on Eclipse and compatible with its
                 plug-in architecture. With the help of ParaModel,
                 developers can focus on high level design and obtain
                 code skeletons from visually constructed graphical
                 models.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "architectural skeleton; design pattern; program
                 parallel application; visual modeling",
}

@Article{Campanoni:2008:PDC,
  author =       "Simone Campanoni and Giovanni Agosta and Stefano
                 Crespi Reghizzi",
  title =        "A parallel dynamic compiler for {CIL} bytecode",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "4",
  pages =        "11--20",
  month =        apr,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1374752.1374754",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:46 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multi-core technology is being employed in most recent
                 high-performance architectures. Such architectures need
                 specifically designed multi-threaded software to
                 exploit all the potentialities of their hardware
                 parallelism.\par

                 At the same time, object code virtualization
                 technologies are achieving a growing popularity, as
                 they allow higher levels of software portability and
                 reuse.\par

                 Thus, a virtual execution environment running on a
                 multi-core processor has to run complex, high-level
                 applications and to exploit as much as possible the
                 underlying parallel hardware. We propose an approach
                 that leverages on CMP features to expose a novel
                 pipeline synchronization model for the internal threads
                 of the dynamic compiler.\par

                 Thanks to compilation latency masking effect of the
                 pipeline organization, our dynamic compiler, ILDJIT, is
                 able to achieve significant speedups (26\% on average)
                 with respect to the baseline, when the underlying
                 hardware exposes at least two cores.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic compilation; parallel virtual machine; virtual
                 execution system",
}

@Article{Sui:2008:ART,
  author =       "Yang Yi Sui and Jun Lin and Xiao Tuo Zhang",
  title =        "An automated refactoring tool for dataflow visual
                 programming language",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "4",
  pages =        "21--28",
  month =        apr,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1374752.1374755",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:46 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Refactoring tools are extremely important to prevent
                 errors and reduce consumed time. But these tools only
                 support text-based languages, especially in Object
                 Oriented languages. In order to accommodate the
                 situation that Dataflow Visual Programming Languages
                 (DFVPLs) are more and more popular, an automated
                 refactoring tool for DFVPL was proposed. DFVPL was
                 divided into two layers---visual layer and dataflow
                 layer. Two layers mutually evolved, which ensured
                 correctness of visual elements and dataflow semantic
                 during refactoring. Some algorithms like middle graph
                 generation; terminal auto-generation and terminal
                 auto-modification were proposed to implement the
                 changes of two layers. This tool has been proved
                 correct and efficient by some refactoring instances. In
                 addition, we discussed some famous DFVPL like LabVIEW
                 to expose lacking of automated refactoring tool forced
                 refactoring by hand to be time-consuming and
                 error-prone.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dataflow; dataflow visual programming language;
                 refactoring; software engineering",
}

@Article{Hook:2008:IDC,
  author =       "James Hook and Michael Sperber",
  title =        "The {ICFP} developer conference 2008",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "5",
  pages =        "3--4",
  month =        may,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1402227.1402229",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:28 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Functional Programming has seen greatly increased
                 interest in recent years: From being an academic
                 pursuit, functional programming is rapidly becoming a
                 sought-after technology with increasingly broad
                 applications. To accommodate the growing interest in
                 FP, this year's International Conference on Functional
                 Programming (in Victoria, British Columbia, Canada)
                 will be followed by the ICFP Developer Conference,
                 designed to help both decision-makers and developers to
                 learn about the potential of functional programming for
                 their projects, as well as gaining hands-on instruction
                 on how to realize that potential.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Frenger:2008:HJ,
  author =       "Paul Frenger",
  title =        "Hard {Java}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "5",
  pages =        "5--9",
  month =        may,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1402227.1402231",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:28 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Sun Microsystems has been a fantastic repository of
                 talent for years, somewhat reminiscent of Apple
                 Computer and the Xerox PARC (Palo Alto Research
                 Center). Sun developed the SPARC line of CPUs for their
                 Solaris Operating System (a flavor of Unix). This group
                 devised the only-ever hardware- and
                 software-independent computer boot-up system (OpenBoot
                 / Open Firmware / IEEE 1275). They also brought forth
                 Java, a programming language which today seems
                 ubiquitous and indispensable.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Falsafi:2008:I,
  author =       "Babak Falsafi and Pascal Felber",
  title =        "Introduction",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "5",
  pages =        "10--10",
  month =        may,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1402227.1402233",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:28 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In recent years, multiprocessors have emerged as the
                 architecture of choice at the chip level to help ride
                 Moore's law and continue exploiting the exponential
                 growth in transistors while maintaining acceptable
                 power consumption levels and complexity. Unfortunately,
                 parallel software has not made it to the mainstream,
                 making technologies to help facilitate parallel
                 software development and programming for commodity
                 chips critical to the sustained growth in IT
                 infrastructure and industry. Transactional programming
                 is emerging as a promising approach to help mitigate
                 many of the difficulties associated with conventional
                 synchronization and coordination mechanisms in parallel
                 programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bailey:2008:TPA,
  author =       "Mark W. Bailey",
  title =        "{TRANSACT 2008} paper abstracts",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "5",
  pages =        "11--14",
  month =        may,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1402227.1402234",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:28 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Menon:2008:SGL,
  author =       "Vijay Menon and Steven Balensiefer and Tatiana
                 Shpeisman and Ali-Reza Adl-Tabatabai and Richard L.
                 Hudson and Bratin Saha and Adam Welc",
  title =        "Single global lock semantics in a weakly atomic
                 {STM}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "5",
  pages =        "15--26",
  month =        may,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1402227.1402235",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:28 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As memory transactions have been proposed as a
                 language-level replacement for locks, there is growing
                 need for well-defined semantics. In contrast to
                 database transactions, transaction memory (TM)
                 semantics are complicated by the fact that programs may
                 access the same memory locations both inside and
                 outside transactions. {\em Strongly atomic\/}
                 semantics, where non-transactional accesses are treated
                 as implicit single-operation transactions, remain
                 difficult to provide without specialized hardware
                 support and/or significant performance overhead. As an
                 alternative, many in the community have informally
                 proposed that a {\em single global lock semantics\/}
                 [16, 9], where transaction semantics are mapped to
                 those of regions protected by a single global lock,
                 provide an intuitive and efficiently implementable
                 model for programmers.\par

                 In this paper, we explore the implementation and
                 performance implications of single global lock
                 semantics in a weakly atomic STM from the perspective
                 of Java, and we discuss why even recent STM
                 implementations fall short of these semantics. We
                 describe a new weakly atomic Java STM implementation
                 that provides single global lock semantics while
                 permitting concurrent execution, but we show that this
                 comes at a significant performance cost. We also
                 propose and implement various alternative semantics
                 that loosen single lock requirements while still
                 providing strong guarantees. We compare our new
                 implementations to previous ones, including a strongly
                 atomic STM. [22]",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Terauchi:2008:CRF,
  author =       "Tachio Terauchi",
  title =        "Checking race freedom via linear programming",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "1--10",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375583",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a new static analysis for race freedom and
                 race detection. The analysis checks race freedom by
                 reducing the problem to (rational) linear programming.
                 Unlike conventional static analyses for race freedom or
                 race detection, our analysis avoids explicit
                 computation of locksets and lock
                 linearity/must-aliasness. Our analysis can handle a
                 variety of synchronization idioms that more
                 conventional approaches often have difficulties with,
                 such as thread joining, semaphores, and signals. We
                 achieve efficiency by utilizing modern linear
                 programming solvers that can quickly solve large linear
                 programming instances. This paper reports on the formal
                 properties of the analysis and the experience with
                 applying an implementation to real world C programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "fractional capabilities; linear programming",
}

@Article{Sen:2008:RDR,
  author =       "Koushik Sen",
  title =        "Race directed random testing of concurrent programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "11--21",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375584",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Bugs in multi-threaded programs often arise due to
                 data races. Numerous static and dynamic program
                 analysis techniques have been proposed to detect data
                 races. We propose a novel randomized dynamic analysis
                 technique that utilizes potential data race information
                 obtained from an existing analysis tool to separate
                 real races from false races without any need for manual
                 inspection. Specifically, we use potential data race
                 information obtained from an existing dynamic analysis
                 technique to control a random scheduler of threads so
                 that real race conditions get created with very high
                 probability and those races get resolved randomly at
                 runtime. Our approach has several advantages over
                 existing dynamic analysis tools. First, we can create a
                 real race condition and resolve the race randomly to
                 see if an error can occur due to the race. Second, we
                 can replay a race revealing execution efficiently by
                 simply using the same seed for random number
                 generation--we do not need to record the execution.
                 Third, our approach has very low overhead compared to
                 other precise dynamic race detection techniques because
                 we only track all synchronization operations and a
                 single pair of memory access statements that are
                 reported to be in a potential race by an existing
                 analysis. We have implemented the technique in a
                 prototype tool for Java and have experimented on a
                 number of large multi-threaded Java programs. We report
                 a number of previously known and unknown bugs and real
                 races in these Java programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; dynamic analysis; race detection; random
                 testing",
}

@Article{Blackburn:2008:IMR,
  author =       "Stephen M. Blackburn and Kathryn S. McKinley",
  title =        "{Immix}: a mark-region garbage collector with space
                 efficiency, fast collection, and mutator performance",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "22--32",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375586",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programmers are increasingly choosing managed
                 languages for modern applications, which tend to
                 allocate many short-to-medium lived small objects. The
                 garbage collector therefore directly determines program
                 performance by making a classic space-time tradeoff
                 that seeks to provide space efficiency, fast
                 reclamation, and mutator performance. The three
                 canonical tracing garbage collectors: semi-space,
                 mark-sweep, and mark-compact each sacrifice one
                 objective. This paper describes a collector family,
                 called mark-region, and introduces opportunistic
                 defragmentation, which mixes copying and marking in a
                 single pass. Combining both, we implement immix, a
                 novel high performance garbage collector that achieves
                 all three performance objectives. The key insight is to
                 allocate and reclaim memory in contiguous regions, at a
                 coarse block grain when possible and otherwise in
                 groups of finer grain lines. We show that immix
                 outperforms existing canonical algorithms, improving
                 total application performance by 7 to 25\% on average
                 across 20 benchmarks. As the mature space in a
                 generational collector, immix matches or beats a highly
                 tuned generational collector, e.g. it improves jbb2000
                 by 5\%. These innovations and the identification of a
                 new family of collectors open new opportunities for
                 garbage collector design.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compaction; fragmentation; free-list; immix; locality;
                 mark-region; mark-sweep; semi-space;
                 sweep-to-free-list; sweep-to-region",
}

@Article{Pizlo:2008:SCR,
  author =       "Filip Pizlo and Erez Petrank and Bjarne Steensgaard",
  title =        "A study of concurrent real-time garbage collectors",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "33--44",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375587",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Concurrent garbage collection is highly attractive for
                 real-time systems, because offloading the collection
                 effort from the executing threads allows faster
                 response, allowing for extremely short deadlines at the
                 microseconds level. Concurrent collectors also offer
                 much better scalability over incremental collectors.
                 The main problem with concurrent real-time collectors
                 is their complexity. The first concurrent real-time
                 garbage collector that can support fine
                 synchronization, STOPLESS, has recently been presented
                 by Pizlo et al. In this paper, we propose two
                 additional (and different) algorithms for concurrent
                 real-time garbage collection: CLOVER and CHICKEN. Both
                 collectors obtain reduced complexity over the first
                 collector STOPLESS, but need to trade a benefit for it.
                 We study the algorithmic strengths and weaknesses of
                 CLOVER and CHICKEN and compare them to STOPLESS.
                 Finally, we have implemented all three collectors on
                 the Bartok compiler and runtime for C\# and we present
                 measurements to compare their efficiency and
                 responsiveness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrent garbage collection; garbage collection;
                 lock-free computation; memory management; real-time",
}

@Article{Wang:2008:CCA,
  author =       "Xi Wang and Zhilei Xu and Xuezheng Liu and Zhenyu Guo
                 and Xiaoge Wang and Zheng Zhang",
  title =        "Conditional correlation analysis for safe region-based
                 memory management",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "45--55",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375588",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Region-based memory management is a popular scheme in
                 systems software for better organization and
                 performance. In the scheme, a developer constructs a
                 hierarchy of regions of different lifetimes and
                 allocates objects in regions. When the developer
                 deletes a region, the runtime will recursively delete
                 all its subregions and simultaneously reclaim objects
                 in the regions. The developer must construct a
                 consistent placement of objects in regions; otherwise,
                 if a region that contains pointers to other regions is
                 not always deleted before pointees, an inconsistency
                 will surface and cause dangling pointers, which may
                 lead to either crashes or leaks.\par

                 This paper presents a static analysis tool RegionWiz
                 that can find such lifetime inconsistencies in large C
                 programs using regions. The tool is based on an
                 analysis framework that generalizes the relations and
                 constraints over regions and objects as conditional
                 correlations. This framework allows a succinct
                 formalization of consistency rules for region
                 lifetimes, preserving memory safety and avoiding
                 dangling pointers. RegionWiz uses these consistency
                 rules to implement an efficient static analysis to
                 compute the conditional correlation and reason about
                 region lifetime consistency; the analysis is based on a
                 context-sensitive, field-sensitive pointer analysis
                 with heap cloning.\par

                 Experiments with applying RegionWiz to six real-world
                 software packages (including the RC compiler, Apache
                 web server, and Subversion version control system) with
                 two different region-based memory management interfaces
                 show that RegionWiz can reason about region lifetime
                 consistency in large C programs. The experiments also
                 show that RegionWiz can find several previously unknown
                 inconsistency bugs in these packages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "conditional correlation; error detection; memory
                 management; program analysis; region",
}

@Article{Amin:2008:AVM,
  author =       "Ahmed M. Amin and Mithuna Thottethodi and T. N.
                 Vijaykumar and Steven Wereley and Stephen C. Jacobson",
  title =        "Automatic volume management for programmable
                 microfluidics",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "56--67",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375590",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Microfluidics has enabled lab-on-a-chip technology to
                 miniaturize and integrate biological and chemical
                 analyses to a single chip comprising channels, valves,
                 mixers, heaters, separators, and sensors. Recent papers
                 have proposed programmable labs-on-a-chip as an
                 alternative to traditional application-specific chips
                 to reduce design effort, time, and cost. While these
                 previous papers provide the basic support for
                 programmability, this paper identifies and addresses a
                 practical issue, namely, fluid volume management.
                 Volume management addresses the problem that the use of
                 a fluid depletes it and unless the given volume of a
                 fluid is distributed carefully among all its uses,
                 execution may run out of the fluid before all its uses
                 are complete. Additionally, fluid volumes should not
                 overflow (i.e., exceed hardware capacity) or underflow
                 (i.e., fall below hardware resolution). We show that
                 the problem can be formulated as a linear programming
                 problem (LP). Because LP's complexity and slow
                 execution times in practice may be a concern, we
                 propose another approach, called DAGSolve, which
                 over-constrains the problem to achieve linear
                 complexity while maintaining good solution quality. We
                 also propose two optimizations, called cascading and
                 static replication, to handle cases involving extreme
                 mix ratios and numerous fluid uses which may defeat
                 both LP and DAGSolve. Using some real-world assays, we
                 show that our techniques produce good solutions while
                 being faster than LP.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "fluid volume management; microfluidics; programmable
                 lab on a chip",
}

@Article{Boehm:2008:FCC,
  author =       "Hans-J. Boehm and Sarita V. Adve",
  title =        "Foundations of the {C++} concurrency memory model",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "68--78",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375591",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Currently multi-threaded C or C++ programs combine a
                 single-threaded programming language with a separate
                 threads library. This is not entirely sound [7].\par

                 We describe an effort, currently nearing completion, to
                 address these issues by explicitly providing semantics
                 for threads in the next revision of the C++ standard.
                 Our approach is similar to that recently followed by
                 Java [25], in that, at least for a well-defined and
                 interesting subset of the language, we give
                 sequentially consistent semantics to programs that do
                 not contain data races. Nonetheless, a number of our
                 decisions are often surprising even to those familiar
                 with the Java effort:\par

                 We (mostly) insist on sequential consistency for
                 race-free programs, in spite of implementation issues
                 that came to light after the Java work.\par

                 We give no semantics to programs with data races. There
                 are no benign C++ data races.\par

                 We use weaker semantics for trylock than existing
                 languages or libraries, allowing us to promise
                 sequential consistency with an intuitive race
                 definition, even for programs with trylock.\par

                 This paper describes the simple model we would like to
                 be able to provide for C++ threads programmers, and
                 explain how this, together with some practical, but
                 often under-appreciated implementation constraints,
                 drives us towards the above decisions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "c++; data race; memory consistency; memory model;
                 sequential consistency; trylock",
}

@Article{Huang:2008:ESS,
  author =       "Shan Shan Huang and Yannis Smaragdakis",
  title =        "Expressive and safe static reflection with {MorphJ}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "79--89",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375592",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Recently, language extensions have been proposed for
                 Java and C\# to support pattern-based reflective
                 declaration. These extensions introduce a disciplined
                 form of meta-programming and aspect-oriented
                 programming to mainstream languages: They allow members
                 of a class (i.e., fields and methods) to be declared by
                 statically iterating over and pattern-matching on
                 members of other classes. Such techniques, however,
                 have been unable to safely express simple, but common,
                 idioms such as declaring getter and setter methods for
                 fields.\par

                 In this paper, we present a mechanism that addresses
                 the lack of expressiveness in past work without
                 sacrificing safety. Our technique is based on the idea
                 of nested patterns that elaborate the outer-most
                 pattern with blocking or enabling conditions. We
                 implemented this mechanism in a language, MorphJ. We
                 demonstrate the expressiveness of MorphJ with
                 real-world applications. In particular, the MorphJ
                 reimplementation of DSTM2, a software transactional
                 memory library, reduces 1,107 lines of Java reflection
                 and bytecode engineering library calls to just 374
                 lines of MorphJ code. At the same time, the MorphJ
                 solution is both high level and safer, as MorphJ can
                 separately type check generic classes and catch errors
                 early. We present and formalize the MorphJ type system,
                 and offer a type-checking algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented programming; class morphing; language
                 extensions; meta-programming; object-oriented
                 programming; structural abstraction",
}

@Article{Pouchet:2008:IOP,
  author =       "Louis-No{\"e}l Pouchet and C{\'e}dric Bastoul and
                 Albert Cohen and John Cavazos",
  title =        "Iterative optimization in the polyhedral model: part
                 ii, multidimensional time",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "90--100",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375594",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "High-level loop optimizations are necessary to achieve
                 good performance over a wide variety of processors.
                 Their performance impact can be significant because
                 they involve in-depth program transformations that aim
                 to sustain a balanced workload over the computational,
                 storage, and communication resources of the target
                 architecture. Therefore, it is mandatory that the
                 compiler accurately models the target architecture as
                 well as the effects of complex code
                 restructuring.\par

                 However, because optimizing compilers (1) use
                 simplistic performance models that abstract away many
                 of the complexities of modern architectures, (2) rely
                 on inaccurate dependence analysis, and (3) lack
                 frameworks to express complex interactions of
                 transformation sequences, they typically uncover only a
                 fraction of the peak performance available on many
                 applications. We propose a complete iterative framework
                 to address these issues. We rely on the polyhedral
                 model to construct and traverse a large and expressive
                 search space. This space encompasses only legal,
                 distinct versions resulting from the restructuring of
                 any static control loop nest. We first propose a
                 feedback-driven iterative heuristic tailored to the
                 search space properties of the polyhedral model.
                 Though, it quickly converges to good solutions for
                 small kernels, larger benchmarks containing higher
                 dimensional spaces are more challenging and our
                 heuristic misses opportunities for significant
                 performance improvement. Thus, we introduce the use of
                 a genetic algorithm with specialized operators that
                 leverage the polyhedral representation of program
                 dependences. We provide experimental evidence that the
                 genetic algorithm effectively traverses huge
                 optimization spaces, achieving good performance
                 improvements on large loop nests.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "affine scheduling; genetic algorithm; iterative
                 compilation; loop transformation",
}

@Article{Bondhugula:2008:PAP,
  author =       "Uday Bondhugula and Albert Hartono and J. Ramanujam
                 and P. Sadayappan",
  title =        "A practical automatic polyhedral parallelizer and
                 locality optimizer",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "101--113",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375595",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present the design and implementation of an
                 automatic polyhedral source-to-source transformation
                 framework that can optimize regular programs (sequences
                 of possibly imperfectly nested loops) for parallelism
                 and locality simultaneously. Through this work, we show
                 the practicality of analytical model-driven automatic
                 transformation in the polyhedral model -- far beyond
                 what is possible by current production compilers.
                 Unlike previous works, our approach is an end-to-end
                 fully automatic one driven by an integer linear
                 optimization framework that takes an explicit view of
                 finding good ways of tiling for parallelism and
                 locality using affine transformations. The framework
                 has been implemented into a tool to automatically
                 generate OpenMP parallel code from C program sections.
                 Experimental results from the tool show very high
                 speedups for local and parallel execution on
                 multi-cores over state-of-the-art compiler frameworks
                 from the research community as well as the best native
                 production compilers. The system also enables the easy
                 use of powerful empirical/iterative optimization for
                 general arbitrarily nested loop sequences.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "affine transformations; automatic parallelization;
                 locality optimization; loop transformations; polyhedral
                 model; tiling",
}

@Article{Kudlur:2008:OES,
  author =       "Manjunath Kudlur and Scott Mahlke",
  title =        "Orchestrating the execution of stream programs on
                 multicore platforms",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "114--124",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375596",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "While multicore hardware has become ubiquitous,
                 explicitly parallel programming models and compiler
                 techniques for exploiting parallelism on these systems
                 have noticeably lagged behind. Stream programming is
                 one model that has wide applicability in the
                 multimedia, graphics, and signal processing domains.
                 Streaming models execute as a set of independent actors
                 that explicitly communicate data through channels. This
                 paper presents a compiler technique for planning and
                 orchestrating the execution of streaming applications
                 on multicore platforms. An integrated unfolding and
                 partitioning step based on integer linear programming
                 is presented that unfolds data parallel actors as
                 needed and maximally packs actors onto cores. Next, the
                 actors are assigned to pipeline stages in such a way
                 that all communication is maximally overlapped with
                 computation on the cores. To facilitate
                 experimentation, a generalized code generation template
                 for mapping the software pipeline onto the Cell
                 architecture is presented. For a range of streaming
                 applications, a geometric mean speedup of 14.7x is
                 achieved on a 16-core Cell platform compared to a
                 single core.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cell processor; multicore; software pipelining; stream
                 programming; streamit",
}

@Article{Vechev:2008:DLF,
  author =       "Martin Vechev and Eran Yahav",
  title =        "Deriving linearizable fine-grained concurrent
                 objects",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "125--135",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375598",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Practical and efficient algorithms for concurrent data
                 structures are difficult to construct and modify.
                 Algorithms in the literature are often optimized for a
                 specific setting, making it hard to separate the
                 algorithmic insights from implementation details. The
                 goal of this work is to systematically construct
                 algorithms for a concurrent data structure starting
                 from its sequential implementation. Towards that goal,
                 we follow a construction process that combines manual
                 steps corresponding to high-level insights with
                 automatic exploration of implementation details. To
                 assist us in this process, we built a new tool called
                 Paraglider. The tool quickly explores large spaces of
                 algorithms and uses bounded model checking to check
                 linearizability of algorithms.\par

                 Starting from a sequential implementation and assisted
                 by the tool, we present the steps that we used to
                 derive various highly-concurrent algorithms. Among
                 these algorithms is a new fine-grained set data
                 structure that provides a wait-free contains operation,
                 and uses only the compare-and-swap (CAS) primitive for
                 synchronization.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "algorithms; concurrency; data structures;
                 linearizability; model checking",
}

@Article{Solar-Lezama:2008:SCD,
  author =       "Armando Solar-Lezama and Christopher Grant Jones and
                 Rastislav Bodik",
  title =        "Sketching concurrent data structures",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "136--148",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375599",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe PSketch, a program synthesizer that helps
                 programmers implement concurrent data structures. The
                 system is based on the concept of sketching, a form of
                 synthesis that allows programmers to express their
                 insight about an implementation as a partial program: a
                 sketch. The synthesizer automatically completes the
                 sketch to produce an implementation that matches a
                 given correctness criteria.\par

                 PSketch is based on a new counterexample-guided
                 inductive synthesis algorithm (CEGIS) that generalizes
                 the original sketch synthesis algorithm from
                 Solar-Lezama et.al. to cope efficiently with concurrent
                 programs. The new algorithm produces a correct
                 implementation by iteratively generating candidate
                 implementations, running them through a verifier, and
                 if they fail, learning from the counterexample traces
                 to produce a better candidate; converging to a solution
                 in a handful of iterations.\par

                 PSketch also extends Sketch with higher-level sketching
                 constructs that allow the programmer to express her
                 insight as a 'soup' of ingredients from which
                 complicated code fragments must be assembled. Such
                 sketches can be viewed as syntactic descriptions of
                 huge spaces of candidate programs (over 10$^8$
                 candidates for some sketches we resolved).\par

                 We have used the PSketch system to implement several
                 classes of concurrent data structures, including
                 lock-free queues and concurrent sets with fine-grained
                 locking. We have also sketched some other concurrent
                 objects including a sense-reversing barrier and a
                 protocol for the dining philosophers problem; all these
                 sketches resolved in under an hour.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; sat; sketching; spin; synthesis",
}

@Article{Anderson:2008:SCD,
  author =       "Zachary Anderson and David Gay and Rob Ennals and Eric
                 Brewer",
  title =        "{SharC}: checking data sharing strategies for
                 multithreaded {C}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "149--158",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375600",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Unintended or unmediated data sharing is a frequent
                 cause of insidious bugs in multithreaded programs. We
                 present a tool called SharC (short for Sharing Checker)
                 that allows a user to write lightweight annotations to
                 declare how they believe objects are being shared
                 between threads in their program. SharC uses a
                 combination of static and dynamic analyses to check
                 that the program conforms to this
                 specification.\par

                 SharC allows any type to have one of five 'sharing
                 modes' -- private to the current thread, read-only,
                 shared under the control of a specified lock,
                 intentionally racy, or checked dynamically. The dynamic
                 mode uses run-time checking to verify that objects are
                 either read-only, or only accessed by one thread. This
                 allows us to check programs that would be difficult to
                 check with a purely static system. If the user does not
                 give a type an explicit annotation, then SharC uses a
                 static type-qualifier analysis to infer that it is
                 either private or should be checked
                 dynamically.\par

                 SharC allows objects to move between different sharing
                 modes at runtime by using reference counting to check
                 that there are no other references to the objects when
                 they change mode.\par

                 SharC's baseline dynamic analysis can check any C
                 program, but is slow, and will generate false warnings
                 about intentional data sharing. As the user adds more
                 annotations, false warnings are reduced, and
                 performance improves. We have found in practice that
                 very few annotations are needed to describe all sharing
                 and give reasonable performance. We ran SharC on 6
                 legacy C programs, summing to over 600k lines of code,
                 and found that a total of only 60 simple annotations
                 were needed to remove all false positives and to reduce
                 performance overhead to only 2-14\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data-race",
}

@Article{Rondon:2008:LT,
  author =       "Patrick M. Rondon and Ming Kawaguci and Ranjit Jhala",
  title =        "Liquid types",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "159--169",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375602",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present Logically Qualified Data Types, abbreviated
                 to Liquid Types, a system that combines Hindley--Milner
                 type inference with Predicate Abstraction to
                 automatically infer dependent types precise enough to
                 prove a variety of safety properties. Liquid types
                 allow programmers to reap many of the benefits of
                 dependent types, namely static verification of critical
                 properties and the elimination of expensive run-time
                 checks, without the heavy price of manual annotation.
                 We have implemented liquid type inference in DSOLVE,
                 which takes as input an OCAML program and a set of
                 logical qualifiers and infers dependent types for the
                 expressions in the OCAML program. To demonstrate the
                 utility of our approach, we describe experiments using
                 DSOLVE to statically verify the safety of array
                 accesses on a set of OCAML benchmarks that were
                 previously annotated with dependent types as part of
                 the DML project. We show that when used in conjunction
                 with a fixed set of array bounds checking qualifiers,
                 DSOLVE reduces the amount of manual annotation required
                 for proving safety from 31\% of program text to under
                 1\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dependent types; Hindley--Milner; predicate
                 abstraction; type inference",
}

@Article{Feng:2008:CLL,
  author =       "Xinyu Feng and Zhong Shao and Yuan Dong and Yu Guo",
  title =        "Certifying low-level programs with hardware interrupts
                 and preemptive threads",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "170--182",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375603",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Hardware interrupts are widely used in the world's
                 critical software systems to support preemptive
                 threads, device drivers, operating system kernels, and
                 hypervisors. Handling interrupts properly is an
                 essential component of low-level system programming.
                 Unfortunately, interrupts are also extremely hard to
                 reason about: they dramatically alter the program
                 control flow and complicate the invariants in low-level
                 concurrent code (e.g., implementation of
                 synchronization primitives). Existing formal
                 verification techniques---including Hoare logic, typed
                 assembly language, concurrent separation logic, and the
                 assume-guarantee method---have consistently ignored the
                 issues of interrupts; this severely limits the
                 applicability and power of today's program verification
                 systems.\par

                 In this paper we present a novel Hoare-logic-like
                 framework for certifying low-level system programs
                 involving both hardware interrupts and preemptive
                 threads. We show that enabling and disabling interrupts
                 can be formalized precisely using simple
                 ownership-transfer semantics, and the same technique
                 also extends to the concurrent setting. By carefully
                 reasoning about the interaction among interrupt
                 handlers, context switching, and synchronization
                 libraries, we are able to---for the first
                 time---successfully certify a preemptive thread
                 implementation and a large number of common
                 synchronization primitives. Our work provides a
                 foundation for reasoning about interrupt-based kernel
                 programs and makes an important advance toward building
                 fully certified operating system kernels and
                 hypervisors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "certified system software; concurrency; hardware
                 interrupts; preemptive threads; separation logic",
}

@Article{Chen:2008:TPC,
  author =       "Juan Chen and Chris Hawblitzel and Frances Perry and
                 Mike Emmi and Jeremy Condit and Derrick Coetzee and
                 Polyvios Pratikaki",
  title =        "Type-preserving compilation for large-scale optimizing
                 object-oriented compilers",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "183--192",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375604",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Type-preserving compilers translate well-typed source
                 code, such as Java or C\#, into verifiable target code,
                 such as typed assembly language or proof-carrying code.
                 This paper presents the implementation of
                 type-preserving compilation in a complex, large-scale
                 optimizing compiler. Compared to prior work, this
                 implementation supports extensive optimizations, and it
                 verifies a large portion of the interface between the
                 compiler and the runtime system. This paper
                 demonstrates the practicality of type-preserving
                 compilation in complex optimizing compilers: the
                 generated typed assembly language is only 2.3\% slower
                 than the base compiler's generated untyped assembly
                 language, and the type-preserving compiler is 82.8\%
                 slower than the base compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "object-oriented compilers; type-preserving
                 compilation",
}

@Article{McCamant:2008:QIF,
  author =       "Stephen McCamant and Michael D. Ernst",
  title =        "Quantitative information flow as network flow
                 capacity",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "193--205",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375606",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a new technique for determining how much
                 information about a program's secret inputs is revealed
                 by its public outputs. In contrast to previous
                 techniques based on reachability from secret inputs
                 (tainting), it achieves a more precise quantitative
                 result by computing a maximum flow of information
                 between the inputs and outputs. The technique uses
                 static control-flow regions to soundly account for
                 implicit flows via branches and pointer operations, but
                 operates dynamically by observing one or more program
                 executions and giving numeric flow bounds specific to
                 them (e.g., '17 bits'). The maximum flow in a network
                 also gives a minimum cut (a set of edges that separate
                 the secret input from the output), which can be used to
                 efficiently check that the same policy is satisfied on
                 future executions. We performed case studies on 5 real
                 C, C++, and Objective C programs, 3 of which had more
                 than 250K lines of code. The tool checked multiple
                 security policies, including one that was violated by a
                 previously unknown bug.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic analysis; implicit flow; information-flow
                 analysis",
}

@Article{Godefroid:2008:GBW,
  author =       "Patrice Godefroid and Adam Kiezun and Michael Y.
                 Levin",
  title =        "Grammar-based whitebox fuzzing",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "206--215",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375607",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Whitebox fuzzing is a form of automatic dynamic test
                 generation, based on symbolic execution and constraint
                 solving, designed for security testing of large
                 applications. Unfortunately, the current effectiveness
                 of whitebox fuzzing is limited when testing
                 applications with highly-structured inputs, such as
                 compilers and interpreters. These applications process
                 their inputs in stages, such as lexing, parsing and
                 evaluation. Due to the enormous number of control paths
                 in early processing stages, whitebox fuzzing rarely
                 reaches parts of the application beyond those first
                 stages.\par

                 In this paper, we study how to enhance whitebox fuzzing
                 of complex structured-input applications with a
                 grammar-based specification of their valid inputs. We
                 present a novel dynamic test generation algorithm where
                 symbolic execution directly generates grammar-based
                 constraints whose satisfiability is checked using a
                 custom grammar-based constraint solver. We have
                 implemented this algorithm and evaluated it on a large
                 security-critical application, the JavaScript
                 interpreter of Internet Explorer 7 (IE7). Results of
                 our experiments show that grammar-based whitebox
                 fuzzing explores deeper program paths and avoids
                 dead-ends due to non-parsable inputs. Compared to
                 regular whitebox fuzzing, grammar-based whitebox
                 fuzzing increased coverage of the code generation
                 module of the IE7 JavaScript interpreter from 53\% to
                 81\% while using three times fewer tests.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic test generation; grammars; program
                 verification; software testing",
}

@Article{Pereira:2008:RAP,
  author =       "Fernando Magno Quint{\~a}o Pereira and Jens Palsberg",
  title =        "Register allocation by puzzle solving",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "216--226",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375609",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We show that register allocation can be viewed as
                 solving a collection of puzzles. We model the register
                 file as a puzzle board and the program variables as
                 puzzle pieces; pre-coloring and register aliasing fit
                 in naturally. For architectures such as PowerPC, x86,
                 and StrongARM, we can solve the puzzles in polynomial
                 time, and we have augmented the puzzle solver with a
                 simple heuristic for spilling. For SPEC CPU2000, the
                 compilation time of our implementation is as fast as
                 that of the extended version of linear scan used by
                 LLVM, which is the JIT compiler in the openGL stack of
                 Mac OS 10.5. Our implementation produces x86 code that
                 is of similar quality to the code produced by the
                 slower, state-of-the-art iterated register coalescing
                 of George and Appel with the extensions proposed by
                 Smith, Ramsey, and Holloway in 2004.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "puzzle solving; register aliasing; register
                 allocation",
}

@Article{Hack:2008:CCG,
  author =       "Sebastian Hack and Gerhard Goos",
  title =        "Copy coalescing by graph recoloring",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "227--237",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375610",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Register allocation is always a trade-off between
                 live-range splitting and coalescing. Live-range
                 splitting generally leads to less spilling at the cost
                 of inserting shuffle code. Coalescing removes shuffle
                 code while potentially raising the register demand and
                 causing spilling.\par

                 Recent research showed that the live-range splitting of
                 the SSA form's {\AE}-functions leads to chordal
                 interference graphs. This improves upon two
                 long-standing inconveniences of graph coloring register
                 allocation: First, chordal graphs are optimally
                 colorable in quadratic time. Second, the number of
                 colors needed to color the graph is equal to the
                 maximal register pressure in the program. However, the
                 inserted shuffle code incurred by the {\AE}-functions
                 can slow down the program severely. Hence, to make such
                 an approach work in practice, a coalescing technique is
                 needed that removes most of the shuffle code without
                 causing further spilling.\par

                 In this paper, we present a coalescing technique
                 designed for, but not limited to, SSA-form register
                 allocation. We exploit that a valid coloring can be
                 easily obtained by an SSA-based register allocator.
                 This initial coloring is then improved by recoloring
                 the interference graph and assigning shuffle-code
                 related nodes the same color. Thereby, we always keep
                 the coloring of the graph valid. Hence, the coalescing
                 is safe, i.e. no spill code will be caused by
                 coalescing.\par

                 Comparing to iterated register coalescing, the state of
                 the art in safe coalescing, our method is able to
                 remove 22.5\% of the costs and 44.3\% of the copies
                 iterated coalescing left over. The best solution
                 possible, found by a coalescer using integer linear
                 programming (ILP), was 35.9\% of the costs and 51.9\%
                 of the copies iterated coalescing left over. The
                 runtime of programs compiled with our heuristic matches
                 that of the programs compiled with the ILP technique.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "graph coloring; register allocation; ssa form",
}

@Article{Xin:2008:EPE,
  author =       "Bin Xin and William N. Sumner and Xiangyu Zhang",
  title =        "Efficient program execution indexing",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "238--248",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375611",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Execution indexing uniquely identifies a point in an
                 execution. Desirable execution indices reveal
                 correlations between points in an execution and
                 establish correspondence between points across multiple
                 executions. Therefore, execution indexing is essential
                 for a wide variety of dynamic program analyses, for
                 example, it can be used to organize program profiles;
                 it can precisely identify the point in a re-execution
                 that corresponds to a given point in an original
                 execution and thus facilitate debugging or dynamic
                 instrumentation. In this paper, we formally define the
                 concept of execution index and propose an indexing
                 scheme based on execution structure and program state.
                 We present a highly optimized online implementation of
                 the technique. We also perform a client study, which
                 targets producing a failure inducing schedule for a
                 data race by verifying the two alternative
                 happens-before orderings of a racing pair. Indexing is
                 used to precisely locate corresponding points across
                 multiple executions in the presence of non-determinism
                 so that no heavyweight tracing/replay system is
                 needed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "control dependence; data race; execution alignment;
                 execution indexing; semantic augmentation; structural
                 indexing",
}

@Article{Kahlon:2008:BTS,
  author =       "Vineet Kahlon",
  title =        "Bootstrapping: a technique for scalable flow and
                 context-sensitive pointer alias analysis",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "249--259",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375613",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a framework for improving both the
                 scalability as well as the accuracy of pointer alias
                 analysis, irrespective of its flow or
                 context-sensitivities, by leveraging a three-pronged
                 strategy that effectively combines divide and conquer,
                 parallelization and function summarization. A key step
                 in our approach is to first identify small subsets of
                 pointers such that the problem of computing aliases of
                 any pointer can be reduced to computing them in these
                 small subsets instead of the entire program. In order
                 to identify these subsets, we first apply a series of
                 increasingly accurate but highly scalable (context and
                 flow-insensitive) alias analyses in a cascaded fashion
                 such that each analysis A$_i$ works on the subsets
                 generated by the previous one A$_{i-1}$. Restricting
                 the application of A$_i$ to subsets generated by
                 A$_{i-1}$, instead of the entire program, improves it
                 scalability, i.e., A$_i$ is bootstrapped by A$_{i-1}$.
                 Once these small subsets have been computed, in order
                 to make our overall analysis accurate, we employ our
                 new summarization-based flow and context-sensitive
                 alias analysis. The small size of each subset offsets
                 the higher computational complexity of the
                 context-sensitive analysis. An important feature of our
                 framework is that the analysis for each of the subsets
                 can be carried out independently of others thereby
                 allowing us to leverage parallelization further
                 improving scalability.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "context-sensitive analysis; demand-driven analysis;
                 divide and conquer; Steensgaard partitioning;
                 summarization",
}

@Article{vonDincklage:2008:EFP,
  author =       "Daniel von Dincklage and Amer Diwan",
  title =        "Explaining failures of program analyses",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "260--269",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375614",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "With programs getting larger and often more complex
                 with each new release, programmers need all the help
                 they can get in understanding and transforming
                 programs. Fortunately, modern development environments,
                 such as Eclipse, incorporate tools for understanding,
                 navigating, and transforming programs. These tools
                 typically use program analyses to extract relevant
                 properties of programs.\par

                 These tools are often invaluable to developers; for
                 example, many programmers use refactoring tools
                 regularly. However, poor results by the underlying
                 analyses can compromise a tool's usefulness. For
                 example, a bug finding tool may produce too many false
                 positives if the underlying analysis is overly
                 conservative, and thus overwhelm the user with too many
                 possible errors in the program. In such cases it would
                 be invaluable for the tool to explain to the user why
                 it believes that each bug exists. Armed with this
                 knowledge, the user can decide which bugs are worth
                 pursing and which are false positives.\par

                 The contributions of this paper are as follows: (i) We
                 describe requirements on the structure of an analysis
                 so that we can produce reasons when the analysis fails;
                 the user of the analysis determines whether or not an
                 analysis's results constitute failure. We also describe
                 a simple language that enforces these requirements;
                 (ii) We describe how to produce necessary and
                 sufficient reasons for analysis failure; (iii) We
                 evaluate our system with respect to a number of
                 analyses and programs and find that most reasons are
                 small (and thus usable) and that our system is fast
                 enough for interactive use.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "analyses; reasons",
}

@Article{Dillig:2008:SCS,
  author =       "Isil Dillig and Thomas Dillig and Alex Aiken",
  title =        "Sound, complete and scalable path-sensitive analysis",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "270--280",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375615",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a new, precise technique for fully path-
                 and context-sensitive program analysis. Our technique
                 exploits two observations: First, using quantified,
                 recursive formulas, path- and context-sensitive
                 conditions for many program properties can be expressed
                 exactly. To compute a closed form solution to such
                 recursive constraints, we differentiate between
                 observable and unobservable variables, the latter of
                 which are existentially quantified in our approach.
                 Using the insight that unobservable variables can be
                 eliminated outside a certain scope, our technique
                 computes satisfiability- and validity-preserving
                 closed-form solutions to the original recursive
                 constraints. We prove the solution is as precise as the
                 original system for answering may and must queries as
                 well as being small in practice, allowing our technique
                 to scale to the entire Linux kernel, a program with
                 over 6 million lines of code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "path- and context-sensitive analysis; static analysis;
                 strongest necessary/weakest sufficient conditions",
}

@Article{Gulwani:2008:PAC,
  author =       "Sumit Gulwani and Saurabh Srivastava and Ramarathnam
                 Venkatesan",
  title =        "Program analysis as constraint solving",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "281--292",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375616",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A constraint-based approach to invariant generation in
                 programs translates a program into constraints that are
                 solved using off-the-shelf constraint solvers to yield
                 desired program invariants.\par

                 In this paper we show how the constraint-based approach
                 can be used to model a wide spectrum of program
                 analyses in an expressive domain containing
                 disjunctions and conjunctions of linear inequalities.
                 In particular, we show how to model the problem of
                 context-sensitive interprocedural program verification.
                 We also present the first constraint-based approach to
                 weakest precondition and strongest postcondition
                 inference. The constraints we generate are boolean
                 combinations of quadratic inequalities over integer
                 variables. We reduce these constraints to SAT formulae
                 using bitvector modeling and use off-the-shelf SAT
                 solvers to solve them.\par

                 Furthermore, we present interesting applications of the
                 above analyses, namely bounds analysis and generation
                 of most-general counter-examples for both safety and
                 termination properties. We also present encouraging
                 preliminary experimental results demonstrating the
                 feasibility of our technique on a variety of
                 challenging examples.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bounds analysis; constraint solving; most-general
                 counterexamples; non-termination analysis; program
                 verification; strongest postcondition; weakest
                 precondition",
}

@Article{Flanagan:2008:VSC,
  author =       "Cormac Flanagan and Stephen N. Freund and Jaeheon Yi",
  title =        "{Velodrome}: a sound and complete dynamic atomicity
                 checker for multithreaded programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "293--303",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375618",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Atomicity is a fundamental correctness property in
                 multithreaded programs, both because atomic code blocks
                 are amenable to sequential reasoning (which
                 significantly simplifies correctness arguments), and
                 because atomicity violations often reveal defects in a
                 program's synchronization structure. Unfortunately, all
                 atomicity analyses developed to date are incomplete in
                 that they may yield false alarms on correctly
                 synchronized programs, which limits their
                 usefulness.\par

                 We present the first dynamic analysis for atomicity
                 that is both sound and complete. The analysis reasons
                 about the exact dependencies between operations in the
                 observed trace of the target program, and it reports
                 error messages if and only if the observed trace is not
                 conflict-serializable. Despite this significant
                 increase in precision, the performance and coverage of
                 our analysis is competitive with earlier incomplete
                 dynamic analyses for atomicity.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomicity; dynamic analysis; serializability",
}

@Article{Cherem:2008:ILA,
  author =       "Sigmund Cherem and Trishul Chilimbi and Sumit
                 Gulwani",
  title =        "Inferring locks for atomic sections",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "304--315",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375619",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Atomic sections are a recent and popular idiom to
                 support the development of concurrent programs. Updates
                 performed within an atomic section should not be
                 visible to other threads until the atomic section has
                 been executed entirely. Traditionally, atomic sections
                 are supported through the use of optimistic
                 concurrency, either using a transactional memory
                 hardware, or an equivalent software emulation
                 (STM).\par

                 This paper explores automatically supporting atomic
                 sections using pessimistic concurrency. We present a
                 system that combines compiler and runtime techniques to
                 automatically transform programs written with atomic
                 sections into programs that only use locking
                 primitives. To minimize contention in the transformed
                 programs, our compiler chooses from several lock
                 granularities, using fine-grain locks whenever it is
                 possible.\par

                 This paper formally presents our framework, shows that
                 our compiler is sound (i.e., it protects all shared
                 locations accessed within atomic sections), and reports
                 experimental results.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomic sections; concurrency; static lock inference",
}

@Article{Chugh:2008:DAC,
  author =       "Ravi Chugh and Jan W. Voung and Ranjit Jhala and Sorin
                 Lerner",
  title =        "Dataflow analysis for concurrent programs using
                 datarace detection",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "316--326",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375620",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Dataflow analyses for concurrent programs differ from
                 their single-threaded counterparts in that they must
                 account for shared memory locations being overwritten
                 by concurrent threads. Existing dataflow analysis
                 techniques for concurrent programs typically fall at
                 either end of a spectrum: at one end, the analysis
                 conservatively kills facts about all data that might
                 possibly be shared by multiple threads; at the other
                 end, a precise thread-interleaving analysis determines
                 which data may be shared, and thus which dataflow facts
                 must be invalidated. The former approach can suffer
                 from imprecision, whereas the latter does not
                 scale.\par

                 We present RADAR, a framework that automatically
                 converts a dataflow analysis for sequential programs
                 into one that is correct for concurrent programs. RADAR
                 uses a race detection engine to kill the dataflow
                 facts, generated and propagated by the sequential
                 analysis, that become invalid due to concurrent writes.
                 Our approach of factoring all reasoning about
                 concurrency into a race detection engine yields two
                 benefits. First, to obtain analyses for code using new
                 concurrency constructs, one need only design a suitable
                 race detection engine for the constructs. Second, it
                 gives analysis designers an easy way to tune the
                 scalability and precision of the overall analysis by
                 only modifying the race detection engine. We describe
                 the RADAR framework and its implementation using a
                 pre-existing race detection engine. We show how RADAR
                 was used to generate a concurrent version of a
                 null-pointer dereference analysis, and we analyze the
                 result of running the generated concurrent analysis on
                 several benchmarks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "interprocedural analysis; locksets; multithreaded
                 programs; summaries",
}

@Article{Wegiel:2008:XTS,
  author =       "Michal Wegiel and Chandra Krintz",
  title =        "{XMem}: type-safe, transparent, shared memory for
                 cross-runtime communication and coordination",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "327--338",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375621",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Developers commonly build contemporary enterprise
                 applications using type-safe, component-based
                 platforms, such as J2EE, and architect them to comprise
                 multiple tiers, such as a web container, application
                 server, and database engine. Administrators
                 increasingly execute each tier in its own managed
                 runtime environment (MRE) to improve reliability and to
                 manage system complexity through the fault containment
                 and modularity offered by isolated MRE instances. Such
                 isolation, however, necessitates expensive cross-tier
                 communication based on protocols such as object
                 serialization and remote procedure calls.
                 Administrators commonly co-locate communicating MREs on
                 a single host to reduce communication overhead and to
                 better exploit increasing numbers of available
                 processing cores. However, state-of-the-art MREs offer
                 no support for more efficient communication between
                 co-located MREs, while fast inter-process communication
                 mechanisms, such as shared memory, are widely available
                 as a standard operating system service on most modern
                 platforms.\par

                 To address this growing need, we present the design and
                 implementation of XMem ? type-safe, transparent, shared
                 memory support for co-located MREs. XMem guarantees
                 type-safety through coordinated, parallel,
                 multi-process class loading and garbage collection. To
                 avoid introducing any level of indirection, XMem
                 manipulates virtual memory mapping. In addition, object
                 sharing in XMem is fully transparent: shared objects
                 are identical to local objects in terms of field
                 access, synchronization, garbage collection, and method
                 invocation, with the only difference being that
                 shared-to-private pointers are disallowed. XMem
                 facilitates easy integration and use by existing
                 communication technologies and software systems, such
                 as RMI, JNDI, JDBC, serialization/XML, and network
                 sockets.\par

                 We have implemented XMem in the open-source,
                 production-quality HotSpot Java Virtual Machine. Our
                 experimental evaluation, based on core communication
                 technologies underlying J2EE, as well as using
                 open-source server applications, indicates that XMem
                 significantly improves throughput and response time by
                 avoiding the overheads imposed by object serialization
                 and network communication.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "class loading; garbage collection; interprocess
                 communication; managed runtimes; parallel; shared
                 memory; synchronization; transparent; type-safe",
}

@Article{Halbwachs:2008:DPA,
  author =       "Nicolas Halbwachs and Mathias P{\'e}ron",
  title =        "Discovering properties about arrays in simple
                 programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "339--348",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375623",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Array bound checking and array dependency analysis
                 (for parallelization) have been widely studied.
                 However, there are much less results about analyzing
                 properties of array contents. In this paper, we propose
                 a way of using abstract interpretation for discovering
                 properties about array contents in some restricted
                 cases: one-dimensional arrays, traversed by simple
                 'for' loops. The basic idea, borrowed from [GRS05],
                 consists in partitioning arrays into symbolic intervals
                 (e.g., [1, i - 1], [i, i], [i + 1, n]), and in
                 associating with each such interval I and each array A
                 an abstract variable $A_I$; the new idea is to consider
                 relational abstract properties $\psi(A_I, B_I,
                 \ldots{})$ about these abstract variables, and to
                 interpret such a property pointwise on the interval
                 $I$: $\forall l \in I, \psi(A[l], B[l], \ldots{})$. The
                 abstract semantics of our simple programs according to
                 these abstract properties has been defined and
                 implemented in a prototype tool. The method is able,
                 for instance, to discover that the result of an
                 insertion sort is a sorted array, or that, in an array
                 traversal guarded by a 'sentinel', the index stays
                 within the bounds.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "`sentinel' sorting algorithms; abstract
                 interpretation; arrays; invariant synthesis; program
                 verification",
}

@Article{Zee:2008:FFV,
  author =       "Karen Zee and Viktor Kuncak and Martin Rinard",
  title =        "Full functional verification of linked data
                 structures",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "349--361",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375624",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present the first verification of full functional
                 correctness for a range of linked data structure
                 implementations, including mutable lists, trees,
                 graphs, and hash tables. Specifically, we present the
                 use of the Jahob verification system to verify formal
                 specifications, written in classical higher-order
                 logic, that completely capture the desired behavior of
                 the Java data structure implementations (with the
                 exception of properties involving execution time and/or
                 memory consumption). Given that the desired correctness
                 properties include intractable constructs such as
                 quantifiers, transitive closure, and lambda
                 abstraction, it is a challenge to successfully prove
                 the generated verification conditions.\par

                 Our Jahob verification system uses integrated reasoning
                 to split each verification condition into a conjunction
                 of simpler subformulas, then apply a diverse collection
                 of specialized decision procedures, first-order theorem
                 provers, and, in the worst case, interactive theorem
                 provers to prove each subformula. Techniques such as
                 replacing complex subformulas with stronger but simpler
                 alternatives, exploiting structure inherently present
                 in the verification conditions, and, when necessary,
                 inserting verified lemmas and proof hints into the
                 imperative source code make it possible to seamlessly
                 integrate all of the specialized decision procedures
                 and theorem provers into a single powerful integrated
                 reasoning system. By appropriately applying multiple
                 proof techniques to discharge different subformulas,
                 this reasoning system can effectively prove the complex
                 and challenging verification conditions that arise in
                 this context.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data structure; decision procedure; Java; theorem
                 prover; verification",
}

@Article{Musuvathi:2008:FSM,
  author =       "Madanlal Musuvathi and Shaz Qadeer",
  title =        "Fair stateless model checking",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "362--371",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379022.1375625",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Stateless model checking is a useful state-space
                 exploration technique for systematically testing
                 complex real-world software. Existing stateless model
                 checkers are limited to the verification of safety
                 properties on terminating programs. However, realistic
                 concurrent programs are nonterminating, a property that
                 significantly reduces the efficacy of stateless model
                 checking in testing them. Moreover, existing stateless
                 model checkers are unable to verify that a
                 nonterminating program satisfies the important liveness
                 property of livelock-freedom, a property that requires
                 the program to make continuous progress for any
                 input.\par

                 To address these shortcomings, this paper argues for
                 incorporating a fair scheduler in stateless
                 exploration. The key contribution of this paper is an
                 explicit scheduler that is (strongly) fair and at the
                 same time sufficiently nondeterministic to guarantee
                 full coverage of safety properties. We have implemented
                 the fair scheduler in the CHESS model checker. We show
                 through theoretical arguments and empirical evaluation
                 that our algorithm satisfies two important properties:
                 1) it visits all states of a finite-state program
                 achieving state coverage at a faster rate than existing
                 techniques, and 2) it finds all livelocks in a
                 finite-state program. Before this work, nonterminating
                 programs had to be manually modified in order to apply
                 CHESS to them. The addition of fairness has allowed
                 CHESS to be effectively applied to real-world
                 nonterminating programs without any modification. For
                 example, we have successfully booted the Singularity
                 operating system under the control of CHESS.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; fairness; liveness; model checking;
                 multi-threading; shared-memory programs; software
                 testing",
}

@Article{Guerraoui:2008:MCT,
  author =       "Rachid Guerraoui and Thomas A. Henzinger and Barbara
                 Jobstmann and Vasu Singh",
  title =        "Model checking transactional memories",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "372--382",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375626",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Model checking software transactional memories (STMs)
                 is difficult because of the unbounded number, length,
                 and delay of concurrent transactions and the unbounded
                 size of the memory. We show that, under certain
                 conditions, the verification problem can be reduced to
                 a finite-state problem, and we illustrate the use of
                 the method by proving the correctness of several STMs,
                 including two-phase locking, DSTM, TL2, and optimistic
                 concurrency control. The safety properties we consider
                 include strict serializability and opacity; the
                 liveness properties include obstruction freedom,
                 livelock freedom, and wait freedom.\par

                 Our main contribution lies in the structure of the
                 proofs, which are largely automated and not restricted
                 to the STMs mentioned above. In a first step we show
                 that every STM that enjoys certain structural
                 properties either violates a safety or liveness
                 requirement on some program with two threads and two
                 shared variables, or satisfies the requirement on all
                 programs. In the second step we use a model checker to
                 prove the requirement for the STM applied to a most
                 general program with two threads and two variables. In
                 the safety case, the model checker constructs a
                 simulation relation between two carefully constructed
                 finite-state transition systems, one representing the
                 given STM applied to a most general program, and the
                 other representing a most liberal safe STM applied to
                 the same program. In the liveness case, the model
                 checker analyzes fairness conditions on the given STM
                 transition system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "model checking; transactional memories",
}

@Article{Auerbach:2008:FTG,
  author =       "Joshua Auerbach and David F. Bacon and Rachid
                 Guerraoui and Jesper Honig Spring and Jan Vitek",
  title =        "Flexible task graphs: a unified restricted thread
                 programming model for {Java}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "1--11",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375659",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The disadvantages of unconstrained shared-memory
                 multi-threading in Java, especially with regard to
                 latency and determinism in realtime systems, have given
                 rise to a variety of language extensions that place
                 restrictions on how threads allocate, share, and
                 communicate memory, leading to order-of-magnitude
                 reductions in latency and jitter. However, each model
                 makes different trade-offs with respect to
                 expressiveness, efficiency, enforcement, and latency,
                 and no one model is best for all applications.\par

                 In this paper we present Flexible Task Graphs
                 (Flexotasks), a single system that allows different
                 isolation policies and mechanisms to be combined in an
                 orthogonal manner, subsuming four previously proposed
                 models as well as making it possible to use new
                 combinations best suited to the needs of particular
                 applications. We evaluate our implementation on top of
                 the IBM Web-Sphere Real Time Java virtual machine using
                 both a microbenchmark and a 30 KLOC avionics collision
                 detector. We show that Flexotasks are capable of
                 executing periodic threads at 10 KHz with a standard
                 deviation of 1.2$\mu$s and that it achieves
                 significantly better performance than RTSJ's scoped
                 memory constructs while remaining impervious to
                 interference from global garbage collection.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Java Virtual Machine; memory management; ownership
                 types; real-time systems",
}

@Article{Lee:2008:EHS,
  author =       "Seong-Won Lee and Soo-Mook Moon and Seong-Moo Kim",
  title =        "Enhanced hot spot detection heuristics for embedded
                 {Java} just-in-time compilers",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "13--22",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375660",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Most Java just-in-time compilers (JITC) try to compile
                 only hot methods since the compilation overhead is part
                 of the running time. This requires precise and
                 efficient hot spot detection, which includes
                 distinguishing hot methods from cold methods, detecting
                 them as early as possible, and paying a small runtime
                 overhead for detection. A hot method could be
                 identified by measuring its running time during
                 interpretation since a long-running method is likely to
                 be a hot method. However, precise measurement of the
                 running time during execution is too expensive,
                 especially in embedded systems, so many counter-based
                 heuristics have been proposed to estimate it. The
                 Simple heuristic counts only method invocations without
                 any consideration of loops [1], while Sun's HotSpot
                 heuristic counts loop iterations as well, but does not
                 consider loop sizes or method sizes [2,14]. The static
                 analysis heuristic estimates the running time of a
                 method by statically analyzing loops or heavy-cost
                 bytecodes but does not measure their dynamic counts
                 [3]. Although the overhead of these heuristics is low,
                 they do not estimate the running time precisely, which
                 may lead to imprecise hot spot detection.\par

                 This paper proposes a new hot spot detection heuristic
                 which can estimate the running time more precisely than
                 others with a relatively low overhead. It dynamically
                 counts only important bytecodes interpreted, but with a
                 simple arithmetic calculation it can obtain the precise
                 count of all interpreted bytecodes. We also propose
                 employing a static analysis technique to predict those
                 hot methods which spend a huge execution time once
                 invoked. This static prediction can allow compiling
                 these methods at their first-invocation, complementing
                 the proposed dynamic estimation technique. We
                 implemented both, which led to a performance benefit of
                 10\% compared to the HotSpot heuristic.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hot spot detection; J2ME CDC; Java just-in-time
                 compilation; Java Virtual Machine; Sun's Hotspot
                 heuristic",
}

@Article{Badea:2008:IJS,
  author =       "Carmen Badea and Alexandru Nicolau and Alexander V.
                 Veidenbaum",
  title =        "Impact of {JVM} superoperators on energy consumption
                 in resource-constrained embedded systems",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "23--30",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379023.1375661",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Energy consumption is one of the most important issues
                 in resource-constrained embedded systems. Many such
                 systems run Java-based applications due to Java's
                 architecture-independent format (bytecode). Standard
                 techniques for executing bytecode programs, e.g.
                 interpretation or just-in-time compilation, have
                 performance or memory issues that make them unsuitable
                 for resource-constrained embedded systems.\par

                 A superoperator-extended, lightweight Java Virtual
                 Machine (JVM) can be used in resource-constrained
                 embedded systems to improve performance and reduce
                 memory consumption. This paper shows that such a JVM
                 also significantly reduces energy consumption. This is
                 due primarily to a considerable reduction in the number
                 of memory accesses and thus in energy consumption in
                 the instruction and data TLBs and caches and, in most
                 cases, in DRAM energy consumption. Since the fraction
                 of processor energy dissipated in these units is
                 approximately 60\%, the energy savings achieved are
                 significant.\par

                 The paper evaluates the number of load, store, and
                 computational instructions eliminated by the use of
                 proposed superoperators as compared to a simple
                 interpreter on a set of embedded benchmarks. Using
                 cache and DRAM per access energy we estimate the total
                 processor/DRAM energy saved by using our JVM. Our
                 results show that with 32KB caches the reduction in
                 energy consumption ranges from 40\% to 60\% of the
                 overall processor, plus DRAM energy. Even higher
                 savings may be achieved with smaller caches and
                 increased access to DRAM as DRAM access energy is
                 fairly high.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded systems; energy estimation; Java Virtual
                 Machine; profile-guided optimization; superoperators",
}

@Article{Ebner:2008:GIS,
  author =       "Dietmar Ebner and Florian Brandner and Bernhard Scholz
                 and Andreas Krall and Peter Wiedermann and Albrecht
                 Kadlec",
  title =        "Generalized instruction selection using {\em
                 {SSA\/}}-graphs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "31--40",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375663",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Instruction selection is a well-studied compiler phase
                 that translates the compiler's intermediate
                 representation of programs to a sequence of
                 target-dependent machine instructions optimizing for
                 various compiler objectives (e.g. speed and space).
                 Most existing instruction selection techniques are
                 limited to the scope of a single statement or a basic
                 block and cannot cope with irregular instruction sets
                 that are frequently found in embedded systems.\par

                 We consider an optimal technique for instruction
                 selection that uses Static Single Assignment (SSA)
                 graphs as an intermediate representation of programs
                 and employs the Partitioned Boolean Quadratic Problem
                 (PBQP) for finding an optimal instruction selection.
                 While existing approaches are limited to instruction
                 patterns that can be expressed in a simple tree
                 structure, we consider complex patterns producing
                 multiple results at the same time including pre/post
                 increment addressing modes, div-mod instructions, and
                 SIMD extensions frequently found in embedded systems.
                 Although both instruction selection on SSA-graphs and
                 PBQP are known to be NP-complete, the problem can be
                 solved efficiently --- even for very large
                 instances.\par

                 Our approach has been implemented in LLVM for an
                 embedded ARMv5 architecture. Extensive experiments show
                 speedups of up to 57\% on typical DSP kernels and up to
                 10\% on SPECINT 2000 and MiBench benchmarks. All of the
                 test programs could be compiled within less than half a
                 minute using a heuristic PBQP solver that solves
                 99.83\% of all instances optimally.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code generation; compiler; instruction selection;
                 PBQP",
}

@Article{Cho:2008:CDD,
  author =       "Doosan Cho and Sudeep Pasricha and Ilya Issenin and
                 Nikil Dutt and Yunheung Paek and SunJun Ko",
  title =        "Compiler driven data layout optimization for
                 regular\slash irregular array access patterns",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "41--50",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379023.1375664",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Embedded multimedia applications consist of regular
                 and irregular memory access patterns. Particularly,
                 irregular pattern are not amenable to static analysis
                 for extraction of access patterns, and thus prevent
                 efficient use of a Scratch Pad Memory (SPM) hierarchy
                 for performance and energy improvements. To resolve
                 this, we present a compiler strategy to optimize data
                 layout in regular/irregular multimedia applications
                 running on embedded multiprocessor environments. The
                 goal is to maximize the amount of accesses to the SPM
                 over the entire system which leads to a reduction in
                 the energy consumption of the system. This is achieved
                 by optimizing data placement of application-wide reused
                 data so that it resides in the SPMs of processing
                 elements. Specifically, our scheme is based on a
                 profiling that generates a memory access footprint. The
                 memory access footprint is used to identify data
                 elements with fine granularity that can profitably be
                 placed in the SPMs to maximize performance and energy
                 gains. We present a heuristic approach that efficiently
                 exploits the SPMs using memory access footprint. Our
                 experimental results show that our approach is able to
                 reduce energy consumption by 30\% and improve
                 performance by 18\% over cache based memory subsystems
                 for various multimedia applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler; data placement; energy consumption; memory
                 hierarchy",
}

@Article{Reineke:2008:RCA,
  author =       "Jan Reineke and Daniel Grund",
  title =        "Relative competitive analysis of cache replacement
                 policies",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "51--60",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375665",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Caches are commonly employed to hide the latency gap
                 between memory and the CPU by exploiting locality in
                 memory accesses. On today's architectures a cache miss
                 may cost several hundred CPU cycles.\par

                 In order to fulfill stringent performance requirements,
                 caches are now also used in hard real-time systems. In
                 such systems, upper and sometimes also lower bounds on
                 the execution times of a task have to be computed. To
                 obtain tight bounds, timing analyses must take into
                 account the cache architecture. However, developing
                 cache analyses -- analyses that determine whether a
                 memory access is a hit or a miss -- is a difficult
                 problem for some cache architectures.\par

                 In this paper, we present a tool to automatically
                 compute relative competitive ratios for a large class
                 of replacement policies, including LRU, FIFO, and PLRU.
                 Relative competitive ratios bound the performance of
                 one policy relative to the performance of another
                 policy.\par

                 These performance relations allow us to use
                 cache-performance predictions for one policy to compute
                 predictions for another, including policies that could
                 previously not be dealt with.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cache performance; predictability; replacement policy;
                 wcet analysis; worst-case execution time",
}

@Article{Anand:2008:RSS,
  author =       "Madhukar Anand and Insup Lee",
  title =        "Robust and sustainable schedulability analysis of
                 embedded software",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "61--70",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375666",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "For real-time systems, most of the analysis involves
                 efficient or exact schedulability checking. While this
                 is important, analysis is often based on the assumption
                 that the task parameters such as execution requirements
                 and inter-arrival times between jobs are known exactly.
                 In most cases, however, only a worst-case estimate of
                 these quantities is available at the time of analysis.
                 It is therefore imperative that schedulability analysis
                 hold for better parameter values (Sustainable
                 Analysis). On the other hand, if the task or system
                 parameters turn out to be worse off, then the analysis
                 should tolerate some deterioration (Robust Analysis).
                 Robust analysis is especially important, because the
                 implication of task schedulability is often weakened in
                 the presence of optimizations that are performed on its
                 code, or dynamic system parameters.\par

                 In this work, we define and address sustainability and
                 robustness questions for analysis of embedded real-time
                 software that is modeled by conditional real-time
                 tasks. Specifically, we show that, while the analysis
                 is sustainable for changes in the task such as lower
                 job execution times and increased relative deadlines,
                 it is not the case for code changes such as job
                 splitting and reordering. We discuss the impact of
                 these results in the context of common compiler
                 optimizations, and then develop robust schedulability
                 techniques for operations where the original analysis
                 is not sustainable.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "robust schedulability analysis; schedulability
                 analysis; sustainable schedulability analysis",
}

@Article{Homayoun:2008:IPR,
  author =       "Houman Homayoun and Sudeep Pasricha and Mohammad
                 Makhzan and Alex Veidenbaum",
  title =        "Improving performance and reducing energy-delay with
                 adaptive resource resizing for out-of-order embedded
                 processors",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "71--78",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375668",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "While Ultra Deep Submicron (UDSM) CMOS scaling gives
                 embedded processor designers ample silicon budget to
                 increase processor resources to improve performance,
                 restrictions with the power budget and practically
                 achievable operating clock frequencies act as limiting
                 factors. In this paper we show how just increasing
                 processor resource size is not effective in improving
                 performance due to constraints on achievable operating
                 clock frequency. In response we propose two adaptive
                 resource resizing techniques L2RS and L2ML1RS that
                 adaptively resize resources by exploiting cache misses.
                 Our results show a significant performance improvement
                 and overall energy-delay reduction of on average 9.2\%
                 (upto 34\%) and 3.8\% respectively across SPEC2K
                 benchmarks for L2ML1RS. Applying L2RS resulted in 6.8\%
                 performance improvement (upto 24\%) and 4.6\%
                 energy-delay reduction. We also present the required
                 circuit modification to apply these techniques which
                 shown to be minimal.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "architecture; energy-delay; out-of-order embedded
                 processor; performance; resource resizing",
}

@Article{Rajopadhye:2008:DSI,
  author =       "Sanjay Rajopadhye and Gautam Gupta and
                 Lakshminarayanan Renganarayanan",
  title =        "A domain specific interconnect for reconfigurable
                 computing",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "79--88",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379023.1375669",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Affine Control Loops (ACLs) occur frequently in data-
                 and compute intensive applications. Implementing ACLs
                 directly on dedicated hardware has the potential for
                 spectacular performance improvement in area, time and
                 energy. An important challenge for such direct hardware
                 compilation of ACLs is the interconnection between the
                 different processing elements, which may be non-local
                 as well as dynamic. We propose a generic,
                 reconfigurable interconnection fabric which can realize
                 the data-path of any ACL and be dynamically
                 reconfigured in constant time. We have applied for a
                 patent for this technology.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "coarse grain reconfiguration; FPGA; silicon
                 compilation",
}

@Article{Lee:2008:FFC,
  author =       "Jaejin Lee and Junghyun Kim and Choonki Jang and
                 Seungkyun Kim and Bernhard Egger and Kwangsub Kim and
                 SangYong Han",
  title =        "{FaCSim}: a fast and cycle-accurate architecture
                 simulator for embedded systems",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "89--100",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375670",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "There have been strong demands for a fast and
                 cycle-accurate virtual platforms in the embedded
                 systems area where developers can do meaningful
                 software development including performance debugging in
                 the context of the entire platform. In this paper, we
                 describe the design and implementation of a fast and
                 cycle-accurate architecture simulator called FaCSim as
                 a first step towards such a virtual platform. FacSim
                 accurately models the ARM9E-S processor core and
                 ARM926EJ-S processor's memory subsystem. It accurately
                 simulates exceptions and interrupts to enable
                 whole-system simulation including the OS. Since it is
                 implemented in a modular manner in C++, it can be
                 easily extended with other system components by
                 subclassing or adding new classes. FaCSim is based on
                 an interpretive simulation technique to provide
                 flexibility, yet achieving high speed. It enables fast
                 cycle-accurate architecture simulation by means of
                 three mechanisms. First, it computes elapsed cycles in
                 each pipeline stage as a chunk and incrementally adds
                 it up to advance the core clock instead of performing
                 cycle-by-cycle simulation. Second, it uses a
                 basic-block cache that caches decoded instructions at
                 the basic-block level. Finally, it is parallelized to
                 exploit multicore systems that are available everywhere
                 these days. Using 21 applications from the EEMBC
                 benchmark suite, FaCSim's accuracy is validated against
                 the ARM926EJ-S development board from ARM, and is
                 accurate in a $\pm$7\% error margin. Due to basic-block
                 level caching and parallelization, FaCSim is, on
                 average, more than three times faster than ARMulator
                 and more than six times faster than SimpleScalar.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "architecture simulator; cycle-accurate simulation;
                 full-system simulation; simulator parallelization;
                 virtual prototyping",
}

@Article{Delaval:2008:TSA,
  author =       "Gwena{\"e}l Delaval and Alain Girault and Marc
                 Pouzet",
  title =        "A type system for the automatic distribution of
                 higher-order synchronous dataflow programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "101--110",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375672",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We address the design of distributed systems with
                 synchronous dataflow programming languages. As modular
                 design entails handling both architectural and
                 functional modularity, our first contribution is to
                 extend an existing synchronous dataflow programming
                 language with primitives allowing the description of a
                 distributed architecture and the localization of some
                 expressions onto some processors. We also present a
                 distributed semantics to formalize the distributed
                 execution of synchronous programs. Our second
                 contribution is to provide a type system, in order to
                 infer the localization of non-annotated values by means
                 of type inference and to ensure, at compilation time,
                 the consistency of the distribution. Our third
                 contribution is to provide a type-directed projection
                 operation to obtain automatically, from a centralized
                 typed program, the local program to be executed by each
                 computing resource. The type system as well as the
                 automatic distribution mechanism has been fully
                 implemented in the compiler of an existing synchronous
                 data-flow programming language.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distribution; functional programming; synchronous
                 programming; type systems",
}

@Article{Cohen:2008:EEP,
  author =       "Norman H. Cohen and Karl Trygve Kalleberg",
  title =        "{EventScript}: an event-processing language based on
                 regular expressions with actions",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "111--120",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375673",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "EventScript is a simple but powerful language for
                 programming reactive processes. A stream of incoming
                 events is matched against a regular expression. Actions
                 embedded within the regular expression are executed in
                 response to the matching of patterns of events. These
                 actions include assigning computed values to variables
                 and emitting output events. The definition of
                 EventScript presented a number of novel and interesting
                 language-design choices. EventScript has an efficient
                 implementation, and has been used in a development
                 environment for complex event-based applications. We
                 have used EventScript to program both small examples
                 and large industrial applications. Readers of
                 EventScript programs find them easy to understand, and
                 are comfortable with the familiar model of matching
                 regular expressions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "actuators; event processing; reactive programs;
                 regular expressions; sensors",
}

@Article{Biernacki:2008:CDM,
  author =       "Dariusz Biernacki and Jean-Louis Cola{\c{c}}o and
                 Gregoire Hamon and Marc Pouzet",
  title =        "Clock-directed modular code generation for synchronous
                 data-flow languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "121--130",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375674",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The compilation of synchronous block diagrams into
                 sequential imperative code has been addressed in the
                 early eighties and can now be considered as folklore.
                 However, separate, or modular, code generation, though
                 largely used in existing compilers and particularly in
                 industrial ones, has never been precisely described or
                 entirely formalized. Such a formalization is now
                 fundamental in the long-term goal to develop a
                 mathematically certified compiler for a synchronous
                 language as well as in simplifying existing
                 implementations.\par

                 This article presents in full detail the modular
                 compilation of synchronous block diagrams into
                 sequential code. We consider a first-order functional
                 language reminiscent of LUSTRE, which it extends with a
                 general $n$-ary merge operator, a reset construct, and
                 a richer notion of clocks. The clocks are used to
                 express activation of computations in the program and
                 are specifically taken into account during the
                 compilation process to produce efficient imperative
                 code. We introduce a generic machine-based intermediate
                 language to represent transition functions, and we
                 present a concise clock-directed translation from the
                 source to this intermediate language. We address the
                 target code generation phase by describing a
                 translation from the intermediate language to JAVA and
                 C.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilation; real-time systems; semantics; synchronous
                 languages; type systems",
}

@Article{Newton:2008:DEC,
  author =       "Ryan R. Newton and Lewis D. Girod and Michael B. Craig
                 and Samuel R. Madden and John Gregory Morrisett",
  title =        "Design and evaluation of a compiler for embedded
                 stream programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "131--140",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375675",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Applications that combine live data streams with
                 embedded, parallel, and distributed processing are
                 becoming more commonplace. WaveScript is a
                 domain-specific language that brings high-level,
                 type-safe, garbage-collected programming to these
                 domains. This is made possible by three primary
                 implementation techniques, each of which leverages
                 characteristics of the streaming domain. First, we
                 employ a novel evaluation strategy that uses a
                 combination of interpretation and reification to
                 partially evaluate programs into stream dataflow
                 graphs. Second, we use profile-driven compilation to
                 enable many optimizations that are normally only
                 available in the synchronous (rather than asynchronous)
                 dataflow domain. Finally, we incorporate an extensible
                 system for rewrite rules to capture algebraic
                 properties in specific domains (such as signal
                 processing).\par

                 We have used our language to build and deploy a sensor
                 network for the acoustic localization of wild animals,
                 in particular, the Yellow-Bellied marmot. We evaluate
                 WaveScript's performance on this application, showing
                 that it yields good performance on both embedded and
                 desktop-class machines, including distributed execution
                 and substantial parallel speedups. Our language allowed
                 us to implement the application rapidly, while
                 outperforming a previous C implementation by over 35\%,
                 using fewer than half the lines of code. We evaluate
                 the contribution of our optimizations to this
                 success.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "sensor networks; stream processing language",
}

@Article{Bachir:2008:PPP,
  author =       "Mounira Bachir and Sid-Ahmed-Ali Touati and Albert
                 Cohen",
  title =        "Post-pass periodic register allocation to minimise
                 loop unrolling degree",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "141--150",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375677",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper solves an open problem regarding loop
                 unrolling after periodic register allocation. Although
                 software pipelining is a powerful technique to extract
                 fine-grain parallelism, it generates reuse circuits
                 spanning multiple loop iterations. These circuits
                 require periodic register allocation, which in turn
                 yield a code generation challenge, generally addressed
                 through: (1) hardware support --- rotating register
                 files --- deemed too expensive for embedded processors,
                 (2) insertion of register moves with a high risk of
                 reducing the computation throughput --- initiation
                 interval (II) --- of software pipelining, and (3)
                 post-pass loop unrolling that does not compromise
                 throughput but often leads to unpractical code growth.
                 The latter approach relies on the proof that MAXLIVE
                 registers are sufficient for periodic register
                 allocation (2; 3; 5); yet the only heuristic to control
                 the amount of post-pass loop unrolling does not achieve
                 this bound and leads to undesired register spills (4;
                 7).\par

                 We propose a periodic register allocation technique
                 allowing a software-only code generation that does not
                 trade the optimality of the II for compactness of the
                 generated code. Our idea is based on using the
                 remaining registers: calling R$_{arch}$ the number of
                 architectural registers of the target processor, then
                 the number of remaining registers that can be used for
                 minimising the unrolling degree is equal to R$_{arch}$
                 -MAXLIVE.\par

                 We provide a complete formalisation of the problem and
                 algorithm, followed by extensive experiments. We
                 achieve practical loop unrolling degrees in most cases
                 --- with no increase of the II --- while
                 state-of-the-art techniques would either induce
                 register spilling, degrade the II or lead to
                 unacceptable code growth.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded code optimisation; loop unrolling; periodic
                 register allocation; software pipelining",
}

@Article{DeSutter:2008:PRB,
  author =       "Bjorn {De Sutter} and Paul Coene and Tom {Vander Aa}
                 and Bingfeng Mei",
  title =        "Placement-and-routing-based register allocation for
                 coarse-grained reconfigurable arrays",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "151--160",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375678",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "DSP architectures often feature multiple register
                 files with sparse connections to a large set of ALUs.
                 For such DSPs, traditional register allocation
                 algorithms suffer from a lot of problems, including a
                 lack of retargetability and phase-ordering problems.
                 This paper studies alternative register allocation
                 techniques based on placement and routing. Different
                 register file models are studied and evaluated on a
                 state-of-the art coarse-grained reconfigurable array
                 DSP, together with a new post-pass register allocator
                 for rotating register files.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "coarse-grained; placement and routing; reconfigurable
                 arrays; register allocation",
}

@Article{Wang:2008:OSA,
  author =       "Li Wang and Xuejun Yang and Jingling Xue and Yu Deng
                 and Xiaobo Yan and Tao Tang and Quan Hoang Nguyen",
  title =        "Optimizing scientific application loops on stream
                 processors",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "161--170",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1379023.1375679",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes a graph coloring compiler
                 framework to allocate on-chip SRF(Stream Register File)
                 storage for optimizing scientific applications on
                 stream processors. Our framework consists of first
                 applying enabling optimizations such as loop unrolling
                 to expose stream reuse and opportunities for maximizing
                 parallelism, i.e., overlapping kernel execution and
                 memory transfers. Then the three SRF management tasks
                 are solved in a unified manner via graph coloring: (1)
                 placing streams in the SRF, (2) exploiting stream use,
                 and (3) maximizing parallelism. We evaluate the
                 performance of our compiler framework by actually
                 running nine representative scientific computing
                 kernels on our FT64 stream processor. Our preliminary
                 results show that compiler management achieves an
                 average speedup of 2.3x compared to First-Fit
                 allocation. In comparison with the performance results
                 obtained from running these benchmarks on Itanium 2, an
                 average speedup of 2.1x is observed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data reuse; graph coloring; loop optimization;
                 prefetching; software-managed cache; stream processor;
                 streaming",
}

@Article{McKinley:2008:IPQ,
  author =       "Kathryn S. McKinley",
  title =        "Improving publication quality by reducing bias with
                 double-blind reviewing and author response",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "8",
  pages =        "5--9",
  month =        aug,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1416216.1416218",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Oct 6 14:59:58 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  articleno =    "5--9",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jones:2008:ISM,
  author =       "Richard Jones and Steve Blackburn",
  title =        "{International Symposium of Memory Management (ISMM
                 2008)}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "8",
  pages =        "12--14",
  month =        aug,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1416216.1416220",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Oct 6 14:59:58 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The ACM SIGPLAN International Symposium on Memory
                 Management (ISMM) is a premier forum for research in
                 the management of dynamically allocated memory. We
                 interpret this remit widely: areas of interest include
                 but are not limited to explicit storage allocation and
                 deallocation; garbage collection algorithms and
                 implementations; compiler analyses to aid memory
                 management; interactions with languages, operating
                 systems and hardware (especially the memory system);
                 memory management related tools; and empirical studies
                 of allocation and referencing behavior in programs that
                 make significant use of dynamic memory.",
  acknowledgement = ack-nhfb,
  articleno =    "12--14",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bailey:2008:IPA,
  author =       "Mark W. Bailey",
  title =        "{ISMM 2008} paper abstracts",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "8",
  pages =        "15--19",
  month =        aug,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1416216.1416221",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Oct 6 14:59:58 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  articleno =    "15--19",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lampson:2008:LSE,
  author =       "Butler W. Lampson",
  title =        "Lazy and speculative execution in computer systems",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "1--2",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411205",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The distinction between lazy and eager (or strict)
                 evaluation has been studied in programming languages
                 since Algol 60's call by name, as a way to avoid
                 unnecessary work and to deal gracefully with infinite
                 structures such as streams. It is deeply integrated in
                 some languages, notably Haskell, and can be simulated
                 in many languages by wrapping a lazy expression in a
                 lambda. Less well studied is the role of laziness, and
                 its opposite, speculation, in computer systems, both
                 hardware and software. A wide range of techniques can
                 be understood as applications of these two ideas.
                 Laziness is the idea behind:\par

                 Redo logging for maintaining persistent state and
                 replicated state machines: the log represents the
                 current state, but it is evaluated only after a failure
                 or to bring a replica online.\par

                 Copy-on-write schemes for maintaining multiple versions
                 of a large, slowly changing state, usually in a
                 database or file system.\par

                 Write buffers and writeback caches in memory and file
                 systems, which are lazy about updating the main
                 store.\par

                 Relaxed memory models and eventual consistency
                 replication schemes (which require weakening the
                 spec).\par

                 Clipping regions and expose events in graphics and
                 window systems.\par

                 Carry-save adders, which defer propagating carries
                 until a clean result is needed.\par

                 'Infinity' and 'Not a number' results of floating point
                 operations.\par

                 Futures (in programming) and out of order execution (in
                 CPUs), which launch a computation but are lazy about
                 consuming the result. Dataflow is a
                 generalization.\par

                 'Formatting operators' in text editors, which apply
                 properties such as 'italic' to large regions of text by
                 attaching a sequence of functions that compute the
                 properties; the functions are not evaluated until the
                 text needs to be displayed.\par

                 Stream processing in database queries, Unix pipes,
                 etc., which conceptually applies operators to unbounded
                 sequences of data, but rearranges the computation when
                 possible to apply a sequence of operators to each data
                 item in turn. Speculation is the idea
                 behind:\par

                 Optimistic concurrency control in databases, and more
                 recently in transactional memory\par

                 Prefetching in memory and file systems.\par

                 Branch prediction, and speculative execution in general
                 in modern CPUs.\par

                 Data speculation, which works especially well when the
                 data is cached but might be updated by a concurrent
                 process. This is a form of optimistic concurrency
                 control.\par

                 Exponential backoff schemes for scheduling a resource,
                 most notably in LANs such as WiFi or classical
                 Ethernet.\par

                 All forms of caching, which speculate that it's worth
                 filling up some memory with data in the hope that it
                 will be used again. In both cases it is usual to insist
                 that the laziness or speculation is strictly a matter
                 of scheduling that doesn't affect the result of a
                 computation but only improves the performance.
                 Sometimes, however, the spec is weakened, for example
                 in eventual consistency. I will discuss many of these
                 examples in detail and examine what they have in
                 common, how they differ, and what factors govern the
                 effectiveness of laziness and speculation in computer
                 systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "lazy evaluation",
}

@Article{Cheney:2008:FFU,
  author =       "James Cheney",
  title =        "{FLUX}: functional updates for {XML}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "3--14",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411209",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "XML database query languages have been studied
                 extensively, but XML database updates have received
                 relatively little attention, and pose many challenges
                 to language design. We are developing an XML update
                 language called FLUX, which stands for FunctionaL
                 Updates for XML, drawing upon ideas from functional
                 programming languages. In prior work, we have
                 introduced a core language for FLUX with a clear
                 operational semantics and a sound, decidable static
                 type system based on regular expression types.\par

                 Our initial proposal had several limitations. First, it
                 lacked support for recursive types or update
                 procedures. Second, although a high-level source
                 language can easily be translated to the core language,
                 it is difficult to propagate meaningful type errors
                 from the core language back to the source. Third,
                 certain updates are wellformed yet contain {\em path
                 errors}, or 'dead' subexpressions which never do any
                 useful work. It would be useful to detect path errors,
                 since they often represent errors or optimization
                 opportunities.\par

                 In this paper, we address all three limitations.
                 Specifically, we present an improved, sound type system
                 that handles recursion. We also formalize a source
                 update language and give a translation to the core
                 language that {\em preserves\/} and {\em reflects\/}
                 typability. We also develop a {\em path-error
                 analysis\/} (a form of dead-code analysis) for
                 updates.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "static analysis; type systems; update languages; XML",
}

@Article{Castagna:2008:TIX,
  author =       "Giuseppe Castagna and Kim Nguyen",
  title =        "Typed iterators for {XML}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "15--26",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411210",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "XML transformations are very sensitive to types: XML
                 types describe the tags and attributes of XML elements
                 as well as the number, kind, and order of their
                 sub-elements. Therefore, operations, even simple ones,
                 that modify these features may affect the types of
                 documents. Operations on XML documents are performed by
                 iterators that, to be useful, need to be typed by a
                 kind of polymorphism that goes beyond what currently
                 exists. For this reason these {\em iterators\/} are not
                 programmed but, rather, hard-coded in the languages.
                 However, this approach soon reaches its limits, as the
                 hard-coded iterators cannot cover fairly standard usage
                 scenarios.\par

                 As a solution to this problem we propose a generic
                 language to define iterators for XML data. This
                 language can either be used as a compilation target
                 (e.g., for XPATH) or it can be grafted on any
                 statically typed host programming language (as long as
                 this has product types) to endow it with XML processing
                 capabilities. We show that our language mostly offers
                 the required degree of polymorphism, study its formal
                 properties, and show its expressiveness and practical
                 impact by providing several usage examples and
                 encodings.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "iterators; polymorphism; subtyping; XML",
}

@Article{Jia:2008:APL,
  author =       "Limin Jia and Jeffrey A. Vaughan and Karl Mazurak and
                 Jianzhou Zhao and Luke Zarko and Joseph Schorr and
                 Steve Zdancewic",
  title =        "{AURA}: a programming language for authorization and
                 audit",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "27--38",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411212",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents AURA, a programming language for
                 access control that treats ordinary programming
                 constructs (e.g., integers and recursive functions) and
                 authorization logic constructs (e.g., principals and
                 access control policies) in a uniform way. AURA is
                 based on polymorphic DCC and uses dependent types to
                 permit assertions that refer directly to AURA values
                 while keeping computation out of the assertion level to
                 ensure tractability. The main technical results of this
                 paper include fully mechanically verified proofs of the
                 decidability and soundness for AURA's type system, and
                 a prototype typechecker and interpreter.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "access control; audit; authorization logic; type
                 systems",
}

@Article{Oury:2008:PP,
  author =       "Nicolas Oury and Wouter Swierstra",
  title =        "The power of {Pi}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "39--50",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411213",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper exhibits the power of programming with
                 dependent types by dint of embedding three
                 domain-specific languages: Cryptol, a language for
                 cryptographic protocols; a small data description
                 language; and relational algebra. Each example
                 demonstrates particular design patterns inherent to
                 dependently-typed programming. Documenting these
                 techniques paves the way for further research in
                 domain-specific embedded type systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dependent types; domain-specific embedded languages",
}

@Article{Schrijvers:2008:TCO,
  author =       "Tom Schrijvers and Simon Peyton Jones and Manuel
                 Chakravarty and Martin Sulzmann",
  title =        "Type checking with open type functions",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "51--62",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411215",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We report on an extension of Haskell with open
                 type-level functions and equality constraints that
                 unifies earlier work on GADTs, functional dependencies,
                 and associated types. The contribution of the paper is
                 that we identify and characterise the key technical
                 challenge of {\em entailment checking\/}; and we give a
                 novel, decidable, sound, and complete algorithm to
                 solve it, together with some practically-important
                 variants. Our system is implemented in GHC, and is
                 already in active use.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Haskell; type checking; type families; type
                 functions",
}

@Article{Remy:2008:MMG,
  author =       "Didier R{\'e}my and Boris Yakobowski",
  title =        "From {ML} to {ML$^F$}: graphic type constraints with
                 efficient type inference",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "63--74",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411216",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "ML$^F$ is a type system that seamlessly merges
                 ML-style type inference with System-F polymorphism. We
                 propose a system of graphic (type) constraints that can
                 be used to perform type inference in both ML or ML$^F$.
                 We show that this constraint system is a small
                 extension of the formalism of graphic types, originally
                 introduced to represent ML$^F$ types. We give a few
                 semantic preserving transformations on constraints and
                 propose a strategy for applying them to solve
                 constraints. We show that the resulting algorithm has
                 optimal complexity for ML$^F$ type inference, and argue
                 that, as for ML, this complexity is linear under
                 reasonable assumptions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binders; graphs; ML; ML F; system F; type constraints;
                 type generalization; type inference; type
                 instantiation; types; unification",
}

@Article{Guillemette:2008:TPC,
  author =       "Louis-Julien Guillemette and Stefan Monnier",
  title =        "A type-preserving compiler in {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "75--86",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411218",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "There has been a lot of interest of late for
                 programming languages that incorporate features from
                 dependent type systems and proof assistants, in order
                 to capture important invariants of the program in the
                 types. This allows type-based program verification and
                 is a promising compromise between plain old types and
                 full blown Hoare logic proofs. The introduction of
                 GADTs in GHC (and more recently type families) made
                 such dependent typing available in an industry-quality
                 implementation, making it possible to consider its use
                 in large scale programs.\par

                 We have undertaken the construction of a complete
                 compiler for System {\em F}, whose main property is
                 that the GHC type checker verifies mechanically that
                 each phase of the compiler properly preserves types.
                 Our particular focus is on 'types rather than proofs':
                 reasonably few annotations that do not overwhelm the
                 actual code.\par

                 We believe it should be possible to write such a
                 type-preserving compiler with an amount of extra code
                 comparable to what is necessary for typical typed
                 intermediate languages, but with the advantage of
                 static checking. We will show in this paper the
                 remaining hurdles to reach this goal.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilation; de Bruijn; higher-order abstract syntax;
                 typed assembly language",
}

@Article{Jones:2008:ERP,
  author =       "Mark P. Jones",
  title =        "Experience report: playing the {DSL} card",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "87--90",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411219",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes our experience using a functional
                 language, Haskell, to build an embedded,
                 domain-specific language (DSL) for component
                 configuration in large-scale, real-time, embedded
                 systems. Prior to the introduction of the DSL,
                 engineers would describe the steps needed to configure
                 a particular system in a handwritten XML document. In
                 this paper, we outline the application domain, give a
                 brief overview of the DSL that we developed, and
                 provide concrete data to demonstrate its effectiveness.
                 In particular, we show that the DSL has several
                 significant benefits over the original, XML-based
                 approach including reduced code size, increased
                 modularity and scalability, and detection and
                 prevention of common defects. For example, using the
                 DSL, we were able to produce clear and intuitive
                 descriptions of component configurations that were
                 sometimes less than 1/30 of the size of the original
                 XML.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "component configuration; domain-specific languages;
                 functional programming; Haskell; Timber",
}

@Article{Henglein:2008:GDS,
  author =       "Fritz Henglein",
  title =        "Generic discrimination: sorting and partitioning
                 unshared data in linear time",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "91--102",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411220",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We introduce the notion of {\em discrimination\/} as a
                 generalization of both sorting and partitioning and
                 show that worst-case linear-time discrimination
                 functions (discriminators) can be defined {\em
                 generically}, by (co-)induction on an expressive
                 language of {\em order denotations}. The generic
                 definition yields discriminators that generalize both
                 distributive sorting and multiset discrimination. The
                 generic discriminator can be coded compactly using list
                 comprehensions, with order denotations specified using
                 Generalized Algebraic Data Types (GADTs). A GADT-free
                 combinator formulation of discriminators is also
                 given.\par

                 We give some examples of the uses of discriminators,
                 including a new most-significant-digit lexicographic
                 sorting algorithm.\par

                 Discriminators generalize binary comparison functions:
                 They operate on $n$ arguments at a time, but do not
                 expose more information than the underlying
                 equivalence, respectively ordering relation on the
                 arguments. We argue that primitive types with equality
                 (such as references in ML) and ordered types (such as
                 the machine integer type), should expose their
                 equality, respectively standard ordering relation, as
                 discriminators: Having {\em only\/} a binary equality
                 test on a type requires $\Theta$($n$$^2$) time to find
                 all the occurrences of an element in a list of length
                 {\em n}, for each element in the list, even if the
                 equality test takes only constant time. A discriminator
                 accomplishes this in linear time. Likewise, having only
                 a (constant-time) comparison function requires
                 $\Theta$($n$ log $n$) time to sort a list of $n$
                 elements. A discriminator can do this in linear time.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "discrimination; discriminator; equivalence;
                 functional; generic; multiset discrimination; order;
                 partitioning; sorting; total preorder",
}

@Article{Effinger-Dean:2008:TEM,
  author =       "Laura Effinger-Dean and Matthew Kehrt and Dan
                 Grossman",
  title =        "Transactional events for {ML}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "103--114",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411222",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transactional events (TE) are an approach to
                 concurrent programming that enriches the first-class
                 synchronous message-passing of Concurrent ML (CML) with
                 a combinator that allows multiple messages to be passed
                 as part of one all-or-nothing synchronization. Donnelly
                 and Fluet (2006) designed and implemented TE as a
                 Haskell library and demonstrated that it enables
                 elegant solutions to programming patterns that are
                 awkward or impossible in CML. However, both the
                 definition and the implementation of TE relied
                 fundamentally on the code in a synchronization not
                 using mutable memory, an unreasonable assumption for
                 mostly functional languages like ML where functional
                 interfaces may have impure implementations.\par

                 We present a definition and implementation of TE that
                 supports ML-style references and nested
                 synchronizations, both of which were previously
                 unnecessary due to Haskell's more restrictive type
                 system. As in prior work, we have a high-level
                 semantics that makes nondeterministic choices such that
                 synchronizations succeed whenever possible and a
                 low-level semantics that uses search to implement the
                 high-level semantics soundly and completely. The key
                 design trade-off in the semantics is to allow updates
                 to mutable memory without requiring the implementation
                 to consider all possible thread interleavings. Our
                 solution uses first-class heaps and allows
                 interleavings only when a message is sent or received.
                 We have used Coq to prove the high- and low-level
                 semantics equivalent.\par

                 We have implemented our approach by modifying the
                 Objective Caml run-time system. By modifying the
                 run-time system, rather than relying solely on a
                 library, we can eliminate the potential for
                 nonterminating computations within unsuccessful
                 synchronizations to run forever.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; synchronous message passing;
                 transactional events",
}

@Article{Convey:2008:ERE,
  author =       "Christian Convey and Andrew Fredricks and Christopher
                 Gagner and Douglas Maxwell and Lutz Hamel",
  title =        "Experience report: {Erlang} in acoustic ray tracing",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "115--118",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411223",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We investigated the relative merits of C++ and Erlang
                 in the implementation of a parallel acoustic ray
                 tracing algorithm for the U.S. Navy. We found a much
                 smaller learning curve and better debugging environment
                 for parallel Erlang than for pthreads-based C++
                 programming. Our C++ implementation outperformed the
                 Erlang program by at least 12x. Attempts to use Erlang
                 on the IBM Cell BE microprocessor were frustrated by
                 Erlang's memory footprint.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "acoustic ray tracing; C++; Erlang",
}

@Article{Fluet:2008:ITP,
  author =       "Matthew Fluet and Mike Rainey and John Reppy and Adam
                 Shaw",
  title =        "Implicitly-threaded parallelism in {Manticore}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "119--130",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411224",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The increasing availability of commodity multicore
                 processors is making parallel computing available to
                 the masses. Traditional parallel languages are largely
                 intended for large-scale scientific computing and tend
                 not to be well-suited to programming the applications
                 one typically finds on a desktop system. Thus we need
                 new parallel-language designs that address a broader
                 spectrum of applications. In this paper, we present
                 Manticore, a language for building parallel
                 applications on commodity multicore hardware including
                 a diverse collection of parallel constructs for
                 different granularities of work. We focus on the
                 implicitly-threaded parallel constructs in our
                 high-level functional language. We concentrate on those
                 elements that distinguish our design from related ones,
                 namely, a novel parallel binding form, a
                 nondeterministic parallel case form, and exceptions in
                 the presence of data parallelism. These features
                 differentiate the present work from related work on
                 functional data parallel language designs, which has
                 focused largely on parallel problems with regular
                 structure and the compiler transformations --- most
                 notably, flattening --- that make such designs
                 feasible. We describe our implementation strategies and
                 present some detailed examples utilizing various
                 mechanisms of our language.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data parallelism; exceptions; implicitly-threaded
                 parallelism; parallel binding; parallel case",
}

@Article{Danvy:2008:DIP,
  author =       "Olivier Danvy",
  title =        "Defunctionalized interpreters for programming
                 languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "131--142",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411206",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This document illustrates how functional
                 implementations of formal semantics (structural
                 operational semantics, reduction semantics, small-step
                 and big-step abstract machines, natural semantics, and
                 denotational semantics) can be transformed into each
                 other. These transformations were foreshadowed by
                 Reynolds in 'Definitional Interpreters for Higher-Order
                 Programming Languages' for functional implementations
                 of denotational semantics, natural semantics, and
                 big-step abstract machines using closure conversion,
                 CPS transformation, and defunctionalization. Over the
                 last few years, the author and his students have
                 further observed that functional implementations of
                 small-step and of big-step abstract machines are
                 related using fusion by fixed-point promotion and that
                 functional implementations of reduction semantics and
                 of small-step abstract machines are related using
                 refocusing and transition compression. It furthermore
                 appears that functional implementations of structural
                 operational semantics and of reduction semantics are
                 related as well, also using CPS transformation and
                 defunctionalization. This further relation provides an
                 element of answer to Felleisen's conjecture that any
                 structural operational semantics can be expressed as a
                 reduction semantics: for deterministic languages, a
                 reduction semantics is a structural operational
                 semantics in continuation style, where the reduction
                 context is a defunctionalized continuation. As the
                 defunctionalized counterpart of the continuation of a
                 one-step reduction function, a reduction context
                 represents the rest of the reduction, just as an
                 evaluation context represents the rest of the
                 evaluation since it is the defunctionalized counterpart
                 of the continuation of an evaluation function.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "big-step abstract machines; context-sensitive
                 reduction semantics; continuations; cps transformation;
                 defunctionalization; interruptions; natural semantics;
                 reduction semantics; refocusing; small-step abstract
                 machines; structural operational semantics",
}

@Article{Chlipala:2008:PHO,
  author =       "Adam Chlipala",
  title =        "Parametric higher-order abstract syntax for mechanized
                 semantics",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "143--156",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411226",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present {\em parametric higher-order abstract
                 syntax (PHOAS)}, a new approach to formalizing the
                 syntax of programming languages in computer proof
                 assistants based on type theory. Like higher-order
                 abstract syntax (HOAS), PHOAS uses the meta language's
                 binding constructs to represent the object language's
                 binding constructs. Unlike HOAS, PHOAS types are
                 definable in general-purpose type theories that support
                 traditional functional programming, like Coq's Calculus
                 of Inductive Constructions. We walk through how Coq can
                 be used to develop certified, executable program
                 transformations over several statically-typed
                 functional programming languages formalized with PHOAS;
                 that is, each transformation has a machine-checked
                 proof of type preservation and semantic preservation.
                 Our examples include CPS translation and closure
                 conversion for simply-typed lambda calculus, CPS
                 translation for System F, and translation from a
                 language with ML-style pattern matching to a simpler
                 language with no variable-arity binding constructs. By
                 avoiding the syntactic hassle associated with
                 first-order representation techniques, we achieve a
                 very high degree of proof automation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler verification; dependent types; interactive
                 proof assistants; type-theoretic semantics",
}

@Article{Ahmed:2008:TCC,
  author =       "Amal Ahmed and Matthias Blume",
  title =        "Typed closure conversion preserves observational
                 equivalence",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "157--168",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411227",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Language-based security relies on the assumption that
                 all potential attacks are bound by the rules of the
                 language in question. When programs are compiled into a
                 different language, this is true only if the
                 translation process preserves observational
                 equivalence.\par

                 We investigate the problem of fully abstract
                 compilation, i.e., compilation that both {\em
                 preserves\/} and {\em reflects\/} observational
                 equivalence. In particular, we prove that typed closure
                 conversion for the polymorphic $\lambda$-calculus with
                 existential and recursive types is fully abstract. Our
                 proof uses operational techniques in the form of a
                 step-indexed logical relation and construction of
                 certain {\em wrapper\/} terms that 'back-translate'
                 from target values to source values.\par

                 Although typed closure conversion has been assumed to
                 be fully abstract, we are not aware of any previous
                 result that actually proves this.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "equivalence-preserving compilation; full abstraction;
                 step-indexed logical relations; typed closure
                 conversion",
}

@Article{Morihata:2008:WIR,
  author =       "Akimasa Morihata and Kiminori Matsuzaki and Masato
                 Takeichi",
  title =        "Write it recursively: a generic framework for optimal
                 path queries",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "169--178",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411229",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "{\em Optimal path queries\/} are queries to obtain an
                 optimal path specified by a given criterion of
                 optimality. There have been many studies to give
                 efficient algorithms for classes of optimal path
                 problem. In this paper, we propose a generic framework
                 for optimal path queries. We offer a domain-specific
                 language to describe optimal path queries, together
                 with an algorithm to find an optimal path specified in
                 our language. One of the most distinct features of our
                 framework is the use of recursive functions to specify
                 queries. Recursive functions reinforce expressiveness
                 of our language so that we can describe many problems
                 including known ones; thus, we need not learn existing
                 results. Moreover, we can derive an efficient querying
                 algorithm from the description of a query written in
                 recursive functions. Our algorithm is a generalization
                 of existing algorithms, and answers a query in $O(n
                 \log n)$ time on a graph of $O(n)$ size. We also
                 explain our implementation of an optimal path querying
                 system, and report some experimental results.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "finite state automaton; optimal path query; program
                 transformation; recursive function",
}

@Article{Adams:2008:ENE,
  author =       "Michael D. Adams and R. Kent Dybvig",
  title =        "Efficient nondestructive equality checking for trees
                 and graphs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "179--188",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411230",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Revised$^6$ Report on Scheme requires its generic
                 equivalence predicate, equal?, to terminate even on
                 cyclic inputs. While the terminating equal? can be
                 implemented via a DFA-equivalence or union-find
                 algorithm, these algorithms usually require an
                 additional pointer to be stored in each object, are not
                 suitable for multithreaded code due to their
                 destructive nature, and may be unacceptably slow for
                 the small acyclic values that are the most likely
                 inputs to the predicate.\par

                 This paper presents a variant of the union-find
                 algorithm for equal? that addresses these issues. It
                 performs well on large and small, cyclic and acyclic
                 inputs by interleaving a low-overhead algorithm that
                 terminates only for acyclic inputs with a more general
                 algorithm that handles cyclic inputs. The algorithm
                 terminates for all inputs while never being more than a
                 small factor slower than whichever of the acyclic or
                 union-find algorithms would have been faster. Several
                 intermediate algorithms are also presented, each of
                 which might be suitable for use in a particular
                 application, though only the final algorithm is
                 suitable for use in a library procedure, like equal?,
                 that must work acceptably well for all inputs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dfa equivalence; eq hash tables; equality; scheme;
                 union-find",
}

@Article{Hinze:2008:FPS,
  author =       "Ralf Hinze",
  title =        "Functional pearl: streams and unique fixed points",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "189--200",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411232",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Streams, infinite sequences of elements, live in a
                 coworld: they are given by a coinductive data type,
                 operations on streams are implemented by corecursive
                 programs, and proofs are conducted using coinduction.
                 But there is more to it: suitably restricted, stream
                 equations possess {\em unique solutions}, a fact that
                 is not very widely appreciated. We show that this
                 property gives rise to a simple and attractive proof
                 technique essentially bringing equational reasoning to
                 the coworld. In fact, we redevelop the theory of
                 recurrences, finite calculus and generating functions
                 using streams and stream operators building on the
                 cornerstone of unique solutions. The development is
                 constructive: streams and stream operators are
                 implemented in Haskell, usually by one-liners. The
                 resulting calculus or library, if you wish, is elegant
                 and fun to use. Finally, we rephrase the proof of
                 uniqueness using generalised algebraic data types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "coinduction; finite calculus; generating functions;
                 recurrences; streams; unique fixed points",
}

@Article{Fischer:2008:DFT,
  author =       "Sebastian Fischer and Herbert Kuchen",
  title =        "Data-flow testing of declarative programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "201--212",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411233",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a novel notion of data-flow coverage for
                 testing declarative programs. Moreover, we extend an
                 automatic test-case generator such that it can achieve
                 data-flow coverage. The coverage information is
                 obtained by instrumenting a program such that it
                 collects coverage information during its execution.
                 Finally, we show the benefits of data-flow based
                 testing for a couple of example applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code coverage; curry; data flow",
}

@Article{Chargueraud:2008:FTC,
  author =       "Arthur Chargu{\'e}raud and Fran{\c{c}}ois Pottier",
  title =        "Functional translation of a calculus of capabilities",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "213--224",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411235",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Reasoning about imperative programs requires the
                 ability to track aliasing and ownership properties. We
                 present a type system that provides this ability, by
                 using regions, capabilities, and singleton types. It is
                 designed for a high-level calculus with higher-order
                 functions, algebraic data structures, and references
                 (mutable memory cells). The type system has
                 polymorphism, yet does not require a value restriction,
                 because capabilities act as explicit store
                 typings.\par

                 We exhibit a type-directed, type-preserving, and
                 meaning-preserving translation of this imperative
                 calculus into a pure calculus. Like the monadic
                 translation, this is a store-passing translation. Here,
                 however, the store is partitioned into multiple
                 fragments, which are threaded through a computation
                 only if they are relevant to it. Furthermore, the
                 decomposition of the store into fragments can evolve
                 dynamically to reflect ownership transfers.\par

                 The translation offers deep insight about the inner
                 workings and soundness of the type system. If coupled
                 with a semantic model of its target calculus, it leads
                 to a semantic model of its imperative source calculus.
                 Furthermore, it provides a foundation for our long-term
                 objective of designing a system for specifying and
                 certifying imperative programs with dynamic memory
                 allocation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aliasing; capabilities; effects; linearity; monads;
                 ownership; regions; type systems",
}

@Article{Augustsson:2008:PTS,
  author =       "Lennart Augustsson and Howard Mansell and Ganesh
                 Sittampalam",
  title =        "{Paradise}: a two-stage {DSL} embedded in {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "225--228",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411236",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We have implemented a two-stage language, Paradise,
                 for building reusable components which are used to
                 price financial products. Paradise is embedded in
                 Haskell and makes heavy use of type-class based
                 overloading, allowing the second stage to be compiled
                 into a variety of backend platforms.\par

                 Paradise has enabled us to begin moving away from
                 implementation directly in monolithic Excel
                 spreadsheets and towards a more modular and
                 retargetable approach.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dsels; Haskell; metaprogramming; paradise",
}

@Article{Nanevski:2008:YDT,
  author =       "Aleksandar Nanevski and Greg Morrisett and Avraham
                 Shinnar and Paul Govereau and Lars Birkedal",
  title =        "{Ynot}: dependent types for imperative programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "229--240",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411237",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe an axiomatic extension to the Coq proof
                 assistant, that supports writing, reasoning about, and
                 extracting higher-order, dependently-typed programs
                 with {\em side-effects}. Coq already includes a
                 powerful functional language that supports dependent
                 types, but that language is limited to pure, total
                 functions. The key contribution of our extension, which
                 we call Ynot, is the added support for computations
                 that may have effects such as non-termination,
                 accessing a mutable store, and throwing/catching
                 exceptions.\par

                 The axioms of Ynot form a small trusted computing base
                 which has been formally justified in our previous work
                 on Hoare Type Theory (HTT). We show how these axioms
                 can be combined with the powerful type and abstraction
                 mechanisms of Coq to build higher-level reasoning
                 mechanisms which in turn can be used to build
                 realistic, verified software components. To
                 substantiate this claim, we describe here a
                 representative series of modules that implement
                 imperative finite maps, including support for a
                 higher-order (effectful) iterator. The implementations
                 range from simple (e.g., association lists) to complex
                 (e.g., hash tables) but share a common interface which
                 abstracts the implementation details and ensures that
                 the modules properly implement the finite map
                 abstraction.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Hoare logic; monads; separation logic; type theory",
}

@Article{Fluet:2008:SFG,
  author =       "Matthew Fluet and Mike Rainey and John Reppy",
  title =        "A scheduling framework for general-purpose parallel
                 languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "241--252",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411239",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The trend in microprocessor design toward multicore
                 and manycore processors means that future performance
                 gains in software will largely come from harnessing
                 parallelism. To realize such gains, we need languages
                 and implementations that can enable parallelism at many
                 different levels. For example, an application might use
                 both explicit threads to implement course-grain
                 parallelism for independent tasks and implicit threads
                 for fine-grain data-parallel computation over a large
                 array. An important aspect of this requirement is
                 supporting a wide range of different scheduling
                 mechanisms for parallel computation.\par

                 In this paper, we describe the scheduling framework
                 that we have designed and implemented for Manticore, a
                 strict parallel functional language. We take a
                 micro-kernel approach in our design: the compiler and
                 runtime support a small collection of scheduling
                 primitives upon which complex scheduling policies can
                 be implemented. This framework is extremely flexible
                 and can support a wide range of different scheduling
                 policies. It also supports the nesting of schedulers,
                 which is key to both supporting multiple scheduling
                 policies in the same application and to hierarchies of
                 speculative parallel computations.\par

                 In addition to describing our framework, we also
                 illustrate its expressiveness with several popular
                 scheduling techniques. We present a (mostly) modular
                 approach to extending our schedulers to support
                 cancellation. This mechanism is essential for
                 implementing eager and speculative parallelism. We
                 finally evaluate our framework with a series of
                 benchmarks and an analysis.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; heterogeneous parallel languages; run-time
                 systems; scheduling",
}

@Article{Spoonhower:2008:SPP,
  author =       "Daniel Spoonhower and Guy E. Blelloch and Robert
                 Harper and Phillip B. Gibbons",
  title =        "Space profiling for parallel functional programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "253--264",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411240",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a semantic space profiler for
                 parallel functional programs. Building on previous work
                 in sequential profiling, our tools help programmers to
                 relate runtime resource use back to program source
                 code. Unlike many profiling tools, our profiler is
                 based on a cost semantics. This provides a means to
                 reason about performance without requiring a detailed
                 understanding of the compiler or runtime system. It
                 also provides a specification for language
                 implementers. This is critical in that it enables us to
                 separate cleanly the performance of the application
                 from that of the language implementation.\par

                 Some aspects of the implementation can have significant
                 effects on performance. Our cost semantics enables
                 programmers to understand the impact of different
                 scheduling policies while hiding many of the details of
                 their implementations. We show applications where the
                 choice of scheduling policy has asymptotic effects on
                 space use. We explain these use patterns through a
                 demonstration of our tools. We also validate our
                 methodology by observing similar performance in our
                 implementation of a parallel extension of Standard
                 ML.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cost semantics; parallelism; profiling; scheduling;
                 standard ml",
}

@Article{Jones:2008:PPT,
  author =       "Mark P. Jones",
  title =        "Polymorphism and page tables: systems programming from
                 a functional programmer's perspective",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "265--266",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411207",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "With features that include lightweight syntax,
                 expressive type systems, and deep semantic foundations,
                 functional languages are now being used to develop an
                 increasingly broad range of complex, real-world
                 applications. In the area of systems software, however,
                 where performance and interaction with low-level
                 aspects of hardware are central concerns, many
                 practitioners still eschew the advantages of
                 higher-level languages for the potentially unsafe but
                 predictable behavior of traditional imperative
                 languages like C. It is ironic that critical
                 applications such as operating systems kernels, device
                 drivers, and VMMs --- where a single bug could
                 compromise the reliability or security of a whole
                 system --- are among the least likely to benefit from
                 the abstractions and safety guarantees of modern
                 language designs.\par

                 Over the last few years, our group has been
                 investigating the potential for using Haskell to
                 develop realistic operating systems that can boot and
                 run on bare metal. The House system, developed
                 primarily by Thomas Hallgren and Andrew Tolmach,
                 demonstrates that it is indeed possible to construct
                 systems software in a functional language. But House
                 still relies on a layer of runtime support primitives
                 --- some written using unsafe Haskell primitives and
                 others written in C --- to provide services ranging
                 from garbage collection to control of the page table
                 structures used by the hardware memory management unit.
                 We would like to replace as much of this layer as
                 possible with code written in a functional language
                 without compromising on type or memory safety.\par

                 Our experiences with House have led us to believe that
                 a new functional language is required to reflect the
                 needs of the systems domain more directly.
                 Interestingly, however, we have concluded that this
                 does not require fundamental new language design. In
                 this invited talk, I will give an update on the current
                 status of our project and I will describe how we are
                 leveraging familiar components of the Haskell type
                 system --- including polymorphism, kinds, qualified
                 types and improvement --- to capture more precise
                 details of effect usage, data representation, and
                 termination. I will also discuss the challenges of
                 writing and compiling performance-sensitive code
                 written in a functional style. It was once considered
                 radical to use C in place of assembly language to
                 construct systems software. Is it possible that
                 functional languages might one day become as
                 commonplace in this application domain as C is today?",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data representation; functional programming; memory
                 manipulation; systems programming; type systems",
}

@Article{Krauss:2008:PMP,
  author =       "Alexander Krauss",
  title =        "Pattern minimization problems over recursive data
                 types",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "267--274",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411242",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In the context of program verification in an
                 interactive theorem prover, we study the problem of
                 transforming function definitions with ML-style
                 (possibly overlapping) pattern matching into minimal
                 sets of independent equations. Since independent
                 equations are valid unconditionally, they are better
                 suited for the equational proof style using induction
                 and rewriting, which is often found in proofs in
                 theorem provers or on paper.\par

                 We relate the problem to the well-known minimization
                 problem for propositional DNF formulas and show that it
                 is $\pounds P/2$-complete. We then develop a concrete
                 algorithm to compute minimal patterns, which naturally
                 generalizes the standard Quine-McCluskey procedure to
                 the domain of term patterns.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "complexity; pattern matching; theorem proving",
}

@Article{VanHorn:2008:DCC,
  author =       "David {Van Horn} and Harry G. Mairson",
  title =        "Deciding $k$ {CFA} is complete for {EXPTIME}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "275--282",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411243",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We give an exact characterization of the computational
                 complexity of the $k$ CFA hierarchy. For any $k > 0$,
                 we prove that the control flow decision problem is
                 complete for deterministic exponential time. This
                 theorem validates empirical observations that such
                 control flow analysis is intractable. It also provides
                 more general insight into the complexity of abstract
                 interpretation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "complexity; flow analysis",
}

@Article{Leijen:2008:HST,
  author =       "Daan Leijen",
  title =        "{HMF}: simple type inference for first-class
                 polymorphism",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "283--294",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411245",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "HMF is a conservative extension of Hindley-Milner type
                 inference with first-class polymorphism. In contrast to
                 other proposals, HML uses regular System F types and
                 has a simple type inference algorithm that is just a
                 small extension of the usual Damas-Milner algorithm W.
                 Given the relative simplicity and expressive power, we
                 feel that HMF can be an attractive type system in
                 practice. There is a reference implementation of the
                 type system available online together with a technical
                 report containing proofs (Leijen 2007a,b).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "first-class polymorphism; type inference",
}

@Article{Vytiniotis:2008:FFC,
  author =       "Dimitrios Vytiniotis and Stephanie Weirich and Simon
                 Peyton Jones",
  title =        "{FPH}: first-class polymorphism for {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "295--306",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411246",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Languages supporting polymorphism typically have
                 ad-hoc restrictions on where polymorphic types may
                 occur. Supporting 'firstclass' polymorphism, by lifting
                 those restrictions, is obviously desirable, but it is
                 hard to achieve this without sacrificing type
                 inference. We present a new type system for higher-rank
                 and impredicative polymorphism that improves on earlier
                 proposals: it is an extension of Damas-Milner; it
                 relies only on System F types; it has a simple,
                 declarative specification; it is robust to program
                 transformations; and it enjoys a complete and decidable
                 type inference algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "higher-rank types; impredicativity; type inference",
}

@Article{Dreyer:2008:MMM,
  author =       "Derek Dreyer and Andreas Rossberg",
  title =        "Mixin' up the {ML} module system",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "307--320",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411248",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "ML modules provide hierarchical namespace management,
                 as well as fine-grained control over the propagation of
                 type information, but they do not allow modules to be
                 broken up into mutually recursive, separately
                 compilable components. Mixin modules facilitate
                 recursive linking of separately compiled components,
                 but they are not hierarchically composable and
                 typically do not support type abstraction. We
                 synthesize the complementary advantages of these two
                 mechanisms in a novel module system design we call
                 MixML.\par

                 A MixML module is like an ML structure in which some of
                 the components are specified but not defined. In other
                 words, it unifies the ML structure and signature
                 languages into one. MixML seamlessly integrates
                 hierarchical composition, translucent MLstyle data
                 abstraction, and mixin-style recursive linking.
                 Moreover, the design of MixML is clean and minimalist;
                 it emphasizes how all the salient, semantically
                 interesting features of the ML module system (as well
                 as several proposed extensions to it) can be understood
                 simply as stylized uses of a small set of orthogonal
                 underlying constructs, with mixin composition playing a
                 central role.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract data types; hierarchical composability; mixin
                 modules; ML modules; recursive modules; type systems",
}

@Article{Ley-Wild:2008:CSA,
  author =       "Ruy Ley-Wild and Matthew Fluet and Umut A. Acar",
  title =        "Compiling self-adjusting programs with continuations",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "321--334",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411249",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Self-adjusting programs respond automatically and
                 efficiently to input changes by tracking the dynamic
                 data dependences of the computation and incrementally
                 updating the output as needed. In order to identify
                 data dependences, previously proposed approaches
                 require the user to make use of a set of monadic
                 primitives. Rewriting an ordinary program into a
                 self-adjusting program with these primitives, however,
                 can be difficult and error-prone due to various monadic
                 and proper-usage restrictions, some of which cannot be
                 enforced statically. Previous work therefore suggests
                 that self-adjusting computation would benefit from
                 direct language and compiler support.\par

                 In this paper, we propose a language-based technique
                 for writing and compiling self-adjusting programs from
                 ordinary programs. To compile self-adjusting programs,
                 we use a continuation-passing style (cps)
                 transformation to automatically infer a conservative
                 approximation of the dynamic data dependences. To
                 prevent the inferred, approximate dependences from
                 degrading the performance of change propagation, we
                 generate memoized versions of cps functions that can
                 reuse previous work even when they are invoked with
                 different continuations. The approach offers a natural
                 programming style that requires minimal changes to
                 existing code, while statically enforcing the
                 invariants required by self-adjusting
                 computation.\par

                 We validate the feasibility of our proposal by
                 extending Standard ML and by integrating the
                 transformation into MLton, a whole-program optimizing
                 compiler for Standard ML. Our experiments indicate that
                 the proposed compilation technique can produce
                 self-adjusting programs whose performance is consistent
                 with the asymptotic bounds and experimental results
                 obtained via manual rewriting (up to a constant
                 factor).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "continuation-passing style; memoization;
                 self-adjusting computation",
}

@Article{Mainland:2008:FSF,
  author =       "Geoffrey Mainland and Greg Morrisett and Matt Welsh",
  title =        "{Flask}: staged functional programming for sensor
                 networks",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "335--346",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411251",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Severely resource-constrained devices present a
                 confounding challenge to the functional programmer: we
                 are used to having powerful abstraction facilities at
                 our fingertips, but how can we make use of these tools
                 on a device with an 8- or 16-bit CPU and at most tens
                 of kilobytes of RAM? Motivated by this challenge, we
                 have developed Flask, a domain specific language
                 embedded in Haskell that brings the power of functional
                 programming to sensor networks, collections of highly
                 resource-constrained devices. Flask consists of a
                 staging mechanism that cleanly separates node-level
                 code from the meta-language used to generate node-level
                 code fragments; syntactic support for embedding
                 standard sensor network code; a restricted subset of
                 Haskell that runs on sensor networks and constrains
                 program space and time consumption; a higher-level
                 'data stream' combinator library for quickly
                 constructing sensor network programs; and an extensible
                 runtime that provides commonly-used services.\par

                 We demonstrate Flask through several small code
                 examples as well as a compiler that generates
                 node-level code to execute a network-wide query
                 specified in a SQL-like language. We show how using
                 Flask ensures constraints on space and time behavior.
                 Through microbenchmarks and measurements on physical
                 hardware, we demonstrate that Flask produces programs
                 that are efficient in terms of CPU and memory usage and
                 that can run effectively on existing sensor network
                 hardware.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "meta programming",
}

@Article{Nanavati:2008:ERP,
  author =       "Ravi Nanavati",
  title =        "Experience report: a pure shirt fits",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "347--352",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411252",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Bluespec is a hardware-design tools startup whose core
                 technology is developed using Haskell. Haskell is an
                 unusual choice for a startup because it adds technical
                 risk to the inherent business risk. In the years since
                 Bluespec's founding, we have discovered that Haskell's
                 purity is an unexpected match for the development needs
                 of a startup. Based on Bluespec's experience, we
                 conclude that pure programming languages can be the
                 source of a competitive advantage for startup software
                 companies.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Bluespec; functional programming; Haskell; monads",
}

@Article{Park:2008:FN,
  author =       "Sungwoo Park and Jinha Kim and Hyeonseung Im",
  title =        "Functional netlists",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "353--366",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411253",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In efforts to overcome the complexity of the syntax
                 and the lack of formal semantics of conventional
                 hardware description languages, a number of functional
                 hardware description languages have been developed.
                 Like conventional hardware description languages,
                 however, functional hardware description languages
                 eventually convert all source programs into netlists,
                 which describe wire connections in hardware circuits at
                 the lowest level and conceal all high-level
                 descriptions written into source programs.\par

                 We develop a variant of the lambda calculus, called $l$
                 \lambda (linear lambda), which may serve as a
                 high-level substitute for netlists. In order to support
                 higher-order functions, $l$ \lambda uses a linear type
                 system which enforces the linear use of variables of
                 function type. The translation of $l$ \lambda into
                 structural descriptions of hardware circuits is sound
                 and complete in the sense that it maps expressions only
                 to realizable hardware circuits and that every
                 realizable hardware circuit has a corresponding
                 expression in $l$ \lambda . To illustrate the use of
                 $l$ \lambda as a high-level substitute for netlists, we
                 design a simple hardware description language that
                 extends $l$ \lambda with polymorphism, and use it to
                 implement a Fast Fourier Transform circuit.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "functional language; hardware description language;
                 linear type system",
}

@Article{Dolstra:2008:NPF,
  author =       "Eelco Dolstra and Andres L{\"o}h",
  title =        "{NixOS}: a purely functional {Linux} distribution",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "367--378",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411255",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "Existing package and system configuration management
                 tools suffer from an {\em imperative model}, where
                 system administration actions such as upgrading
                 packages or changes to system configuration files are
                 stateful: they destructively update the state of the
                 system. This leads to many problems, such as the
                 inability to roll back changes easily, to run multiple
                 versions of a package side-by-side, to reproduce a
                 configuration deterministically on another machine, or
                 to reliably upgrade a system. In this paper we show
                 that we can overcome these problems by moving to a {\em
                 purely functional system configuration model}. This
                 means that all static parts of a system (such as
                 software packages, configuration files and system
                 startup scripts) are built by pure functions and are
                 immutable, stored in a way analogously to a heap in a
                 purely function language. We have implemented this
                 model in {\em NixOS}, a non-trivial Linux distribution
                 that uses the {\em Nix package manager\/} to build the
                 entire system configuration from a purely functional
                 specification.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "nix; NixOS; package management; purely functional
                 deployment model; purely functional language; software
                 deployment; system configuration management",
}

@Article{Duke:2008:ERV,
  author =       "David J. Duke and Rita Borgo and Colin Runciman and
                 Malcolm Wallace",
  title =        "Experience report: visualizing data through functional
                 pipelines",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "379--382",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411256",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Scientific visualization is the transformation of data
                 into images. The {\em pipeline model\/} is a
                 widely-used implementation strategy. This term refers
                 not only to linear chains of processing stages, but
                 more generally to demand-driven networks of components.
                 Apparent parallels with functional programming are more
                 than superficial: e.g. some pipelines support streams
                 of data, and a limited form of lazy evaluation. Yet
                 almost all visualization systems are implemented in
                 imperative languages. We challenge this position. Using
                 Haskell, we have reconstructed several fundamental
                 visualization techniques, with encouraging results both
                 in terms of novel insight and performance. In this
                 paper we set the context for our modest rebellion,
                 report some of our results, and reflect on the lessons
                 that we have learned.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "evaluation; Haskell; pipeline; streaming;
                 visualization",
}

@Article{Foster:2008:QL,
  author =       "J. Nathan Foster and Alexandre Pilkiewicz and Benjamin
                 C. Pierce",
  title =        "Quotient lenses",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "383--396",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411257",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "There are now a number of BIDIRECTIONAL PROGRAMMING
                 LANGUAGES, where every program can be read both as a
                 forward transformation mapping one data structure to
                 another and as a reverse transformation mapping an
                 edited output back to a correspondingly edited input.
                 Besides parsimony --- the two related transformations
                 are described by just one expression --- such languages
                 are attractive because they promise strong behavioral
                 laws about how the two transformations fit together ---
                 e.g., their composition is the identity function. It
                 has repeatedly been observed, however, that such laws
                 are actually a bit too strong: in practice, we do not
                 want them 'on the nose,' but only up to some
                 equivalence, allowing inessential details, such as
                 whitespace, to be modified after a round trip. Some
                 bidirectional languages loosen their laws in this way,
                 but only for specific, baked-in equivalences.\par

                 In this work, we propose a general theory of QUOTIENT
                 LENSES --- bidirectional transformations that are well
                 behaved modulo equivalence relations controlled by the
                 programmer. Semantically, quotient lenses are a natural
                 refinement of LENSES, which we have studied in previous
                 work. At the level of syntax, we present a rich set of
                 constructs for programming with CANONIZERS and for
                 quotienting lenses by canonizers. We track equivalences
                 explicitly, with the type of every quotient lens
                 specifying the equivalences it respects.\par

                 We have implemented quotient lenses as a refinement of
                 the bidirectional string processing language Boomerang.
                 We present a number of useful primitive canonizers for
                 strings, and give a simple extension of Boomerang's
                 regular-expression-based type system to statically
                 typecheck quotient lenses. The resulting language is an
                 expressive tool for transforming real-world, ad-hoc
                 data formats. We demonstrate the power of our notation
                 by developing an extended example based on the UniProt
                 genome database format and illustrate the generality of
                 our approach by showing how uses of quotienting in
                 other bidirectional languages can be translated into
                 our notation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bidirectional languages; bijective languages;
                 boomerang; canonizers; equivalences; lenses; regular
                 string transducers; regular types; view update
                 problem",
}

@Article{Dolstra:2008:RTI,
  author =       "Eelco Dolstra and Jurriaan Hage and Bastiaan Heeren
                 and Stefan Holdermans and Johan Jeuring and Andres
                 L{\"o}h and Clara L{\"o}h and Arie Middelkoop and
                 Alexey Rodriguez and John van Schie",
  title =        "Report on the {Tenth ICFP Programming Contest}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "397--408",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411259",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The ICFP programming contest is a 72-hour contest,
                 which attracts thousands of contestants from all over
                 the world. In this report we describe what it takes to
                 organise this contest, the main ideas behind the
                 contest we organised, the task, how to solve it, how we
                 created it, and how well the contestants did.\par

                 This year's task was to reverse engineer the DNA of a
                 stranded alien life form to enable it to survive on our
                 planet. The alien's DNA had to be modified by means of
                 a {\em prefix\/} that modified its meaning so that the
                 alien's phenotype would approximate a given 'ideal'
                 outcome, increasing its probability of survival. About
                 357 teams from 39 countries solved at least part of the
                 contest. The language of choice for discriminating
                 hackers turned out to be C++.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming contest; reverse engineering",
}

@Article{Willis:2008:CIJ,
  author =       "Darren Willis and David J. Pearce and James Noble",
  title =        "Caching and incrementalisation in the {Java Query
                 Language}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "1--18",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449766",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many contemporary object-oriented programming
                 languages support first-class queries or
                 comprehensions. These language extensions make it
                 easier for programmers to write queries, but are
                 generally implemented no more efficiently than the code
                 using collections, iterators, and loops that they
                 replace. Crucially, whenever a query is re-executed, it
                 is recomputed from scratch. We describe a general
                 approach to optimising queries over mutable objects:
                 query results are cached, and those caches are
                 incrementally maintained whenever the collections and
                 objects underlying those queries are updated. We hope
                 that the performance benefits of our optimisations may
                 encourage more general adoption of first-class queries
                 by object-oriented programmers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "incrementalization; Java; querying",
}

@Article{Wiedermann:2008:IQE,
  author =       "Ben Wiedermann and Ali Ibrahim and William R. Cook",
  title =        "Interprocedural query extraction for transparent
                 persistence",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "19--36",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449767",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transparent persistence promises to integrate
                 programming languages and databases by allowing
                 programs to access persistent data with the same ease
                 as non-persistent data. In this work we demonstrate the
                 feasibility of optimizing transparently persistent
                 programs by extracting queries to efficiently prefetch
                 required data. A static analysis derives query
                 structure and conditions across methods that access
                 persistent data. Using the static analysis, our system
                 transforms the program to execute explicit queries. The
                 transformed program composes queries across methods to
                 handle method calls that return persistent data. We
                 extend an existing Java compiler to implement the
                 static analysis and program transformation, handling
                 recursion and parameterized queries. We evaluate the
                 effectiveness of query extraction on the OO7 and
                 TORPEDO benchmarks. This work is focused on programs
                 written in the current version of Java, without
                 languages changes. However, the techniques developed
                 here may also be of value in conjunction with
                 object-oriented languages extended with high-level
                 query syntax.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "attribute grammars; databases; object-relational
                 mapping; programming languages; static analysis",
}

@Article{Tatlock:2008:DTR,
  author =       "Zachary Tatlock and Chris Tucker and David Shuffelton
                 and Ranjit Jhala and Sorin Lerner",
  title =        "Deep typechecking and refactoring",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "37--52",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449768",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Large software systems are typically composed of
                 multiple layers, written in different languages and
                 loosely coupled using a string-based interface. For
                 example, in modern web-applications, a server written
                 in Java communicates with a database back-end by
                 passing in query strings. This widely prevalent
                 approach is unsafe as the analyses developed for the
                 individual layers are oblivious to the semantics of the
                 dynamically constructed strings, making it impossible
                 to statically reason about the correctness of the
                 interaction. Further, even simple refactoring in such
                 systems is daunting and error prone as the changes must
                 also be applied to isolated string fragments scattered
                 across the code base.\par

                 We present techniques for deep typechecking and
                 refactoring for systems that combine Java code with a
                 database back-end using the Java Persistence API [10].
                 Deep typechecking ensures that the queries that are
                 constructed dynamically are type safe and that the
                 values returned from the queries are used safely by the
                 program. Deep refactoring builds upon typechecking to
                 allow programmers to safely and automatically propagate
                 code refactorings through the query string
                 fragments.\par

                 Our algorithms are implemented in a tool called QUAIL.
                 We present experiments evaluating the effectiveness of
                 QUAIL on several benchmarks ranging from 3,369 to
                 82,907 lines of code. We show that QUAIL is able to
                 verify that 84\% of query strings in our benchmarks are
                 type safe. Finally, we show that QUAIL reduces the
                 number of places in the code that a programmer must
                 look at in order to perform a refactoring by several
                 orders of magnitude.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cross language refactoring; cross language
                 typechecking; JPA query analysis",
}

@Article{Russo:2008:JPV,
  author =       "Claudio V. Russo",
  title =        "Join patterns for {Visual Basic}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "53--72",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449770",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe an extension of Visual Basic 9.0 with
                 asynchronous concurrency constructs --- join patterns
                 --- based on the join calculus. Our design of
                 Concurrent Basic (CB) builds on earlier work on
                 Polyphonic C\# and Comega. Since that work, the need
                 for language-integrated concurrency has only grown,
                 both due to the arrival of commodity, multi-core
                 hardware, and the trend for Rich Internet Applications
                 that rely on asynchronous client-server communication
                 to hide latency. Unlike its predecessors, CB adopts an
                 event-like syntax that should be familiar to existing
                 VB programmers. Coupled with Generics, CB allows one to
                 declare re-usable concurrency abstractions that were
                 clumsy to express previously. CB removes its ancestors'
                 inconvenient inheritance restriction, while providing
                 new extensibility points useful in practical
                 applications that must co-exist with or want to exploit
                 alternative threading models available on the platform.
                 CB is implemented as an extension of the production VB
                 9.0 compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "asynchronous message passing; join patterns; visual
                 basic",
}

@Article{Gil:2008:WIS,
  author =       "Joseph Gil and Itay Maman",
  title =        "{Whiteoak}: introducing structural typing into
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "73--90",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449771",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents WHITEOAK: a JAVA extension that
                 introduces structural type equivalence and subtyping
                 into the language. We argue that structural subtyping
                 addresses common software design problems, and promotes
                 the development of loosely coupled modules without
                 compromising type safety.\par

                 We discuss language design issues, including subtyping
                 in face of self-referencing structural types,
                 compile-time operators for computing the new types from
                 existing ones, and the semantics of constructors and
                 non-abstract methods in structural types. We describe
                 implementation techniques, including the compile-time
                 and run-time challenges that we faced (in particular,
                 preserving the identity of objects). Measurement
                 indicate that the performance of our implementation of
                 structural dispatching is comparable to that of the
                 JVM's standard invocation mechanisms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstraction; Java; structural subtyping",
}

@Article{Kats:2008:MSB,
  author =       "Lennart C. L. Kats and Martin Bravenboer and Eelco
                 Visser",
  title =        "Mixing source and bytecode: a case for compilation by
                 normalization",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "91--108",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449772",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Language extensions increase programmer productivity
                 by providing concise, often domain-specific syntax, and
                 support for static verification of correctness,
                 security, and style constraints. Language extensions
                 can often be realized through translation to the base
                 language, supported by preprocessors and extensible
                 compilers. However, various kinds of extensions require
                 further adaptation of a base compiler's internal stages
                 and components, for example to support separate
                 compilation or to make use of low-level primitives of
                 the platform (e.g., jump instructions or unbalanced
                 synchronization). To allow for a more loosely coupled
                 approach, we propose an open compiler model based on
                 normalization steps from a high-level language to a
                 subset of it, the core language. We developed such a
                 compiler for a mixed Java and (core) bytecode language,
                 and evaluate its effectiveness for composition
                 mechanisms such as traits, as well as statement-level
                 and expression-level language extensions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bytecode; compilers; domain-specific languages; dryad
                 compiler; embedded languages; iterators; Java; language
                 extensions; meta programming; SDF; source tracing;
                 stratego; traits",
}

@Article{Bond:2008:TML,
  author =       "Michael D. Bond and Kathryn S. McKinley",
  title =        "Tolerating memory leaks",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "109--126",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449774",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Type safety and garbage collection in managed
                 languages eliminate memory errors such as dangling
                 pointers, double frees, and leaks of unreachable
                 objects. Unfortunately, a program still leaks memory if
                 it maintains references to objects it will never use
                 again. Leaked objects decrease program locality and
                 increase garbage collection frequency and workload. A
                 growing leak will eventually exhaust memory and crash
                 the program.\par

                 This paper introduces a {\em leak tolerance\/} approach
                 called {\em Melt\/} that safely eliminates performance
                 degradations and crashes due to leaks of dead but
                 reachable objects in managed languages, given
                 sufficient disk space to hold leaking objects. Melt (1)
                 identifies {\em stale\/} objects that the program is
                 not accessing; (2) segregates in-use and stale objects
                 by storing stale objects to disk; and (3) preserves
                 safety by activating stale objects if the program
                 subsequently accesses them. We design and build a
                 prototype implementation of Melt in a Java VM and show
                 it adds overhead low enough for production systems.
                 Whereas existing VMs grind to a halt and then crash on
                 programs with leaks, Melt keeps many of these programs
                 running much longer without significantly degrading
                 performance. Melt provides users the illusion of a
                 fixed leak and gives developers more time to fix leaky
                 programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bug tolerance; managed languages; memory leaks",
}

@Article{Shankar:2008:JLD,
  author =       "Ajeet Shankar and Matthew Arnold and Rastislav Bodik",
  title =        "{Jolt}: lightweight dynamic analysis and removal of
                 object churn",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "127--142",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449775",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It has been observed that component-based applications
                 exhibit {\em object churn}, the excessive creation of
                 short-lived objects, often caused by trading
                 performance for modularity. Because churned objects are
                 short-lived, they appear to be good candidates for
                 stack allocation. Unfortunately, most churned objects
                 escape their allocating function, making escape
                 analysis ineffective.\par

                 We reduce object churn with three contributions. First,
                 we formalize two measures of churn, {\em capture\/} and
                 {\em control\/} (15). Second, we develop lightweight
                 dynamic analyses for measuring both {\em capture\/} and
                 {\em control}. Third, we develop an algorithm that uses
                 {\em capture\/} and {\em control\/} to inline portions
                 of the call graph to make churned objects non-escaping,
                 enabling churn optimization via escape
                 analysis.\par

                 JOLT is a lightweight dynamic churn optimizer that uses
                 our algorithms. We embedded JOLT in the JIT compiler of
                 the IBM J9 commercial JVM, and evaluated JOLT on large
                 application frameworks, including Eclipse and JBoss. We
                 found that JOLT eliminates over 4 times as many
                 allocations as a state-of-the-art escape analysis
                 alone.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "allocation optimization; churn; escape analysis;
                 inlining; Java; selective optimization; virtual
                 machine",
}

@Article{Arnold:2008:QER,
  author =       "Matthew Arnold and Martin Vechev and Eran Yahav",
  title =        "{QVM}: an efficient runtime for detecting defects in
                 deployed systems",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "143--162",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449776",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Coping with software defects that occur in the
                 post-deployment stage is a challenging problem: bugs
                 may occur only when the system uses a specific
                 configuration and only under certain usage scenarios.
                 Nevertheless, halting production systems until the bug
                 is tracked and fixed is often impossible. Thus,
                 developers have to try to reproduce the bug in
                 laboratory conditions. Often the reproduction of the
                 bug consists of the lion share of the debugging
                 effort.\par

                 In this paper we suggest an approach to address the
                 aforementioned problem by using a specialized runtime
                 environment (QVM, for {\em Quality Virtual Machine\/}).
                 QVM efficiently detects defects by continuously
                 monitoring the execution of the application in a
                 production setting. QVM enables the efficient checking
                 of violations of user-specified correctness properties,
                 e.g., typestate safety properties, Java assertions, and
                 heap properties pertaining to ownership.\par

                 QVM is markedly different from existing techniques for
                 continuous monitoring by using a novel overhead manager
                 which enforces a user-specified overhead budget for
                 quality checks. Existing tools for error detection in
                 the field usually disrupt the operation of the deployed
                 system. QVM, on the other hand, provides a balanced
                 trade off between the cost of the monitoring process
                 and the maintenance of sufficient accuracy for
                 detecting defects. Specifically, the overhead cost of
                 using QVM instead of a standard JVM, is low enough to
                 be acceptable in production environments.\par

                 We implemented QVM on top of IBM's J9 Java Virtual
                 Machine and used it to detect and fix various errors in
                 real-world applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "algorithms; reliability; virtual machines",
}

@Article{Xian:2008:CAS,
  author =       "Feng Xian and Witawas Srisa-an and Hong Jiang",
  title =        "Contention-aware scheduler: unlocking execution
                 parallelism in multithreaded {Java} programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "163--180",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449778",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In multithreaded programming, locks are frequently
                 used as a mechanism for synchronization. Because
                 today's operating systems do not consider lock usage as
                 a scheduling criterion, scheduling decisions can be
                 unfavorable to multithreaded applications, leading to
                 performance issues such as convoying and heavy lock
                 contention in systems with multiple processors.
                 Previous efforts to address these issues (e.g.,
                 transactional memory, lock-free data structure) often
                 treat scheduling decisions as 'a fact of life,' and
                 therefore these solutions try to cope with the
                 consequences of undesirable scheduling instead of
                 dealing with the problem directly.\par

                 In this paper, we introduce {\em Contention-Aware
                 Scheduler (CA-Scheduler)}, which is designed to support
                 efficient execution of large multithreaded Java
                 applications in multiprocessor systems. Our proposed
                 scheduler employs a scheduling policy that reduces lock
                 contention. As will be shown in this paper, our
                 prototype implementation of the CA-Scheduler in Linux
                 and Sun HotSpot virtual machine only incurs 3.5\%
                 runtime overhead, while the overall performance
                 differences, when compared with a system with no
                 contention awareness, range from a degradation of 3\%
                 in a small multithreaded benchmark to an improvement of
                 15\% in a large Java application server benchmark.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Java; operating systems; scheduling",
}

@Article{Schneider:2008:DOE,
  author =       "Florian T. Schneider and Vijay Menon and Tatiana
                 Shpeisman and Ali-Reza Adl-Tabatabai",
  title =        "Dynamic optimization for efficient strong atomicity",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "181--194",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449779",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transactional memory (TM) is a promising concurrency
                 control alternative to locks. Recent work has
                 highlighted important memory model issues regarding TM
                 semantics and exposed problems in existing TM
                 implementations. For safe, managed languages such as
                 Java, there is a growing consensus towards strong
                 atomicity semantics as a sound, scalable solution.
                 Strong atomicity has presented a challenge to implement
                 efficiently because it requires instrumentation of
                 non-transactional memory accesses, incurring
                 significant overhead even when a program makes minimal
                 or no use of transactions. To minimize overhead,
                 existing solutions require either a sophisticated type
                 system, specialized hardware, or static whole-program
                 analysis. These techniques do not translate easily into
                 a production setting on existing hardware. In this
                 paper, we present novel dynamic optimizations that
                 significantly reduce strong atomicity overheads and
                 make strong atomicity practical for dynamic language
                 environments. We introduce analyses that optimistically
                 track which non-transactional memory accesses can avoid
                 strong atomicity instrumentation, and we describe a
                 lightweight speculation and recovery mechanism that
                 applies these analyses to generate
                 speculatively-optimized but safe code for strong
                 atomicity in a dynamically-loaded environment. We show
                 how to implement these mechanisms efficiently by
                 leveraging existing dynamic optimization infrastructure
                 in a Java system. Measurements on a set of
                 transactional and non-transactional Java workloads
                 demonstrate that our techniques substantially reduce
                 the overhead of strong atomicity from a factor of 5x
                 down to 10\% or less over an efficient weak atomicity
                 baseline.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "code generation; compiler optimizations; dynamic
                 optimizations; strong atomicity; transactional memory;
                 virtual machines",
}

@Article{Ni:2008:DIT,
  author =       "Yang Ni and Adam Welc and Ali-Reza Adl-Tabatabai and
                 Moshe Bach and Sion Berkowits and James Cownie and
                 Robert Geva and Sergey Kozhukow and Ravi Narayanaswamy
                 and Jeffrey Olivier and Serguei Preis and Bratin Saha
                 and Ady Tal and Xinmin Tian",
  title =        "Design and implementation of transactional constructs
                 for {C\slash C++}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "195--212",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449780",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a software transactional memory
                 system that introduces first-class C++ language
                 constructs for transactional programming. We describe
                 new C++ language extensions, a production-quality
                 optimizing C++ compiler that translates and optimizes
                 these extensions, and a high-performance STM runtime
                 library. The transactional language constructs support
                 C++ language features including classes, inheritance,
                 virtual functions, exception handling, and templates.
                 The compiler automatically instruments the program for
                 transactional execution and optimizes TM overheads. The
                 runtime library implements multiple execution modes and
                 implements a novel STM algorithm that supports both
                 optimistic and pessimistic concurrency control. The
                 runtime switches a transaction's execution mode
                 dynamically to improve performance and to handle calls
                 to precompiled functions and I/O libraries. We present
                 experimental results on 8 cores (two quad-core CPUs)
                 running a set of 20 non-trivial parallel programs. Our
                 measurements show that our system scales well as the
                 numbers of cores increases and that our compiler and
                 runtime optimizations improve scalability.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C/C++; transactional memory",
}

@Article{Distefano:2008:JTP,
  author =       "Dino Distefano and Matthew J. Parkinson J.",
  title =        "{jStar}: towards practical verification for {Java}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "213--226",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449782",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper we introduce a novel methodology for
                 verifying a large set of Java programs which builds on
                 recent theoretical developments in program
                 verification: it combines the idea of abstract
                 predicate families and the idea of symbolic execution
                 and abstraction using separation logic. The proposed
                 technology has been implemented in a new automatic
                 verification system, called jStar, which combines
                 theorem proving and abstract interpretation techniques.
                 We demonstrate the effectiveness of our methodology by
                 using jStar to verify example programs implementing
                 four popular design patterns (subject/observer,
                 visitor, factory, and pooling). Although these patterns
                 are extensively used by object-oriented developers in
                 real-world applications, so far they have been highly
                 challenging for existing object-oriented verification
                 techniques.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "classes; design patterns; moduarity; separation
                 logic",
}

@Article{Beckman:2008:VCU,
  author =       "Nels E. Beckman and Kevin Bierhoff and Jonathan
                 Aldrich",
  title =        "Verifying correct usage of atomic blocks and
                 typestate",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "227--244",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449783",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The atomic block, a synchronization primitive provided
                 to programmers in transactional memory systems, has the
                 potential to greatly ease the development of concurrent
                 software. However, atomic blocks can still be used
                 incorrectly, and race conditions can still occur at the
                 level of application logic. In this paper, we present a
                 intraprocedural static analysis, formalized as a type
                 system and proven sound, that helps programmers use
                 atomic blocks correctly. Using {\em access
                 permissions}, which describe how objects are aliased
                 and modified, our system statically prevents race
                 conditions and enforces typestate properties in
                 concurrent programs. We have implemented a prototype
                 static analysis for the Java language based on our
                 system and have used it to verify several realistic
                 examples.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "permissions; transactional memory; typestate",
}

@Article{Gopinathan:2008:EOP,
  author =       "Madhu Gopinathan and Sriram K. Rajamani",
  title =        "Enforcing object protocols by combining static and
                 runtime analysis",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "245--260",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449784",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, we consider object protocols that
                 constrain interactions between objects in a program.
                 Several such protocols have been proposed in the
                 literature. For many APIs (such as JDOM, JDBC), API
                 designers constrain how API clients interact with API
                 objects. In practice, API clients violate such
                 constraints, as evidenced by postings in discussion
                 forums for these APIs. Thus, it is important that API
                 designers specify constraints using appropriate object
                 protocols and enforce them. The goal of an object
                 protocol is expressed as a protocol invariant.
                 Fundamental properties such as ownership can be
                 expressed as protocol invariants. We present a
                 language, PROLANG, to specify object protocols along
                 with their protocol invariants, and a tool, INVCOP++,
                 to check if a program satisfies a protocol invariant.
                 INVCOP++ separates the problem of checking if a
                 protocol satisfies its protocol invariant (called
                 protocol correctness), from the problem of checking if
                 a program conforms to a protocol (called program
                 conformance). The former is solved using static
                 analysis, and the latter using runtime analysis. Due to
                 this separation (1) errors made in protocol design are
                 detected at a higher level of abstraction, independent
                 of the program's source code, and (2) performance of
                 conformance checking is improved as protocol
                 correctness has been verified statically. We present
                 theoretical guarantees about the way we combine static
                 and runtime analysis, and empirical evidence that our
                 tool INVCOP++ finds usage errors in widely used APIs.
                 We also show that statically checking protocol
                 correctness greatly optimizes the overhead of checking
                 program conformance, thus enabling API clients to test
                 whether their programs use the API as intended by the
                 API designer.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect oriented programming; invariants; program
                 verification",
}

@Article{Chern:2008:ISD,
  author =       "Rick Chern and Kris De Volder",
  title =        "The impact of static-dynamic coupling on
                 remodularization",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "261--276",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449786",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We explore the concept of {\em static-dynamic
                 coupling\/} --the degree to which changes in a
                 program's static modular structure imply changes to its
                 dynamic structure. This paper investigates the impact
                 of static-dynamic coupling in a programming language on
                 the effort required to evolve the coarse modular
                 structure of programs written in that language. We
                 performed a series of remodularization case studies in
                 both Java and SubjectJ. SubjectJ is designed to be
                 similar to Java, but have strictly less static-dynamic
                 coupling. Our results include quantitative
                 measures-time taken and number of bugs introduced--as
                 well as a more subjective qualitative analysis of the
                 remodularization process. All results point in the same
                 direction and suggest that static-dynamic coupling
                 causes substantial accidental complexity for the
                 remodularization of Java programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hyperslices; language design; refactoring;
                 remodularization; static-dynamic coupling;
                 subject-oriented programming",
}

@Article{Schafer:2008:SER,
  author =       "Max Sch{\"a}fer and Torbj{\"o}rn Ekman and Oege de
                 Moor",
  title =        "Sound and extensible renaming for {Java}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "277--294",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449787",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Descriptive names are crucial to understand code.
                 However, good names are notoriously hard to choose and
                 manually changing a globally visible name can be a
                 maintenance nightmare. Hence, tool support for
                 automated renaming is an essential aid for developers
                 and widely supported by popular development
                 environments.\par

                 This work improves on two limitations in current
                 refactoring tools: too weak preconditions that lead to
                 unsoundness where names do not bind to the correct
                 declarations after renaming, and too strong
                 preconditions that prevent renaming of certain
                 programs. We identify two main reasons for unsoundness:
                 complex name lookup rules make it hard to define
                 sufficient preconditions, and new language features
                 require additional preconditions. We alleviate both
                 problems by presenting a novel extensible technique for
                 creating symbolic names that are guaranteed to bind to
                 a desired entity in a particular context by inverting
                 lookup functions. The inverted lookup functions can
                 then be tailored to create qualified names where
                 otherwise a conflict would occur, allowing the
                 refactoring to proceed and improve on the problem with
                 too strong preconditions.\par

                 We have implemented renaming for Java as an extension
                 to the JastAdd Extensible Java Compiler and integrated
                 it in Eclipse. We show examples for which other
                 refactoring engines have too weak preconditions, as
                 well as examples where our approach succeeds in
                 renaming entities by inserting qualifications. To
                 validate the extensibility of the approach we have
                 implemented renaming support for Java 5 and AspectJ
                 like inter-type declarations as modular extensions to
                 the initial Java 1.4 refactoring engine. The renaming
                 engine is only a few thousand lines of code including
                 extensions and performance is on par with industrial
                 strength refactoring tools.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "extensible compilers; name analysis; refactoring;
                 renaming",
}

@Article{Tansey:2008:ARI,
  author =       "Wesley Tansey and Eli Tilevich",
  title =        "Annotation refactoring: inferring upgrade
                 transformations for legacy applications",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "295--312",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449788",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Since annotations were added to the Java language,
                 many frameworks have moved to using annotated Plain Old
                 Java Objects (POJOs) in their newest releases. Legacy
                 applications are thus forced to undergo extensive
                 restructuring in order to migrate from old framework
                 versions to new versions based on annotations ({\em
                 Version Lock-in\/}). Additionally, because annotations
                 are embedded in the application code, changing between
                 framework vendors may also entail largescale manual
                 changes ({\em Vendor Lock-in\/}).\par

                 This paper presents a novel refactoring approach that
                 effectively solves these two problems. Our approach
                 infers a concise set of semantics-preserving
                 transformation rules from two versions of a single
                 class. Unlike prior approaches that detect only simple
                 structural refactorings, our algorithm can infer
                 general composite refactorings and is more than 97\%
                 accurate on average. We demonstrate the effectiveness
                 of our approach by automatically upgrading more than
                 80K lines of the unit testing code of four open-source
                 Java applications to use the latest version of the
                 popular JUnit testing framework.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "annotations; eclipse; frameworks; Java; JUnit;
                 metadata; refactoring; upgrading",
}

@Article{Dagenais:2008:ESA,
  author =       "Barth{\'e}l{\'e}my Dagenais and Laurie Hendren",
  title =        "Enabling static analysis for partial {Java} programs",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "313--328",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449790",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software engineering tools often deal with the source
                 code of programs retrieved from the web or source code
                 repositories. Typically, these tools only have access
                 to a subset of a program's source code (one file or a
                 subset of files) which makes it difficult to build a
                 complete and typed intermediate representation (IR).
                 Indeed, for incomplete object-oriented programs, it is
                 not always possible to completely disambiguate the
                 syntactic constructs and to recover the declared type
                 of certain expressions because the declaration of many
                 types and class members are not accessible.\par

                 We present a framework that performs partial type
                 inference and uses heuristics to recover the declared
                 type of expressions and resolve ambiguities in partial
                 Java programs. Our framework produces a complete and
                 typed IR suitable for further static analysis. We have
                 implemented this framework and used it in an empirical
                 study on four large open source systems which shows
                 that our system recovers most declared types with a low
                 error rate, even when only one class is accessible.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Java; partial programs; type inference",
}

@Article{Ferrara:2008:SUC,
  author =       "Pietro Ferrara and Francesco Logozzo and Manuel
                 Fahndrich",
  title =        "Safer unsafe code for {.NET}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "329--346",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449791",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The .NET intermediate language (MSIL) allows
                 expressing both statically verifiable memory and type
                 safe code (typically called managed), as well as unsafe
                 code using direct pointer manipulations. Unsafe code
                 can be expressed in C\# by marking regions of code as
                 {\em unsafe}. Writing unsafe code can be useful where
                 the rules of managed code are too strict. The obvious
                 drawback of unsafe code is that it opens the door to
                 programming errors typical of C and C++, namely memory
                 access errors such as buffer overruns. Worse, a single
                 piece of unsafe code may corrupt memory and destabilize
                 the entire runtime or allow attackers to compromise the
                 security of the platform.\par

                 We present a new static analysis based on abstract
                 interpretation to check memory safety for unsafe code
                 in the .NET framework. The core of the analysis is a
                 new numerical abstract domain, Strp, which is used to
                 efficiently compute memory invariants. Strp is combined
                 with lightweight abstract domains to raise the
                 precision, yet achieving scalability.\par

                 We implemented this analysis in Clousot, a generic
                 static analyzer for .NET. In combination with contracts
                 expressed in FoxTrot, an MSIL based annotation language
                 for .NET, our analysis provides {\em static\/} safety
                 guarantees on memory accesses in unsafe code. We tested
                 it on all the assemblies of the .NET framework. We
                 compare our results with those obtained using existing
                 domains, showing how they are either too imprecise
                 ({\em e.g.}, Intervals or Octagons) or too expensive
                 (Polyhedra) to be used in practice.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     ".NET; abstract domains; abstract interpretation;
                 bounds checking; design by contract; pointer indexing;
                 static analysis",
}

@Article{Naeem:2008:TLA,
  author =       "Nomair A. Naeem and Ondrej Lhotak",
  title =        "Typestate-like analysis of multiple interacting
                 objects",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "347--366",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449792",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a static analysis of
                 typestate-like temporal specifications of groups of
                 interacting objects, which are expressed using
                 tracematches. Whereas typestate expresses a temporal
                 specification of one object, a tracematch state may
                 change due to operations on any of a set of related
                 objects bound by the tracematch. The paper proposes a
                 lattice-based operational semantics equivalent to the
                 original tracematch semantics but better suited to
                 static analysis. The paper defines a static analysis
                 that computes precise local points-to sets and tracks
                 the flow of individual objects, thereby enabling strong
                 updates of the tracematch state. The analysis has been
                 proved sound with respect to the semantics. A
                 context-sensitive version of the analysis has been
                 implemented as instances of the IFDS and IDE
                 algorithms. The analysis was evaluated on tracematches
                 used in earlier work and found to be very precise.
                 Remaining imprecisions could be eliminated with more
                 precise modeling of references from the heap and of
                 exceptional control flow.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "static analysis; tracematches; typestate",
}

@Article{Georges:2008:JPE,
  author =       "Andy Georges and Lieven Eeckhout and Dries Buytaert",
  title =        "{Java} performance evaluation through rigorous replay
                 compilation",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "367--384",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449794",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A managed runtime environment, such as the Java
                 virtual machine, is non-trivial to benchmark. Java
                 performance is affected in various complex ways by the
                 application and its input, as well as by the virtual
                 machine (JIT optimizer, garbage collector, thread
                 scheduler, etc.). In addition, non-determinism due to
                 timer-based sampling for JIT optimization, thread
                 scheduling, and various system effects further
                 complicate the Java performance benchmarking
                 process.\par

                 Replay compilation is a recently introduced Java
                 performance analysis methodology that aims at
                 controlling non-determinism to improve experimental
                 repeatability. The key idea of replay compilation is to
                 control the compilation load during experimentation by
                 inducing a pre-recorded compilation plan at replay
                 time. Replay compilation also enables teasing apart
                 performance effects of the application versus the
                 virtual machine.\par

                 This paper argues that in contrast to current practice
                 which uses a single compilation plan at replay time,
                 multiple compilation plans add statistical rigor to the
                 replay compilation methodology. By doing so, replay
                 compilation better accounts for the variability
                 observed in compilation load across compilation plans.
                 In addition, we propose matched-pair comparison for
                 statistical data analysis. Matched-pair comparison
                 considers the performance measurements per compilation
                 plan before and after an innovation of interest as a
                 pair, which enables limiting the number of compilation
                 plans needed for accurate performance analysis compared
                 to statistical analysis assuming unpaired
                 measurements.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "benchmarking; Java; matched-pair comparison;
                 performance evaluation; replay compilation; virtual
                 machine",
}

@Article{Kawachiya:2008:ARM,
  author =       "Kiyokuni Kawachiya and Kazunori Ogata and Tamiya
                 Onodera",
  title =        "Analysis and reduction of memory inefficiencies in
                 {Java} strings",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "385--402",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449795",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes a novel approach to reduce the
                 memory consumption of Java programs, by focusing on
                 their 'string memory inefficiencies'. In recent Java
                 applications, string data occupies a large amount of
                 the heap area. For example, about 40\% of the live heap
                 area is used for string data when a production J2EE
                 application server is running. By investigating the
                 string data in the live heap, we identified two types
                 of memory inefficiencies -- 'duplication' and 'unused
                 literals'. In the heap, there are many string objects
                 that have the same values. There also exist many string
                 literals whose values are not actually used by the
                 application. Since these inefficiencies exist as live
                 objects, they cannot be eliminated by existing garbage
                 collection techniques, which only remove dead objects.
                 Quantitative analysis of Java heaps in real
                 applications revealed that more than 50\% of the string
                 data in the live heap is wasted by these
                 inefficiencies. To reduce the string memory
                 inefficiencies, this paper proposes two techniques at
                 the Java virtual machine level, 'StringGC' for
                 eliminating duplicated strings at the time of garbage
                 collection, and 'Lazy Body Creation' for delaying part
                 of the literal instantiation until the literal's value
                 is actually used. We also present an interesting
                 technique at the Java program level, which we call
                 'BundleConverter', for preventing unused message
                 literals from being instantiated. Prototype
                 implementations on a production Java virtual machine
                 have achieved about 18\% reduction of the live heap in
                 the production application server. The proposed
                 techniques could also reduce the live heap of standard
                 Java benchmarks by 11.6\% on average, without
                 noticeable performance degradation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "footprint analysis and reduction; garbage collection;
                 Java; memory management; string",
}

@Article{Prokopski:2008:APC,
  author =       "Gregory B. Prokopski and Clark Verbrugge",
  title =        "Analyzing the performance of code-copying virtual
                 machines",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "403--422",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449796",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many popular programming languages use
                 interpreter-based execution for portability, supporting
                 dynamic or reflective properties, and ease of
                 implementation. {\em Code-copying\/} is an optimization
                 technique for interpreters that reduces the performance
                 gap between interpretation and {\em JIT\/} compilation,
                 offering significant speedups over direct-threading
                 interpretation. Due to varying language features and
                 virtual machine design, however, not all languages
                 benefit from codecopying to the same extent. We
                 consider here properties of interpreted languages, and
                 in particular bytecode and virtual machine construction
                 that enhance or reduce the impact of code-copying. We
                 implemented code-copying and compared performance with
                 the original direct-threading virtual machines for
                 three languages, Java (SableVM), OCaml, and Ruby
                 (Yarv), examining performance on three different
                 architectures, ia32 (Pentium 4), x86\_64 (AMD64) and
                 PowerPC (G5). Best speedups are achieved on ia32 by
                 OCaml (maximum 4.88 times, 2.81 times on average),
                 where a small and simple bytecode design facilitates
                 improvements to branch prediction brought by
                 code-copying. Yarv only slightly improves over
                 direct-threading; large working sizes of bytecodes, and
                 a relatively small fraction of time spent in the actual
                 interpreter loop both limit the application of
                 codecopying and its overall net effect. We are able to
                 show that simple ahead of time analysis of VM and
                 execution properties can help determine the suitability
                 of code-copying for a particular VM before an
                 implementation of code-copying is even attempted.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "branch prediction; code-copying; compiler
                 optimization; dynamic analysis; performance; virtual
                 machines",
}

@Article{Moors:2008:GHK,
  author =       "Adriaan Moors and Frank Piessens and Martin Odersky",
  title =        "Generics of a higher kind",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "423--438",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449798",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "With Java 5 and C\# 2.0, first-order parametric
                 polymorphism was introduced in mainstream
                 object-oriented programming languages under the name of
                 generics. Although the first-order variant of generics
                 is very useful, it also imposes some restrictions: it
                 is possible to abstract over a type, but the resulting
                 type constructor cannot be abstracted over. This can
                 lead to code duplication. We removed this restriction
                 in Scala, by allowing type constructors as type
                 parameters and abstract type members. This paper
                 presents the design and implementation of the resulting
                 type constructor polymorphism. Furthermore, we study
                 how this feature interacts with existing
                 object-oriented constructs, and show how it makes the
                 language more expressive.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "higher-kinded types; higher-order genericity; Scala;
                 type constructor polymorphism",
}

@Article{Oliveira:2008:VPR,
  author =       "Bruno C.d.S. Oliveira and Meng Wang and Jeremy
                 Gibbons",
  title =        "The visitor pattern as a reusable, generic, type-safe
                 component",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "439--456",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449799",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The V\par

                 ISITOR design pattern shows how to separate the
                 structure of an object hierarchy from the behaviour of
                 traversals over that hierarchy. The pattern is very
                 flexible; this very flexibility makes it difficult to
                 capture the pattern as anything more formal than prose,
                 pictures and prototypes.

                 We show how to capture the essence of the V\par

                 ISITOR pattern as a reusable software library, by using
                 advanced type system features appearing in modern
                 object-oriented languages such as Scala. We preserve
                 {\em type-safety statically and modularly\/}: no
                 reflection or similar mechanisms are used and modules
                 can be independently compiled. The library is {\em
                 generic}, in two senses: not only is it parametrised by
                 both the return type and the shape of the object
                 hierarchy, but also it allows a number of
                 implementation choices (internal versus external
                 control, imperative versus functional behaviour,
                 orthogonal aspects such as tracing and memoisation) to
                 be specified by parameters rather than fixed in early
                 design decisions. Finally, we propose a generalised
                 {\em datatype\/} -like notation,on top of our visitor
                 library: this provides a convenient functional
                 decomposition style in object-oriented languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "algebraic datatypes; design patterns; program
                 extensibility; software components; traversal; visitor
                 pattern",
}

@Article{Nystrom:2008:CTO,
  author =       "Nathaniel Nystrom and Vijay Saraswat and Jens Palsberg
                 and Christian Grothoff",
  title =        "Constrained types for object-oriented languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "457--474",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449800",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "X10 is a modern object-oriented language designed for
                 productivity and performance in concurrent and
                 distributed systems. In this setting, dependent types
                 offer significant opportunities for detecting design
                 errors statically, documenting design decisions,
                 eliminating costly run-time checks (e.g., for array
                 bounds, null values), and improving the quality of
                 generated code.\par

                 We present the design and implementation of {\em
                 constrained types}, a natural, simple, clean, and
                 expressive extension to object-oriented programming: A
                 type C{c} names a class or interface C and a {\em
                 constraint\/} c on the immutable state of C and
                 in-scope final variables. Constraints may also be
                 associated with class definitions (representing class
                 invariants) and with method and constructor definitions
                 (representing preconditions). Dynamic casting is
                 permitted. The system is parametric on the underlying
                 constraint system: the compiler supports a simple
                 equality-based constraint system but, in addition,
                 supports extension with new constraint systems using
                 compiler plugins.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "constraints; dependent types; object-oriented
                 programming languages",
}

@Article{Bellamy:2008:ELT,
  author =       "Ben Bellamy and Pavel Avgustinov and Oege de Moor and
                 Damien Sereni",
  title =        "Efficient local type inference",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "475--492",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449802",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Inference of static types for local variables in Java
                 bytecode is the first step of any serious tool that
                 manipulates bytecode, be it for decompilation,
                 transformation or analysis. It is important, therefore,
                 to perform that step as accurately and efficiently as
                 possible. Previous work has sought to give solutions
                 with good worst-case complexity.\par

                 We present a novel algorithm, which is optimised for
                 the common case rather than worst-case performance. It
                 works by first finding a set of minimal typings that
                 are valid for all assignments, and then checking
                 whether these minimal typings satisfy all uses. Unlike
                 previous algorithms, it does not explicitly build a
                 data structure of type constraints, and it is easy to
                 implement efficiently. We prove that the algorithm
                 produces a typing that is both sound (obeying the rules
                 of the language) and as tight as possible.\par

                 We then go on to present extensive experiments,
                 comparing the results of the new algorithm against the
                 previously best known method. The experiments include
                 bytecode that is generated in other ways than
                 compilation of Java source. The new algorithm is always
                 faster, typically by a factor 6, but on some real
                 benchmarks the gain is as high as a factor of 92.
                 Furthermore, whereas that previous method is sometimes
                 suboptimal, our algorithm always returns a tightest
                 possible type.\par

                 We also discuss in detail how we handle primitive
                 types, which is a difficult issue due to the
                 discrepancy in their treatment between Java bytecode
                 and Java source. For the application to decompilation,
                 however, it is very important to handle this
                 correctly.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "program analysis; type inference",
}

@Article{Roberson:2008:ESM,
  author =       "Michael Roberson and Melanie Harries and Paul T. Darga
                 and Chandrasekhar Boyapati",
  title =        "Efficient software model checking of soundness of type
                 systems",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "493--504",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449803",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents novel techniques for checking the
                 soundness of a type system automatically using a
                 software model checker. Our idea is to systematically
                 generate every type correct intermediate program state
                 (within some finite bounds), execute the program one
                 step forward if possible using its small step
                 operational semantics, and then check that the
                 resulting intermediate program state is also type
                 correct--but do so efficiently by detecting
                 similarities in this search space and pruning away
                 large portions of the search space. Thus, given only a
                 specification of type correctness and the small step
                 operational semantics for a language, our system
                 automatically checks type soundness by checking that
                 the progress and preservation theorems hold for the
                 language (albeit for program states of at most some
                 finite size). Our preliminary experimental results on
                 several languages--including a language of integer and
                 boolean expressions, a simple imperative programming
                 language, an object-oriented language which is a subset
                 of Java, and a language with ownership types--indicate
                 that our approach is feasible and that our search space
                 pruning techniques do indeed significantly reduce what
                 is otherwise an extremely large search space. Our paper
                 thus makes contributions both in the area of checking
                 soundness of type systems, and in the area of reducing
                 the state space of a software model checker.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "software model checking; type soundness",
}

@Article{Smith:2008:JTI,
  author =       "Daniel Smith and Robert Cartwright",
  title =        "{Java} type inference is broken: can we fix it?",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "505--524",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449804",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Java 5, the most recent major update to the Java
                 Programming Language, introduced a number of
                 sophisticated features, including a major extension to
                 the type system. While the technical details of these
                 new features are complex, much of this complexity is
                 hidden from the typical Java developer by an ambitious
                 type inference mechanism. Unfortunately, the extensions
                 to the Java 5 type system were so novel that their
                 technical details had not yet been thoroughly
                 investigated in the research literature. As a result,
                 the Java 5 compiler includes a pragmatic but flawed
                 type inference algorithm that is, by design, neither
                 sound nor locally complete. The language specification
                 points out that neither of these failures is
                 catastrophic: the correctness of potentially-unsound
                 results must be verified during type checking; and
                 incompleteness can usually be worked around by manually
                 providing the method type parameter bindings for a
                 given call site.\par

                 This paper dissects the type inference algorithm of
                 Java 5 and proposes a significant revision that is
                 sound and able to calculate correct results where the
                 Java 5 algorithm fails. The new algorithm is locally
                 complete with the exception of a difficult corner case.
                 Moreover, the new algorithm demonstrates that several
                 arbitrary restrictions in the Java type system---most
                 notably the ban on lower-bounded type parameter
                 declarations and the limited expressibility of
                 intersection types---are unnecessary. We hope that this
                 work will spur the evolution of a more coherent, more
                 comprehensive generic type system for Java.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bounded quantification; generics; intersection types;
                 parameterized types; polymorphic methods; subtyping;
                 type argument inference; type inference; union types;
                 wildcards",
}

@Article{Schippers:2008:DBS,
  author =       "Hans Schippers and Dirk Janssens and Michael Haupt and
                 Robert Hirschfeld",
  title =        "Delegation-based semantics for modularizing
                 crosscutting concerns",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "525--542",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449806",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe semantic mappings of four high-level
                 programming languages to our delegation-based machine
                 model for aspect-oriented programming. One of the
                 languages is a class-based object-oriented one. The
                 other three represent extensions thereof that support
                 various approaches to modularizing crosscutting
                 concerns. We explain informally that an operational
                 semantics expressed in terms of the model's concepts
                 preserves the behavior of a program written in one of
                 the high-level languages. We hence argue our model to
                 be semantically sound in that sense, as well as
                 sufficiently expressive in order to correctly support
                 features such as class-based object-oriented
                 programming, the open-classes and pointcut-and-advice
                 flavors of aspect-oriented programming, and dynamic
                 layers. For the latter, being a core feature of
                 context-oriented programming, we also provide a formal
                 semantics.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented semantics; context-oriented
                 programming; modularization; semantic mappings",
}

@Article{Baldi:2008:TAL,
  author =       "Pierre F. Baldi and Cristina V. Lopes and Erik J.
                 Linstead and Sushil K. Bajracharya",
  title =        "A theory of aspects as latent topics",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "543--562",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449807",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "After more than 10 years, Aspect-Oriented Programming
                 (AOP) is still a controversial idea. While the concept
                 of aspects appeals to everyone's intuitions, concrete
                 AOP solutions often fail to convince researchers and
                 practitioners alike. This discrepancy results in part
                 from a lack of an adequate theory of aspects, which in
                 turn leads to the development of AOP solutions that are
                 useful in limited situations.\par

                 We propose a new theory of aspects that can be
                 summarized as follows: concerns are latent topics that
                 can be automatically extracted using statistical topic
                 modeling techniques adapted to software. Software
                 scattering and tangling can be measured precisely by
                 the entropies of the underlying topic-over-files and
                 files-over-topics distributions. Aspects are latent
                 topics with high scattering entropy.\par

                 The theory is validated empirically on both the large
                 scale, with a study of 4,632 Java projects, and the
                 small scale, with a study of 5 individual projects.
                 From these analyses, we identify two dozen topics that
                 emerge as general-purpose aspects across multiple
                 projects, as well as project-specific topics/concerns.
                 The approach is also shown to produce results that are
                 compatible with previous methods for identifying
                 aspects, and also extends them.\par

                 Our work provides not only a concrete approach for
                 identifying aspects at several scales in an
                 unsupervised manner but, more importantly, a
                 formulation of AOP grounded in information theory. The
                 understanding of aspects under this new perspective
                 makes additional progress toward the design of models
                 and tools that facilitate software development.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "aspect-oriented programming; scattering; tangling;
                 topic models",
}

@Article{Muschevici:2008:MDP,
  author =       "Radu Muschevici and Alex Potanin and Ewan Tempero and
                 James Noble",
  title =        "Multiple dispatch in practice",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "563--582",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449808",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multiple dispatch uses the run time types of more than
                 one argument to a method call to determine which method
                 body to run. While several languages over the last 20
                 years have provided multiple dispatch, most
                 object-oriented languages still support only single
                 dispatch forcing programmers to implement multiple
                 dispatch manually when required. This paper presents an
                 empirical study of the use of multiple dispatch in
                 practice, considering six languages that support
                 multiple dispatch, and also investigating the potential
                 for multiple dispatch in Java programs. We hope that
                 this study will help programmers understand the uses
                 and abuses of multiple dispatch; virtual machine
                 implementors optimise multiple dispatch; and language
                 designers to evaluate the choice of providing multiple
                 dispatch in new programming languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "double dispatch; empirical software engineering;
                 instanceof; multimethods; multiple dispatch",
}

@Article{Bouillet:2008:TBA,
  author =       "Eric Bouillet and Mark Feblowitz and Zhen Liu and
                 Anand Ranganathan and Anton Riabov",
  title =        "A tag-based approach for the design and composition of
                 information processing applications",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "585--602",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449810",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In the realm of component-based software systems,
                 pursuers of the holy grail of automated application
                 composition face many significant challenges. In this
                 paper we argue that, while the general problem of
                 automated composition in response to high-level goal
                 statements is indeed very difficult to solve, we can
                 realize composition in a restricted context, supporting
                 varying degrees of manual to automated assembly for
                 specific types of applications. We propose a novel
                 paradigm for composition in flow-based information
                 processing systems, where application design and
                 component development are facilitated by the pervasive
                 use of faceted, tag-based descriptions of processing
                 goals, of component capabilities, and of structural
                 patterns of families of application. The facets and
                 tags represent different dimensions of both data and
                 processing, where each facet is modeled as a finite set
                 of tags that are defined in a controlled folksonomy.
                 All data flowing through the system, as well as the
                 functional capabilities of components are described
                 using tags. A customized AI planner is used to
                 automatically build an application, in the form of a
                 flow of components, given a high-level goal
                 specification in the form of a set of tags. End-users
                 use an automatically populated faceted search and
                 navigation mechanism to construct these high-level
                 goals. We also propose a novel software engineering
                 methodology to design and develop a set of reusable,
                 well-described components that can be assembled into a
                 variety of applications. With examples from a case
                 study in the Financial Services domain, we demonstrate
                 that composition using a faceted, tag-based application
                 design is not only possible, but also extremely useful
                 in helping end-users create situational applications
                 from a wide variety of available components.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automated application assembly; component reuse;
                 composition; faceted navigation; programmable web; tag
                 cloud; tag-based component description",
}

@Article{Simpkins:2008:TAP,
  author =       "Christopher Simpkins and Sooraj Bhat and Charles
                 {Isbell, Jr.} and Michael Mateas",
  title =        "Towards adaptive programming: integrating
                 reinforcement learning into a programming language",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "603--614",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449955.1449811",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Current programming languages and software engineering
                 paradigms are proving insufficient for building
                 intelligent multi-agent systems--such as interactive
                 games and narratives--where developers are called upon
                 to write increasingly complex behavior for agents in
                 dynamic environments. A promising solution is to build
                 adaptive systems; that is, to develop software written
                 specifically to adapt to its environment by changing
                 its behavior in response to what it observes in the
                 world. In this paper we describe a new programming
                 language, An Adaptive Behavior Language (A2BL), that
                 implements adaptive programming primitives to support
                 partial programming, a paradigm in which a programmer
                 need only specify the details of behavior known at
                 code-writing time, leaving the run-time system to learn
                 the rest. Partial programming enables programmers to
                 more easily encode software agents that are difficult
                 to write in existing languages that do not offer
                 language-level support for adaptivity. We motivate the
                 use of partial programming with an example agent coded
                 in a cutting-edge, but non-adaptive agent programming
                 language (ABL), and show how A2BL can encode the same
                 agent much more naturally.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "adaptive programming; object-oriented programming;
                 partial programming; reinforcement learning",
}

@Article{Gabriel:2008:DD,
  author =       "Richard P. Gabriel",
  title =        "Designed as designer",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "10",
  pages =        "617--632",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1449764.1449813",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 22 09:57:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Conceptual integrity arises not (simply) from one mind
                 or from a small number of agreeing resonant minds, but
                 from sometimes hidden co-authors and the thing designed
                 itself.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "conceptual integrity; design",
}

@Article{Bailey:2008:SPLa,
  author =       "Mark W. Bailey",
  title =        "{SIGPLAN} programming language curriculum workshop:
                 {Workshop} organization",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "1--6",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480830",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bailey:2008:SPLb,
  author =       "Mark W. Bailey",
  title =        "{SIGPLAN} programming language curriculum workshop:
                 {Discussion} Summaries and recommendations",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "6--29",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480831",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bailey:2008:SPLc,
  author =       "Mark W. Bailey",
  title =        "{SIGPLAN} programming language curriculum workshop:
                 {Workshop} report summary",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "29--30",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480832",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Allen:2008:STC,
  author =       "Eric Allen",
  title =        "Some things that computer science majors should know",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "32--35",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480834",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Bailey:2008:IPL,
  author =       "Mark W. Bailey",
  title =        "Injecting programming language concepts throughout the
                 curriculum: an inclusive strategy",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "36--38",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480835",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As research in programming language
                 design,implementation,and application advances,we must
                 regularly revisit the undergraduate curriculum to
                 ensure course content advances similarly. However,no
                 matter how diligent our efforts,the undergraduate
                 curriculum will continue to undergo pressure from all
                 fields of the discipline to include courses covering
                 those fields. Though we could advocate for core
                 placement of programming language courses,it is
                 likely,even inevitable,that a growing number of
                 colleges and universities will choose not to mandate
                 programming language courses for their degree programs.
                 Thus,we must develop an inclusive strategy that
                 encourages the teaching of programming language topics
                 even in colleges and universities that choose not to
                 devote an entire course to the study of them. I have
                 proposed one such strategy that supports the injection
                 of programming language concepts into other courses of
                 interest to both students and faculty.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming language curriculum",
}

@Article{Bodik:2008:SLU,
  author =       "Rastislav Bodik",
  title =        "Small languages in an undergraduate {PL\slash
                 Compiler} course",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "39--44",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480836",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Bruce:2008:PLL,
  author =       "Kim Bruce and Stephen N. Freund",
  title =        "Programming languages in a liberal arts education",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "45--49",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480837",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Liberal arts curricula emphasize breadth of a
                 student's educational experience, critical reasoning,
                 and intellectual discourse to a greater degree than
                 pre-professional training or engineering programs. This
                 substantially impacts how the topic of programming
                 languages (and computer science in general) is taught.
                 We highlight some key aspects of teaching programming
                 languages in a liberal arts program, and we discuss why
                 we believe this approach prepares students for problems
                 they will encounter throughout their careers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Bruce:2008:PLP,
  author =       "Kim Bruce and Stephen N. Freund",
  title =        "Programming languages as part of core computer
                 science",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "50--54",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480838",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "While the programming languages course played a key
                 role in Curricula '68, '78, and '91, Curriculum 2001
                 replaced most of the content in programming languages
                 with sections on learning to program. We argue that the
                 need for a programming languages course has not
                 diminished, but instead increased, especially as we
                 move into an era of many-core computing.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Cook:2008:HLP,
  author =       "William R. Cook",
  title =        "High-level problems in teaching undergraduate
                 programming languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "55--58",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480839",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper discusses several problems in teaching
                 programming languages. A language tends to indoctrinate
                 its users and desensitize us to its problems and
                 limitations. In addition, many language issues don't
                 arise until programs reach a certain scale, which can
                 be difficult to do in a one-semester course. No
                 solution is proposed; instead the focus is to better
                 understand the difficulty of designing an effective
                 curriculum. One way to cut through the accidental
                 combination of surface features in programming
                 languages is to focus on semantics and programs
                 themselves as object of study.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Felleisen:2008:WTP,
  author =       "Matthias Felleisen",
  title =        "Why teach programming languages in this day and age
                 and how to go about it",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "59--61",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480840",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The question is not whether a computing curriculum
                 should include a rigorous course on programming
                 languages, but which topics make up the minimum that we
                 wish every student to understand, and how we should
                 teach these topics.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Fisher:2008:WNM,
  author =       "Kathleen Fisher",
  title =        "We need more than one: why students need a
                 sophisticated understanding of programming languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "62--65",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480841",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Over the course of their careers, students will need
                 to master a number of diverse programming languages
                 because different languages are best suited to
                 different tasks and because the set of 'popular'
                 languages evolves over time. In addition, sometimes the
                 best way to solve a problem is to invent a little
                 language particular to the task. Students need to be
                 able to evaluate which languages to use for which tasks
                 and whether to design a domain-specific language.
                 Consequently, it is critical that students develop a
                 sophisticated understanding of programming languages
                 during their undergraduate studies.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Fisler:2008:IDS,
  author =       "Kathi Fisler",
  title =        "Implementing domain-specific languages as the
                 foundation of an honors intro {CS} course",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "66--70",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480842",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This position paper describes an honors introductory
                 Computer Science course focused on designing and
                 implementing domain-specific programming languages. The
                 course presents programming language design as a
                 fundamental tool for software engineering. Students
                 build languages for prototypes of several nontrivial
                 products (such as PowerPoint and TurboTax). The course
                 aims to convey fundamental ideas behind programming
                 languages in a form that mainstream Computer Science
                 students can appreciate early in their careers. The
                 paper includes descriptions of and links to assignments
                 and course materials.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Harper:2008:PPP,
  author =       "Robert Harper",
  title =        "Position paper: practical foundations for programming
                 languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "71--73",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480843",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hind:2008:ADB,
  author =       "Michael Hind",
  title =        "Addressing the disconnect between the good and the
                 popular",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "74--76",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480844",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "For several decades universities have taught
                 programming languages as a fundamental part of their
                 undergraduate curriculum. These courses cover the core
                 topics used in the design of good programming
                 languages. However, widely used commercial languages
                 quite often seem to go against the conventional wisdom
                 of good language design that is taught in these
                 courses. This disconnect between what is taught as good
                 language design and what languages are used in industry
                 has put the programming language course in a bind.
                 Specifically, as computer science departments feel the
                 increased pressure to add new emerging topics, many
                 departments are choosing to remove the programming
                 language course from the core curriculum. In this
                 position paper, we argue that the disconnect between
                 good language design and industry practice is exactly
                 why a programming language course should be a crucial
                 ingredient in any undergraduate computer science
                 education.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Hughes:2008:ETF,
  author =       "John Hughes",
  title =        "Experiences from teaching functional programming at
                 {Chalmers}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "77--80",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480845",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Krishnamurthi:2008:TPL,
  author =       "Shriram Krishnamurthi",
  title =        "Teaching programming languages in a post-{Linnaean}
                 age",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "81--83",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480846",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programming language 'paradigms' are a moribund and
                 tedious legacy of a bygone age. Modern language
                 designers pay them no respect, so why do our courses
                 slavishly adhere to them? This paper argues that we
                 should abandon this method of teaching languages,
                 offers an alternative, reconciles an important split in
                 programming language education, and describes a
                 textbook that explores these matters.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Larus:2008:PRC,
  author =       "James Larus",
  title =        "{PL} research and its consequences on {PL}
                 curriculum",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "84--86",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480847",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Lea:2008:LPE,
  author =       "Doug Lea and David F. Bacon and David Grove",
  title =        "Languages and performance engineering: method,
                 instrumentation, and pedagogy",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "87--92",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480848",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programs encounter increasingly complex and fragile
                 mappings to computing platforms, resulting in
                 performance characteristics that are often mysterious
                 to students, practitioners, and even researchers. We
                 discuss some steps toward an experimental methodology
                 that demands and provides a deep understanding of
                 complete systems, the necessary instrumentation and
                 tools to support such a methodology, and a curriculum
                 that teaches the methodology and tools as a fundamental
                 part of the discipline.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Leavens:2008:UCP,
  author =       "Gary T. Leavens",
  title =        "Use concurrent programming models to motivate teaching
                 of programming languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "93--98",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480849",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Undergraduate computer science students typically have
                 only a limited understanding of their favorite
                 languages and no inkling of other programming
                 paradigms. Yet modern programmers typically work with
                 several languages, and the availability of cheap
                 concurrency is exposing fundamental problems in
                 standard concurrent programming techniques (mutable
                 objects and threads). This situation presents a great
                 opportunity: by exploring nonstandard techniques for
                 gaining intellectual control over concurrent programs,
                 one can motivate and teach important semantic concepts
                 (such as scoping) and important programming concepts
                 (such as functional abstraction). Such a curriculum
                 stimulates student interest in exploring new
                 programming paradigms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "computational models; concepts; concurrency;
                 paradigms; programming language curriculum; programming
                 models",
}

@Article{Pollock:2008:RPT,
  author =       "Lori Pollock",
  title =        "Rethinking pedagogy for teaching {PL} with more than
                 {PL} concepts in mind",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "99--103",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480850",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Individual department goals drive undergraduate
                 computer science educators to teach with varying
                 priorities on preparing students for continuing to
                 graduate school or embarking on a career that leverages
                 their education immediately after college. Programming
                 languages play a key role in that education for both
                 student profiles, even in curricula that include no
                 core programming language concepts course. The
                 'fattening' of our discipline into many subareas has
                 prompted curricula reviews and rethinking of the
                 undergraduate CS content, including programming
                 language concepts (PL) and where they are taught in the
                 curriculum. This paper proposes that we also rethink
                 the pedagogy for teaching PL with diversity in mind.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Reges:2008:MPL,
  author =       "Stuart Reges",
  title =        "Marketing the programming languages course",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "104--107",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480851",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programming languages as a required course is
                 disappearing from undergraduate computer science
                 programs. This is not surprising given that the course
                 often proves to be challenging for faculty to teach and
                 unpopular among students. The author argues that the
                 best way to convince departments to retain this
                 material is to emphasize the benefit to undergraduates
                 of stretching their understanding of programming early
                 in their careers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Reynolds:2008:STT,
  author =       "John C. Reynolds",
  title =        "Some thoughts on teaching programming and programming
                 languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "108--110",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480852",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It is argued that the teaching of programming is
                 central to the education of skilled computer
                 professionals, that the teaching of programming
                 languages is central to the teaching of programming.
                 that these topics must include the specification,
                 structuring, and verification of software, and that
                 they should be taught with the same regard to rigor and
                 precision as in traditional mathematics.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming; programming languages; teaching;
                 undergraduate curriculum",
}

@Article{Rinard:2008:UPL,
  author =       "Martin Rinard",
  title =        "Using programming language concepts to teach general
                 thinking skills",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "111--118",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480853",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sestoft:2008:PLC,
  author =       "Peter Sestoft",
  title =        "Programming language concepts for software
                 developers",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "119--123",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480854",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This note describes and motivates our current plans
                 for an undergraduate course on programming language
                 concepts for software development students. We describe
                 the competences we expect students to acquire as well
                 as the topics covered by the course. We plan to use C\#
                 and Scheme as instruction languages, and will study the
                 implementation of Java and C\# with their underlying
                 platforms, the Java Virtual Machine and .NET Common
                 Language Runtime. We emphasize implementation exercises
                 and experiments. This comes at the expense of classical
                 compiler course subjects such as register allocation
                 and optimization of imperative loop-intensive code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Sheldon:2008:AOA,
  author =       "Mark A. Sheldon and Franklyn Turbak",
  title =        "An aspect-oriented approach to the undergraduate
                 programming language curriculum",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "124--129",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480855",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Three key forces are shaping the modern Computer
                 Science (CS) curriculum: (1) new topics/courses are
                 squeezing out existing ones; (2) a focus on 'big
                 picture' and interdisciplinary aspects of CS is leading
                 to curricula in which the traditional core courses +
                 electives model is being superseded by a more flexible
                 approach based on tracks/threads; and (3) project-based
                 courses are increasingly relying on a notion of {\em
                 just-in-time\/} teaching in which particular skills are
                 not bundled into a particular course, but are covered
                 at a point when they are needed for particular project
                 work.\par

                 The undergraduate programming language curriculum is
                 feeling the pressure of these forces. Core courses on
                 programming languages and compilers are being changed
                 to electives, relegated to a software/systems track, or
                 phased out altogether. Particular programming languages
                 and programming language concepts are being taught in a
                 more piecemeal fashion on an as-needed basis.
                 Unfortunately, these changes make it increasingly
                 likely that CS majors can graduate without being
                 exposed to certain 'big ideas' of programming
                 languages.\par

                 Programming languages (along with many other
                 subdisciplines of CS) contains ideas that every
                 well-educated computer scientist needs to know and
                 which are relevant to a wide variety of
                 projects/careers. In a CS curriculum based on tracks
                 and projects, how can we ensure that vital intellectual
                 components are not lost in the shuffle?\par

                 One way to think about this problem is to view the CS
                 curriculum as a collection of {\em aspects\/} that can
                 be combined in different arrangements to produce
                 various projects/courses. In this paper, we consider
                 the benefits and challenges of an aspect-oriented view
                 of the CS curriculum, particularly in regard to
                 programming language concepts.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Shivers:2008:WTP,
  author =       "Olin Shivers",
  title =        "Why teach programming languages",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "130--132",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480856",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "programming languages curriculum",
}

@Article{Wand:2008:PLF,
  author =       "Mitchell Wand and Daniel P. Friedman",
  title =        "Programming languages: fundamental concepts for
                 expanding and disciplining the mind",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "11",
  pages =        "133--135",
  month =        nov,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480828.1480857",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 31 12:36:25 MST 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this white paper, we propose a list of essential
                 concepts of programming languages, and discuss the
                 techniques we have used to teach these concepts.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "curricula",
}

@Article{Pistoia:2008:WPL,
  author =       "Marco Pistoia and {\'U}lfar Erlingsson",
  title =        "{Workshop on Programming Languages and Analysis for
                 Security (PLAS 2008)}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "12",
  pages =        "3--4",
  month =        dec,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1513443.1513445",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 17 17:31:15 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pistoia:2008:PPA,
  author =       "Marco Pistoia and {\'U}lfar Erlingsson",
  title =        "{PLAS 2008} paper abstracts",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "12",
  pages =        "5--8",
  month =        dec,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1513443.1513446",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 17 17:31:15 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chaudhuri:2008:TSD,
  author =       "Avik Chaudhuri and Prasad Naldurg and Sriram
                 Rajamani",
  title =        "A type system for data-flow integrity on {Windows
                 Vista}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "12",
  pages =        "9--20",
  month =        dec,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1513443.1513447",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 17 17:31:15 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Windows Vista operating system implements an
                 interesting model of multi-level integrity. We observe
                 that in this model, trusted code must participate in
                 any information-flow attack. Thus, it is possible to
                 eliminate such attacks by statically restricting
                 trusted code. We formalize this model by designing a
                 type system that can efficiently enforce data-flow
                 integrity on Windows Vista. Typechecking guarantees
                 that objects whose contents are statically trusted
                 never contain untrusted values, regardless of what
                 untrusted code runs in the environment. Some of Windows
                 Vista's runtime access checks are necessary for
                 soundness; others are redundant and can be optimized
                 away.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data-flow integrity; dynamic access control; explicit
                 substitution; hybrid type system",
}

@Article{Swamy:2008:VES,
  author =       "Nikhil Swamy and Michael Hicks",
  title =        "Verified enforcement of stateful information release
                 policies",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "12",
  pages =        "21--31",
  month =        dec,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1513443.1513448",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 17 17:31:15 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many organizations specify information release
                 policies to describe the terms under which sensitive
                 information may be released to other organizations.
                 This paper presents a new approach for ensuring that
                 security-critical software correctly enforces its
                 information release policy. Our approach has two parts.
                 First, an information release policy is specified as a
                 security automaton written in a new language called
                 AIR. Second, we enforce an AIR policy by translating it
                 into an API for programs written in lAIR, a core
                 formalism for a functional programming language. lAIR
                 uses a novel combination of dependent, affine, and
                 singleton types to ensure that the API is used
                 correctly. As a consequence we can certify that
                 programs written in lAIR meet the requirements of the
                 original AIR policy specification.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "affine types; certified evaluation; declassification;
                 dependent types; singleton types; state modifying
                 policies",
}

@Article{Pistoia:2008:PLP,
  author =       "Marco Pistoia and {\'U}lfar Erlingsson",
  title =        "Programming languages and program analysis for
                 security: a three-year retrospective",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "12",
  pages =        "32--39",
  month =        dec,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1513443.1513449",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 17 17:31:15 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software security has been traditionally enforced at
                 the level of operating systems. However, operating
                 systems have become increasingly large and complex, and
                 it is very difficult--if not impossible--to enforce
                 software security solely through them. Moreover,
                 operating-system security allows dealing primarily with
                 access-control policies on resources such as files and
                 network connections. However, attacks may happen at
                 both lower and higher levels of abstraction, and may
                 target the internal behavior of applications, such as
                 today's Web-based applications. Therefore, defenses
                 must offer protection at the level of applications.
                 Language-based security is the area of research that
                 studies how to enforce application-level security using
                 programming-language and program-analysis techniques.
                 This area of research has become very active with the
                 advent of Web applications. In 2006, the ACM SIGPLAN
                 has introduced a new yearly forum entirely dedicated to
                 the discussion of language-based-security research:
                 Programming Languages and Analysis for Security (PLAS).
                 This paper is a three-year survey of PLAS papers that
                 discusses the progress made in the area of
                 language-based security.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "language-based security; program analysis; programming
                 languages; security",
}

@Article{Harris:2009:LCT,
  author =       "Tim Harris",
  title =        "Language constructs for transactional memory",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "1--1",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480883",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Building concurrent shared-memory data structures is a
                 notoriously difficult problem, and so the widespread
                 move to multi-core and multi-processor hardware has led
                 to increasing interest in language constructs that may
                 make concurrent programming easier. One technique that
                 has been studied widely is the use of atomic blocks
                 built over transactional memory (TM): the programmer
                 marks a section of code as atomic, and the language
                 implementation speculatively executes it using
                 transactions. Transactions can run in parallel so long
                 as they access different data.\par

                 In this talk I'll introduce some of the challenges that
                 I've seen in building robust implementations of this
                 idea. What are the language design choices that exist?
                 What language features can be used inside atomic
                 blocks, and where can atomic blocks occur? Which uses
                 of atomic blocks should be considered correct, and
                 which uses should be considered 'racy'? What are the
                 likely impacts of different design choices on
                 performance? What are the impacts on flexibility for
                 the language implementer, and what are the impacts on
                 flexibility to the programmer using these
                 constructs?\par

                 I'll argue that one way of trying to resolve these
                 questions is to be rigorous about keeping the ideas of
                 atomic blocks and TM separate; in practice they've
                 often been conflated (not least in languages that I've
                 worked on). I'll argue that, when thinking about atomic
                 blocks, we should keep a wide range of possible
                 implementations in mind (for example, TM, lock
                 inference, or simply control over preemption).
                 Similarly, when thinking about TM, we should recognize
                 that it can be exposed to programmers through a wide
                 range of abstractions and language constructs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomic blocks; STM; transactional memory",
}

@Article{Elmas:2009:CAA,
  author =       "Tayfun Elmas and Shaz Qadeer and Serdar Tasiran",
  title =        "A calculus of atomic actions",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "2--15",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480885",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a proof calculus and method for the static
                 verification of assertions and procedure specifications
                 in shared-memory concurrent programs. The key idea in
                 our approach is to use atomicity as a proof tool and to
                 simplify the verification of assertions by rewriting
                 programs to consist of larger atomic actions. We
                 propose a novel, iterative proof style in which
                 alternating use of abstraction and reduction is
                 exploited to compute larger atomic code blocks in a
                 sound manner. This makes possible the verification of
                 assertions in the transformed program by simple
                 sequential reasoning within atomic blocks, or
                 significantly simplified application of existing
                 concurrent program verification techniques such as the
                 Owicki-Gries or rely-guarantee methods. Our method
                 facilitates a clean separation of concerns where at
                 each phase of the proof, the user worries only about
                 only either the sequential properties or the
                 concurrency control mechanisms in the program. We
                 implemented our method in a tool called QED. We
                 demonstrate the simplicity and effectiveness of our
                 approach on a number of benchmarks including ones with
                 intricate concurrency protocols.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstraction; atomicity; concurrent programs;
                 reduction",
}

@Article{Gotsman:2009:PNB,
  author =       "Alexey Gotsman and Byron Cook and Matthew Parkinson
                 and Viktor Vafeiadis",
  title =        "Proving that non-blocking algorithms don't block",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "16--28",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480886",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A concurrent data-structure implementation is
                 considered non-blocking if it meets one of three
                 following liveness criteria: wait-freedom,
                 lock-freedom, or obstruction-freedom. Developers of
                 non-blocking algorithms aim to meet these criteria.
                 However, to date their proofs for non-trivial
                 algorithms have been only manual pencil-and-paper
                 semi-formal proofs. This paper proposes the first fully
                 automatic tool that allows developers to ensure that
                 their algorithms are indeed non-blocking. Our tool uses
                 rely-guarantee reasoning while overcoming the technical
                 challenge of sound reasoning in the presence of
                 interdependent liveness properties.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrent programming; formal verification; liveness;
                 termination",
}

@Article{Abadi:2009:MCT,
  author =       "Martin Abadi and Gordon Plotkin",
  title =        "A model of cooperative threads",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "29--40",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480887",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We develop a model of concurrent imperative
                 programming with threads. We focus on a small
                 imperative language with cooperative threads which
                 execute without interruption until they terminate or
                 explicitly yield control. We define and study a
                 trace-based denotational semantics for this language;
                 this semantics is fully abstract but mathematically
                 elementary. We also give an equational theory for the
                 computational effects that underlie the language,
                 including thread spawning. We then analyze threads in
                 terms of the free algebra monad for this theory.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "denotational semantics; monad; operational semantics;
                 transaction",
}

@Article{Xu:2009:SCC,
  author =       "Dana N. Xu and Simon Peyton Jones and Koen Claessen",
  title =        "Static contract checking for {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "41--52",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480889",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Program errors are hard to detect and are costly both
                 to programmers who spend significant efforts in
                 debugging, and for systems that are guarded by runtime
                 checks. Static verification techniques have been
                 applied to imperative and object-oriented languages,
                 like Java and C\#, but few have been applied to a
                 higher-order lazy functional language, like Haskell. In
                 this paper, we describe a sound and automatic static
                 verification framework for Haskell, that is based on
                 contracts and symbolic execution. Our approach is
                 modular and gives precise blame assignments at
                 compile-time in the presence of higher-order functions
                 and laziness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "contract satisfaction; static contract checking",
}

@Article{Qi:2009:MTS,
  author =       "Xin Qi and Andrew C. Myers",
  title =        "Masked types for sound object initialization",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "53--65",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480890",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a type-based solution to the
                 long-standing problem of object initialization.
                 Constructors, the conventional mechanism for object
                 initialization, have semantics that are surprising to
                 programmers and that lead to bugs. They also contribute
                 to the problem of null-pointer exceptions, which make
                 software less reliable. Masked types are a new
                 type-state mechanism that explicitly tracks the
                 initialization state of objects and prevents reading
                 from uninitialized fields. In the resulting language,
                 constructors are ordinary methods that operate on
                 uninitialized objects, and no special default value
                 (null) is needed in the language. Initialization of
                 cyclic data structures is achieved with the use of
                 conditionally masked types. Masked types are modular
                 and compatible with data abstraction. The type system
                 is presented in a simplified object calculus and is
                 proved to soundly prevent reading from uninitialized
                 fields. Masked types have been implemented as an
                 extension to Java, in which compilation simply erases
                 extra type information. Experience using the extended
                 language suggests that masked types work well on real
                 code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "conditional masks; cyclic data structures; data
                 abstraction; invariants; null pointer exceptions",
}

@Article{Leijen:2009:FTR,
  author =       "Daan Leijen",
  title =        "Flexible types: robust type inference for first-class
                 polymorphism",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "66--77",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480891",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present HML, a type inference system that supports
                 full first-class polymorphism where few annotations are
                 needed: only function parameters with a polymorphic
                 type need to be annotated. HML is a simplification of
                 MLF where only flexibly quantified types are used. This
                 makes the types easier to work with from a programmers
                 perspective, and simplifies the implementation of the
                 type inference algorithm. Still, HML retains much of
                 the expressiveness of MLF, it is robust with respect to
                 small program transformations, and has a simple
                 specification of the type rules with an effective type
                 inference algorithm that infers principal types. A
                 small reference implementation with many examples is
                 available at:
                 http://research.microsoft.com/users/daan/pubs.html.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "first-class polymorphism; MLF; System F",
}

@Article{Lublinerman:2009:MCG,
  author =       "Roberto Lublinerman and Christian Szegedy and Stavros
                 Tripakis",
  title =        "Modular code generation from synchronous block
                 diagrams: modularity vs. code size",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "78--89",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480893",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We study modular, automatic code generation from
                 hierarchical block diagrams with synchronous semantics.
                 Such diagrams are the fundamental model behind
                 widespread tools in the embedded software domain, such
                 as Simulink and SCADE. Code is modular in the sense
                 that it is generated for a given composite block
                 independently from context (i.e., without knowing in
                 which diagrams the block is to be used) and using
                 minimal information about the internals of the block.
                 In previous work, we have shown how modular code can be
                 generated by computing a set of interface functions for
                 each block and a set of dependencies between these
                 functions that is exported along with the interface. We
                 have also introduced a quantified notion of modularity
                 in terms of the number of interface functions generated
                 per block, and showed how to minimize this number,
                 which is essential for scalability. Finally, we have
                 exposed the fundamental trade-off between modularity
                 and reusability (set of diagrams the block can be used
                 in).\par

                 In this paper we explore another trade-off: modularity
                 vs. code size. We show that our previous technique,
                 although it achieves maximal reusability and is optimal
                 in terms of modularity, may result in code replication
                 and therefore large code sizes, something often
                 unacceptable in an embedded system context. We propose
                 to remedy this by generating code with no replication,
                 and show that this generally results in some loss of
                 modularity. We show that optimizing modularity while
                 maintaining maximal reusability and zero replication is
                 an intractable problem (NP-complete). We also show that
                 this problem can be solved using a simple iterative
                 procedure that checks satisfiability of a sequence of
                 propositional formulas. We report on a new prototype
                 implementation and experimental results. The latter
                 demonstrate the practical interest in our methods.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "block diagrams; clustering; code generation; embedded
                 software; NP-complete; synchronous languages",
}

@Article{Barthe:2009:FCC,
  author =       "Gilles Barthe and Benjamin Gr{\'e}goire and Santiago
                 Zanella B{\'e}guelin",
  title =        "Formal certification of code-based cryptographic
                 proofs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "90--101",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480894",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As cryptographic proofs have become essentially
                 unverifiable, cryptographers have argued in favor of
                 developing techniques that help tame the complexity of
                 their proofs. Game-based techniques provide a popular
                 approach in which proofs are structured as sequences of
                 games and in which proof steps establish the validity
                 of transitions between successive games. Code-based
                 techniques form an instance of this approach that takes
                 a code-centric view of games, and that relies on
                 programming language theory to justify proof steps.
                 While code-based techniques contribute to formalize the
                 security statements precisely and to carry out proofs
                 systematically, typical proofs are so long and involved
                 that formal verification is necessary to achieve a high
                 degree of confidence. We present Certicrypt, a
                 framework that enables the machine-checked construction
                 and verification of code-based proofs. Certicrypt is
                 built upon the general-purpose proof assistant Coq, and
                 draws on many areas, including probability, complexity,
                 algebra, and semantics of programming languages.
                 Certicrypt provides certified tools to reason about the
                 equivalence of probabilistic programs, including a
                 relational Hoare logic, a theory of observational
                 equivalence, verified program transformations, and
                 game-based techniques such as reasoning about failure
                 events. The usefulness of Certicrypt is demonstrated
                 through various examples, including a proof of semantic
                 security of OAEP (with a bound that improves upon
                 existing published results), and a proof of existential
                 unforgeability of FDH signatures. Our work provides a
                 first yet significant step towards Halevi's ambitious
                 programme of providing tool support for cryptographic
                 proofs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "coq proof assistant; cryptographic proofs;
                 observational equivalence; program transformations;
                 relational Hoare logic",
}

@Article{Ganty:2009:VLA,
  author =       "Pierre Ganty and Rupak Majumdar and Andrey
                 Rybalchenko",
  title =        "Verifying liveness for asynchronous programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "102--113",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480895",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Asynchronous or 'event-driven' programming is a
                 popular technique to efficiently and flexibly manage
                 concurrent interactions. In these programs, the
                 programmer can post tasks that get stored in a task
                 buffer and get executed atomically by a non-preemptive
                 scheduler at a future point. We give a decision
                 procedure for the fair termination property of
                 asynchronous programs. The fair termination problem
                 asks, given an asynchronous program and a fairness
                 condition on its executions, does the program always
                 terminate on fair executions? The fairness assumptions
                 rule out certain undesired bad behaviors, such as where
                 the scheduler ignores a set of posted tasks forever, or
                 where a non-deterministic branch is always chosen in
                 one direction. Since every liveness property reduces to
                 a fair termination property, our decision procedure
                 extends to liveness properties of asynchronous
                 programs. Our decision procedure for the fair
                 termination of asynchronous programs assumes all
                 variables are finite-state. Even though variables are
                 finite-state, asynchronous programs can have an
                 unbounded stack from recursive calls made by tasks, as
                 well as an unbounded task buffer of pending tasks. We
                 show a reduction from the fair termination problem for
                 asynchronous programs to fair termination problems on
                 Petri Nets, and our main technical result is a
                 reduction of the latter problem to Presburger
                 satisfiability. Our decidability result is in contrast
                 to multithreaded recursive programs, for which liveness
                 properties are undecidable. While we focus on fair
                 termination, we show our reduction to Petri Nets can be
                 used to prove related properties such as fair
                 nonstarvation (every posted task is eventually
                 executed) and safety properties such as boundedness
                 (find a bound on the maximum number of posted tasks
                 that can be in the task buffer at any point).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "asynchronous (event-driven) programming; fair
                 termination; liveness; Petri nets",
}

@Article{Brunel:2009:FFB,
  author =       "Julien Brunel and Damien Doligez and Ren{\'e} Rydhof
                 Hansen and Julia L. Lawall and Gilles Muller",
  title =        "A foundation for flow-based program matching: using
                 temporal logic and model checking",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "114--126",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480897",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Reasoning about program control-flow paths is an
                 important functionality of a number of recent program
                 matching languages and associated searching and
                 transformation tools. Temporal logic provides a
                 well-defined means of expressing properties of
                 control-flow paths in programs, and indeed an extension
                 of the temporal logic CTL has been applied to the
                 problem of specifying and verifying the transformations
                 commonly performed by optimizing compilers.
                 Nevertheless, in developing the Coccinelle program
                 transformation tool for performing Linux collateral
                 evolutions in systems code, we have found that existing
                 variants of CTL do not adequately support rules that
                 transform subterms other than the ones matching an
                 entire formula. Being able to transform any of the
                 subterms of a matched term seems essential in the
                 domain targeted by Coccinelle.\par

                 In this paper, we propose an extension to CTL named
                 CTLVW (CTL with variables and witnesses) that is a
                 suitable basis for the semantics and implementation of
                 the Coccinelles program matching language. Our
                 extension to CTL includes existential quantification
                 over program fragments, which allows metavariables in
                 the program matching language to range over different
                 values within different control-flow paths, and a
                 notion of witnesses that record such existential
                 bindings for use in the subsequent program
                 transformation process. We formalize CTL-VW and
                 describe its use in the context of Coccinelle. We then
                 assess the performance of the approach in practice,
                 using a transformation rule that fixes several
                 reference count bugs in Linux code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bug finding; CTL; model checking; program matching;
                 program transformation",
}

@Article{Gulwani:2009:SPE,
  author =       "Sumit Gulwani and Krishna K. Mehra and Trishul
                 Chilimbi",
  title =        "{SPEED}: precise and efficient static estimation of
                 program computational complexity",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "127--139",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480898",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes an inter-procedural technique for
                 computing symbolic bounds on the number of statements a
                 procedure executes in terms of its scalar inputs and
                 user-defined quantitative functions of input
                 data-structures. Such computational complexity bounds
                 for even simple programs are usually disjunctive,
                 non-linear, and involve numerical properties of heaps.
                 We address the challenges of generating these bounds
                 using two novel ideas.\par

                 We introduce a proof methodology based on multiple
                 counter instrumentation (each counter can be
                 initialized and incremented at potentially multiple
                 program locations) that allows a given linear invariant
                 generation tool to compute linear bounds individually
                 on these counter variables. The bounds on these
                 counters are then composed together to generate total
                 bounds that are non-linear and disjunctive. We also
                 give an algorithm for automating this proof
                 methodology. Our algorithm generates complexity bounds
                 that are usually precise not only in terms of the
                 computational complexity, but also in terms of the
                 constant factors.\par

                 Next, we introduce the notion of user-defined
                 quantitative functions that can be associated with
                 abstract data-structures, e.g., length of a list,
                 height of a tree, etc. We show how to compute bounds in
                 terms of these quantitative functions using a linear
                 invariant generation tool that has support for handling
                 uninterpreted functions. We show application of this
                 methodology to commonly used data-structures (namely
                 lists, list of lists, trees, bit-vectors) using
                 examples from Microsoft product code. We observe that a
                 few quantitative functions for each data-structure are
                 usually sufficient to allow generation of symbolic
                 complexity bounds of a variety of loops that iterate
                 over these data-structures, and that it is
                 straightforward to define these quantitative
                 functions.\par

                 The combination of these techniques enables generation
                 of precise computational complexity bounds for
                 real-world examples (drawn from Microsoft product code
                 and C++ STL library code) for some of which it is
                 non-trivial to even prove termination. Such
                 automatically generated bounds are very useful for
                 early detection of egregious performance problems in
                 large modular codebases that are constantly being
                 changed by multiple developers who make heavy use of
                 code written by others without a good understanding of
                 their implementation complexity.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "counter instrumentation; quantitative functions;
                 symbolic complexity bounds; termination analysis",
}

@Article{Monniaux:2009:AMA,
  author =       "David P. Monniaux",
  title =        "Automatic modular abstractions for linear
                 constraints",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "140--151",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480899",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a method for automatically generating
                 abstract transformers for static analysis by abstract
                 interpretation. The method focuses on linear
                 constraints on programs operating on rational, real or
                 floating-point variables and containing linear
                 assignments and tests.\par

                 In addition to loop-free code, the same method also
                 applies for obtaining least fixed points as functions
                 of the precondition, which permits the analysis of
                 loops and recursive functions. Our algorithms are based
                 on new quantifier elimination and symbolic manipulation
                 techniques.\par

                 Given the specification of an abstract domain, and a
                 program block, our method automatically outputs an
                 implementation of the corresponding abstract
                 transformer. It is thus a form of program
                 transformation.\par

                 The motivation of our work is data-flow synchronous
                 programming languages, used for building
                 control-command embedded systems, but it also applies
                 to imperative and functional programming.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract interpretation; linear inequalities; program
                 transformation; quantifier elimination",
}

@Article{Barker:2009:WCO,
  author =       "Chris Barker",
  title =        "Wild control operators",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "152--152",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480901",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Linguists seek to understand the semantics of
                 expressions in human languages. Certainly there are
                 many natural language expressions--operators in the
                 wild, so to speak--that control evaluation in ways that
                 are familiar from programming languages: just think of
                 the natural-language counterparts of {\em if}, {\em
                 unless}, {\em while}, etc. But in general, how
                 well-behaved are control operators found in the wild?
                 Can we always understand them in terms of familiar
                 programming constructs, or do they go significantly
                 beyond the expressive power of programming
                 languages?\par

                 As an example where operators from a programming
                 language can provide an insightful analysis of a
                 natural language construction, consider the difference
                 in meaning between the following two sentences:\par

                 (1) a. \& John only drinks PERRIER. (emphasis on {\em
                 Perrier\/})\par

                 b. John only DRINKS Perrier. (emphasis on {\em
                 drinks\/})\par

                 The first sentence entails that John never drinks, say,
                 Evian, but the second sentence entails instead that
                 John never does anything (relevant) with Perrier except
                 drink it. I will suggest that we can understand this
                 difference by expressing the meanings of these
                 sentences in terms of Sitaram's {\em fcontrol\/} and
                 {\em run\/} operators (variants on {\em throw\/} and
                 {\em catch\/}).\par

                 But not all wild operators are so easily captured. I
                 will discuss in some detail the meaning of the word
                 {\em same\/} in English as it occurs in the following
                 sentence:\par

                 (2) \& John and Bill read the same book.\par

                 This sentence has a prominent interpretation on which
                 it means (roughly) 'there is some book {\em x\/} such
                 that John read {\em x\/} and Bill read {\em x}. I
                 provide a preliminary analysis based on Danvy and
                 Filinski's {\em shift\/} and {\em reset}. However, the
                 {\em shift reset\/} approach does not generalize to the
                 full range of related sentences in English. I give a
                 more general solution expressed in a Type Logical
                 Grammar (a certain kind of substructural logic) with
                 explicit continuations. But even this is inadequate: I
                 go on to discuss additional, only slightly less
                 ordinary uses of {\em same\/} that remain untamed by
                 any known compositional semantics.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "continuations; control operators; fcontrol; focus;
                 natural language; reset; same; shift",
}

@Article{Garcia:2009:LED,
  author =       "Ronald Garcia and Andrew Lumsdaine and Amr Sabry",
  title =        "Lazy evaluation and delimited control",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "153--164",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480903",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The call-by-need lambda calculus provides an
                 equational framework for reasoning syntactically about
                 lazy evaluation. This paper examines its operational
                 characteristics.\par

                 By a series of reasoning steps, we systematically
                 unpack the standard-order reduction relation of the
                 calculus and discover a novel abstract machine
                 definition which, like the calculus, goes 'under
                 lambdas.' We prove that machine evaluation is
                 equivalent to standard-order evaluation.\par

                 Unlike traditional abstract machines, delimited control
                 plays a significant role in the machine's behavior. In
                 particular, the machine replaces the manipulation of a
                 heap using store-based effects with disciplined
                 management of the evaluation stack using control-based
                 effects. In short, state is replaced with
                 control.\par

                 To further articulate this observation, we present a
                 simulation of call-by-need in a call-by-value language
                 using delimited control operations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract machines; call-by-need; delimited
                 continuations; lambda calculus; reduction semantics",
}

@Article{Voigtlander:2009:BFP,
  author =       "Janis Voigtl{\"a}nder",
  title =        "Bidirectionalization for free! (Pearl)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "165--176",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480904",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A bidirectional transformation consists of a function
                 get that takes a source (document or value) to a view
                 and a function put that takes an updated view and the
                 original source back to an updated source, governed by
                 certain consistency conditions relating the two
                 functions. Both the database and programming language
                 communities have studied techniques that essentially
                 allow a user to specify only one of get and put and
                 have the other inferred automatically. All approaches
                 so far to this bidirectionalization task have been
                 syntactic in nature, either proposing a domain-specific
                 language with limited expressiveness but built-in (and
                 composable) backward components, or restricting get to
                 a simple syntactic form from which some algorithm can
                 synthesize an appropriate definition for put. Here we
                 present a semantic approach instead. The idea is to
                 take a general-purpose language, Haskell, and write a
                 higher-order function that takes (polymorphic)
                 get-functions as arguments and returns appropriate
                 put-functions. All this on the level of semantic
                 values, without being willing, or even able, to inspect
                 the definition of get, and thus liberated from
                 syntactic restraints. Our solution is inspired by
                 relational parametricity and uses free theorems for
                 proving the consistency conditions. It works
                 beautifully.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bidirectionalization; free theorems; generic
                 programming; haskell; program transformation;
                 relational parametricity; view-update problem",
}

@Article{Morihata:2009:THT,
  author =       "Akimasa Morihata and Kiminori Matsuzaki and Zhenjiang
                 Hu and Masato Takeichi",
  title =        "The third homomorphism theorem on trees: downward \&
                 upward lead to divide-and-conquer",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "177--185",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480905",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Parallel programs on lists have been intensively
                 studied. It is well known that associativity provides a
                 good characterization for divide-and-conquer parallel
                 programs. In particular, the third homomorphism theorem
                 is not only useful for systematic development of
                 parallel programs on lists, but it is also suitable for
                 automatic parallelization. The theorem states that if
                 two sequential programs iterate the same list leftward
                 and rightward, respectively, and compute the same
                 value, then there exists a divide-and-conquer parallel
                 program that computes the same value as the sequential
                 programs.\par

                 While there have been many studies on lists, few have
                 been done for characterizing and developing of parallel
                 programs on trees. Naive divide-and-conquer programs,
                 which divide a tree at the root and compute independent
                 subtrees in parallel, take time that is proportional to
                 the height of the input tree and have poor scalability
                 with respect to the number of processors when the input
                 tree is ill-balanced.\par

                 In this paper, we develop a method for systematically
                 constructing scalable divide-and-conquer parallel
                 programs on trees, in which two sequential programs
                 lead to a scalable divide-and-conquer parallel program.
                 We focus on paths instead of trees so as to utilize
                 rich results on lists and demonstrate that
                 associativity provides good characterization for
                 scalable divide-and-conquer parallel programs on trees.
                 Moreover, we generalize the third homomorphism theorem
                 from lists to trees. We demonstrate the effectiveness
                 of our method with various examples. Our results, being
                 generalizations of known results for lists, are generic
                 in the sense that they work well for all polynomial
                 data structures.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "divide-and-conquer; Huet's zippers; polynomial data
                 structures; the third homomorphism theorem",
}

@Article{Ley-Wild:2009:CSS,
  author =       "Ruy Ley-Wild and Umut A. Acar and Matthew Fluet",
  title =        "A cost semantics for self-adjusting computation",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "186--199",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480907",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Self-adjusting computation is an evaluation model in
                 which programs can respond efficiently to small changes
                 to their input data by using a change-propagation
                 mechanism that updates computation by re-building only
                 the parts affected by changes. Previous work has
                 proposed language techniques for self-adjusting
                 computation and showed the approach to be effective in
                 a number of application areas. However, due to the
                 complex semantics of change propagation and the
                 indirect nature of previously proposed language
                 techniques, it remains difficult to reason about the
                 efficiency of self-adjusting programs and change
                 propagation.\par

                 In this paper, we propose a cost semantics for
                 self-adjusting computation that enables reasoning about
                 its effectiveness. As our source language, we consider
                 a direct-style \lambda -calculus with first-class
                 mutable references and develop a notion of trace
                 distance for source programs. To facilitate asymptotic
                 analysis, we propose techniques for composing and
                 generalizing concrete distances via trace contexts
                 (traces with holes). We then show how to translate the
                 source language into a self-adjusting target language
                 such that the translation (1) preserves the extensional
                 semantics of the source programs and the cost of
                 from-scratch runs, and (2) ensures that change
                 propagation between two evaluations takes time bounded
                 by their relative distance. We consider several
                 examples and analyze their effectiveness by considering
                 upper and lower bounds.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "self-adjusting computation",
}

@Article{Tozawa:2009:CWP,
  author =       "Akihiko Tozawa and Michiaki Tatsubori and Tamiya
                 Onodera and Yasuhiko Minamide",
  title =        "Copy-on-write in the {PHP} language",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "200--212",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480908",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "PHP is a popular language for server-side
                 applications. In PHP, assignment to variables copies
                 the assigned values, according to its so-called {\em
                 copy-on-assignment\/} semantics. In contrast, a typical
                 PHP implementation uses a {\em copy-on-write\/} scheme
                 to reduce the copy overhead by delaying copies as much
                 as possible. This leads us to ask if the semantics and
                 implementation of PHP coincide, and actually this is
                 not the case in the presence of sharings within values.
                 In this paper, we describe the copy-on-assignment
                 semantics with three possible strategies to copy values
                 containing sharings. The current PHP implementation has
                 inconsistencies with these semantics, caused by its
                 naive use of copy-on-write. We fix this problem by the
                 novel {\em mostly copy-on-write\/} scheme, making the
                 copy-on-write implementations faithful to the
                 semantics. We prove that our copy-on-write
                 implementations are correct, using bisimulation with
                 the copy-on-assignment semantics.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "graph rewriting; PHP",
}

@Article{Bronson:2009:FDB,
  author =       "Nathan G. Bronson and Christos Kozyrakis and Kunle
                 Olukotun",
  title =        "Feedback-directed barrier optimization in a strongly
                 isolated {STM}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "213--225",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504200",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Researchers in transactional memory (TM) have proposed
                 open nesting as a methodology for increasing the
                 concurrency of transactional programs. The idea is to
                 ignore ``low-level'' memory operations of an
                 open-nested transaction when detecting conflicts for
                 its parent transaction, and instead perform abstract
                 concurrency control for the ``high-level'' operation
                 that the nested transaction represents. To support this
                 methodology, TM systems use an open-nested commit
                 mechanism that commits all changes performed by an
                 open-nested transaction directly to memory, thereby
                 avoiding low-level conflicts. Unfortunately, because
                 the TM runtime is unaware of the different levels of
                 memory, unconstrained use of open-nested commits can
                 lead to anomalous program behavior.\par

                 We describe the framework of {\em ownership-aware
                 transactional memory\/} which incorporates the notion
                 of modules into the TM system and requires that
                 transactions and data be associated with specific {\em
                 transactional modules\/} or Xmodules. We propose a new
                 {\em ownership-aware commit mechanism\/}, a hybrid
                 between an open-nested and closed-nested commit which
                 commits a piece of data differently depending on which
                 Xmodule owns the data. Moreover, we provide a set of
                 precise constraints on interactions and sharing of data
                 among the Xmodules based on familiar notions of
                 abstraction. The ownership-aware commit mechanism and
                 these restrictions on Xmodules allow us to prove that
                 ownership-aware TM has clean memory-level semantics. In
                 particular, it guarantees {\em serializability by
                 modules\/}, an adaptation of the definition of
                 multilevel serializability from database systems. In
                 addition, we describe how a programmer can specify
                 Xmodules and ownership in a Java-like language. Our
                 type system can enforce most of the constraints
                 required by ownership-aware TM statically, and can
                 enforce the remaining constraints dynamically. Finally,
                 we prove that if transactions in the process of
                 aborting obey restrictions on their memory footprint,
                 then ownership-aware TM is free from {\em semantic
                 deadlock\/}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract serializability; open-nested transactions;
                 ownership types; ownership-aware transactions; safe
                 nesting; semantic deadlock; semantics; serializability
                 by modules; transactional memory; transactional memory
                 semantics; xmodules",
}

@Article{Hardekopf:2009:SSF,
  author =       "Ben Hardekopf and Calvin Lin",
  title =        "Semi-sparse flow-sensitive pointer analysis",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "226--238",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480911",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Pointer analysis is a prerequisite for many program
                 analyses, and the effectiveness of these analyses
                 depends on the precision of the pointer information
                 they receive. Two major axes of pointer analysis
                 precision are flow-sensitivity and context-sensitivity,
                 and while there has been significant recent progress
                 regarding scalable context-sensitive pointer analysis,
                 relatively little progress has been made in improving
                 the scalability of flow-sensitive pointer
                 analysis.\par

                 This paper presents a new interprocedural,
                 flow-sensitive pointer analysis algorithm that combines
                 two ideas-semi-sparse analysis and a novel use of
                 BDDs-that arise from a careful understanding of the
                 unique challenges that face flow-sensitive pointer
                 analysis. We evaluate our algorithm on 12 C benchmarks
                 ranging from 11K to 474K lines of code. Our fastest
                 algorithm is on average 197x faster and uses 4.6x less
                 memory than the state of the art, and it can analyze
                 programs that are an order of magnitude larger than the
                 previous state of the art.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "alias analysis; pointer analysis",
}

@Article{Gulwani:2009:CFT,
  author =       "Sumit Gulwani and Tal Lev-Ami and Mooly Sagiv",
  title =        "A combination framework for tracking partition sizes",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "239--251",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480912",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe an abstract interpretation based framework
                 for proving relationships between sizes of memory
                 partitions. Instances of this framework can prove
                 traditional properties such as memory safety and
                 program termination but can also establish upper bounds
                 on usage of dynamically allocated memory. Our framework
                 also stands out in its ability to prove properties of
                 programs manipulating both heap and arrays which is
                 considered a difficult task. Technically, we define an
                 abstract domain that is parameterized by an abstract
                 domain for tracking memory partitions (sets of memory
                 locations) and by a numerical abstract domain for
                 tracking relationships between cardinalities of the
                 partitions. We describe algorithms to construct the
                 transfer functions for the abstract domain in terms of
                 the corresponding transfer functions of the
                 parameterized abstract domains. A prototype of the
                 framework was implemented and used to prove interesting
                 properties of realistic programs, including programs
                 that could not have been automatically analyzed
                 before.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "combining analyses; memory safety; numerical analysis;
                 set analysis; shape analysis; space bounds;
                 termination",
}

@Article{Wang:2009:TDA,
  author =       "Yin Wang and St{\'e}phane Lafortune and Terence Kelly
                 and Manjunath Kudlur and Scott Mahlke",
  title =        "The theory of deadlock avoidance via discrete
                 control",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "252--263",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480913",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Deadlock in multithreaded programs is an increasingly
                 important problem as ubiquitous multicore architectures
                 force parallelization upon an ever wider range of
                 software. This paper presents a theoretical foundation
                 for dynamic deadlock avoidance in concurrent programs
                 that employ conventional mutual exclusion and
                 synchronization primitives (e.g., multithreaded
                 C/Pthreads programs). Beginning with control flow
                 graphs extracted from program source code, we construct
                 a formal model of the program and then apply Discrete
                 Control Theory to automatically synthesize
                 deadlock-avoidance control logic that is implemented by
                 program instrumentation. At run time, the control logic
                 avoids deadlocks by postponing lock acquisitions.
                 Discrete Control Theory guarantees that the program
                 instrumented with our synthesized control logic cannot
                 deadlock. Our method furthermore guarantees that the
                 control logic is maximally permissive: it postpones
                 lock acquisitions only when necessary to prevent
                 deadlocks, and therefore permits maximal runtime
                 concurrency. Our prototype for C/Pthreads scales to
                 real software including Apache, OpenLDAP, and two kinds
                 of benchmarks, automatically avoiding both injected and
                 naturally occurring deadlocks while imposing modest
                 runtime overheads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrent programming; discrete control theory;
                 dynamic deadlock avoidance; multicore processors;
                 multithreaded programming; parallel programming",
}

@Article{Tate:2009:ESN,
  author =       "Ross Tate and Michael Stepp and Zachary Tatlock and
                 Sorin Lerner",
  title =        "Equality saturation: a new approach to optimization",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "264--276",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480915",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Optimizations in a traditional compiler are applied
                 sequentially, with each optimization destructively
                 modifying the program to produce a transformed program
                 that is then passed to the next optimization. We
                 present a new approach for structuring the optimization
                 phase of a compiler. In our approach, optimizations
                 take the form of equality analyses that add equality
                 information to a common intermediate representation.
                 The optimizer works by repeatedly applying these
                 analyses to infer equivalences between program
                 fragments, thus saturating the intermediate
                 representation with equalities. Once saturated, the
                 intermediate representation encodes multiple optimized
                 versions of the input program. At this point, a
                 profitability heuristic picks the final optimized
                 program from the various programs represented in the
                 saturated representation. Our proposed way of
                 structuring optimizers has a variety of benefits over
                 previous approaches: our approach obviates the need to
                 worry about optimization ordering, enables the use of a
                 global optimization heuristic that selects among fully
                 optimized programs, and can be used to perform
                 translation validation, even on compilers other than
                 our own. We present our approach, formalize it, and
                 describe our choice of intermediate representation. We
                 also present experimental results showing that our
                 approach is practical in terms of time and space
                 overhead, is effective at discovering intricate
                 optimization opportunities, and is effective at
                 performing translation validation for a realistic
                 optimizer.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler optimization; equality reasoning;
                 intermediate representation",
}

@Article{Jonsson:2009:PSH,
  author =       "Peter A. Jonsson and Johan Nordlander",
  title =        "Positive supercompilation for a higher order
                 call-by-value language",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "277--288",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480916",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Previous deforestation and supercompilation algorithms
                 may introduce accidental termination when applied to
                 call-by-value programs. This hides looping bugs from
                 the programmer, and changes the behavior of a program
                 depending on whether it is optimized or not. We present
                 a supercompilation algorithm for a higher-order
                 call-by-value language and we prove that the algorithm
                 both terminates and preserves termination properties.
                 This algorithm utilizes strictness information for
                 deciding whether to substitute or not and compares
                 favorably with previous call-by-name transformations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "call-by-value; deforestation; supercompilation",
}

@Article{Calcagno:2009:CSA,
  author =       "Cristiano Calcagno and Dino Distefano and Peter
                 O'Hearn and Hongseok Yang",
  title =        "Compositional shape analysis by means of
                 bi-abduction",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "289--300",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480917",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes a compositional shape analysis,
                 where each procedure is analyzed independently of its
                 callers. The analysis uses an abstract domain based on
                 a restricted fragment of separation logic, and assigns
                 a collection of Hoare triples to each procedure; the
                 triples provide an over-approximation of data structure
                 usage. Compositionality brings its usual benefits --
                 increased potential to scale, ability to deal with
                 unknown calling contexts, graceful way to deal with
                 imprecision -- to shape analysis, for the first
                 time.\par

                 The analysis rests on a generalized form of abduction
                 (inference of explanatory hypotheses) which we call
                 {\em bi-abduction}. Bi-abduction displays abduction as
                 a kind of inverse to the frame problem: it jointly
                 infers anti-frames (missing portions of state) and
                 frames (portions of state not touched by an operation),
                 and is the basis of a new interprocedural analysis
                 algorithm. We have implemented our analysis algorithm
                 and we report case studies on smaller programs to
                 evaluate the quality of discovered specifications, and
                 larger programs (e.g., an entire Linux distribution) to
                 test scalability and graceful imprecision.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abduction; program analysis; proof theory",
}

@Article{Simpson:2009:LTC,
  author =       "Alex Simpson",
  title =        "Linear types for computational effects",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "301--301",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480919",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "I shall present an extension of Moggi's computational
                 metalanguage with primitives from linear logic, the
                 enriched effect-calculus. Illustrative applications to
                 side effects, continuations, nondeterminism and
                 polymorphism will be considered. The talk is based on
                 joint work with Jeff Egger and Rasmus Mogelberg.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "computational effects; computational monads; linear
                 logic",
}

@Article{Condit:2009:UTC,
  author =       "Jeremy Condit and Brian Hackett and Shuvendu K. Lahiri
                 and Shaz Qadeer",
  title =        "Unifying type checking and property checking for
                 low-level code",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "302--314",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480921",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a unified approach to type checking and
                 property checking for low-level code. Type checking for
                 low-level code is challenging because type safety often
                 depends on complex, program-specific invariants that
                 are difficult for traditional type checkers to express.
                 Conversely, property checking for low-level code is
                 challenging because it is difficult to write concise
                 specifications that distinguish between locations in an
                 untyped program's heap. We address both problems
                 simultaneously by implementing a type checker for
                 low-level code as part of our property checker.\par

                 We present a low-level formalization of a C program's
                 heap and its types that can be checked with an SMT
                 solver, and we provide a decision procedure for
                 checking type safety. Our type system is flexible
                 enough to support a combination of nominal and
                 structural subtyping for C, on a per-structure basis.
                 We discuss several case studies that demonstrate the
                 ability of this tool to express and check complex type
                 invariants in low-level C code, including several small
                 Windows device drivers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "assertion checking; decision procedure; low-level
                 code; property checking; SMT solver; type checking",
}

@Article{Feng:2009:LRG,
  author =       "Xinyu Feng",
  title =        "Local rely-guarantee reasoning",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "315--327",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Brotherston:2009:CBL,
  author =       "James Brotherston and Cristiano Calcagno",
  title =        "Classical {BI}: a logic for reasoning about dualising
                 resources",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "328--339",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480923",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We show how to extend O'Hearn and Pym's logic of
                 bunched implications, BI, to classical BI (CBI), in
                 which both the additive and the multiplicative
                 connectives behave classically. Specifically, CBI is a
                 non-conservative extension of (propositional) Boolean
                 BI that includes multiplicative versions of falsity,
                 negation and disjunction. We give an algebraic
                 semantics for CBI that leads us naturally to consider
                 resource models of CBI in which every resource has a
                 unique dual. We then give a cut-eliminating proof
                 system for CBI, based on Belnap's display logic, and
                 demonstrate soundness and completeness of this proof
                 system with respect to our semantics.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bunched implications; classical bi; completeness;
                 cut-elimination; display logic; resource models;
                 semantics",
}

@Article{Ahmed:2009:SDR,
  author =       "Amal Ahmed and Derek Dreyer and Andreas Rossberg",
  title =        "State-dependent representation independence",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "340--353",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480925",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Mitchell's notion of representation independence is a
                 particularly useful application of Reynolds' relational
                 parametricity -- two different implementations of an
                 abstract data type can be shown contextually equivalent
                 so long as there exists a relation between their type
                 representations that is preserved by their operations.
                 There have been a number of methods proposed for
                 proving representation independence in various pure
                 extensions of System F (where data abstraction is
                 achieved through existential typing), as well as in
                 Algol- or Java-like languages (where data abstraction
                 is achieved through the use of local mutable state).
                 However, none of these approaches addresses the
                 interaction of existential type abstraction and local
                 state. In particular, none allows one to prove
                 representation independence results for generative ADTs
                 -- i.e. ADTs that both maintain some local state and
                 define abstract types whose internal representations
                 are dependent on that local state.\par

                 In this paper, we present a syntactic,
                 logical-relations-based method for proving
                 representation independence of generative ADTs in a
                 language supporting polymorphic types, existential
                 types, general recursive types, and unrestricted
                 ML-style mutable references. We demonstrate the
                 effectiveness of our method by using it to prove
                 several interesting contextual equivalences that
                 involve a close interaction between existential typing
                 and local state, as well as some well-known
                 equivalences from the literature (such as Pitts and
                 Stark's 'awkward' example) that have caused trouble for
                 previous logical-relations-based methods.\par

                 The success of our method relies on two key technical
                 innovations. First, in order to handle generative ADTs,
                 we develop a possible-worlds model in which relational
                 interpretations of types are allowed to grow over time
                 in a manner that is tightly coupled with changes to
                 some local state. Second, we employ a step-indexed
                 stratification of possible worlds, which facilitates a
                 simplified account of mutable references of higher
                 type.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract data types; existential types; local state;
                 representation independence; step-indexed logical
                 relations",
}

@Article{Montagu:2009:MAT,
  author =       "Beno{\^\i}t Montagu and Didier R{\'e}my",
  title =        "Modeling abstract types in modules with open
                 existential types",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "354--365",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480926",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose F-zip, a calculus of open existential types
                 that is an extension of System F obtained by
                 decomposing the introduction and elimination of
                 existential types into more atomic constructs. Open
                 existential types model modular type abstraction as
                 done in module systems. The static semantics of F-zip
                 adapts standard techniques to deal with linearity of
                 typing contexts, its dynamic semantics is a small-step
                 reduction semantics that performs extrusion of type
                 abstraction as needed during reduction, and the two are
                 related by subject reduction and progress lemmas.
                 Applying the Curry--Howard isomorphism, F-zip can be
                 also read back as a logic with the same expressive
                 power as second-order logic but with more modular ways
                 of assembling partial proofs. We also extend the core
                 calculus to handle the double vision problem as well as
                 type-level and term-level recursion. The resulting
                 language turns out to be a new formalization of (a
                 minor variant of) Dreyer's internal language for
                 recursive and mixin modules.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract types; existential types; generativity;
                 lambda-calculus; linear type systems; modularity;
                 modules; type systems",
}

@Article{Krishnaswami:2009:FPM,
  author =       "Neelakantan R. Krishnaswami",
  title =        "Focusing on pattern matching",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "366--378",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480927",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, we show how pattern matching can be
                 seen to arise from a proof term assignment for the
                 focused sequent calculus. This use of the Curry--Howard
                 correspondence allows us to give a novel coverage
                 checking algorithm, and makes it possible to give a
                 rigorous correctness proof for the classical pattern
                 compilation strategy of building decision trees via
                 matrices of patterns.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Curry--Howard; focusing; pattern matching; type
                 theory",
}

@Article{Sarkar:2009:SXC,
  author =       "Susmit Sarkar and Peter Sewell and Francesco Zappa
                 Nardelli and Scott Owens and Tom Ridge and Thomas
                 Braibant and Magnus O. Myreen and Jade Alglave",
  title =        "The semantics of {x86-CC} multiprocessor machine
                 code",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "379--391",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480929",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multiprocessors are now dominant, but real
                 multiprocessors do not provide the sequentially
                 consistent memory that is assumed by most work on
                 semantics and verification. Instead, they have subtle
                 relaxed (or weak) memory models, usually described only
                 in ambiguous prose, leading to widespread
                 confusion.\par

                 We develop a rigorous and accurate semantics for x86
                 multiprocessor programs, from instruction decoding to
                 relaxed memory model, mechanised in HOL. We test the
                 semantics against actual processors and the vendor
                 litmus-test examples, and give an equivalent
                 abstract-machine characterisation of our axiomatic
                 memory model. For programs that are (in some precise
                 sense) data-race free, we prove in HOL that their
                 behaviour is sequentially consistent. We also contrast
                 the x86 model with some aspects of Power and ARM
                 behaviour.\par

                 This provides a solid intuition for low-level
                 programming, and a sound foundation for future work on
                 verification, static analysis, and compilation of
                 low-level concurrent code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "relaxed memory models; semantics",
}

@Article{Boudol:2009:RMM,
  author =       "G{\'e}rard Boudol and Gustavo Petri",
  title =        "Relaxed memory models: an operational approach",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "392--403",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480930",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Memory models define an interface between programs
                 written in some language and their implementation,
                 determining which behaviour the memory (and thus a
                 program) is allowed to have in a given model. A minimal
                 guarantee memory models should provide to the
                 programmer is that well-synchronized, that is,
                 data-race free code has a standard semantics.
                 Traditionally, memory models are defined axiomatically,
                 setting constraints on the order in which memory
                 operations are allowed to occur, and the programming
                 language semantics is implicit as determining some of
                 these constraints. In this work we propose a new
                 approach to formalizing a memory model in which the
                 model itself is part of a weak operational semantics
                 for a (possibly concurrent) programming language. We
                 formalize in this way a model that allows write
                 operations to the store to be buffered. This enables us
                 to derive the ordering constraints from the weak
                 semantics of programs, and to prove, at the programming
                 language level, that the weak semantics implements the
                 usual interleaving semantics for data-race free
                 programs, hence in particular that it implements the
                 usual semantics for sequential code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "memory models; operational semantics",
}

@Article{Guerraoui:2009:SPL,
  author =       "Rachid Guerraoui and Michal Kapalka",
  title =        "The semantics of progress in lock-based transactional
                 memory",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "404--415",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480931",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transactional memory (TM) is a promising paradigm for
                 concurrent programming. Whereas the number of TM
                 implementations is growing, however, little research
                 has been conducted to precisely define TM semantics,
                 especially their progress guarantees. This paper is the
                 first to formally define the progress semantics of
                 lock-based TMs, which are considered the most effective
                 in practice.\par

                 We use our semantics to reduce the problems of
                 reasoning about the correctness and computability power
                 of lock-based TMs to those of simple try-lock objects.
                 More specifically, we prove that checking the progress
                 of any set of transactions accessing an arbitrarily
                 large set of shared variables can be reduced to
                 verifying a simple property of each individual
                 (logical) try-lock used by those transactions. We use
                 this theorem to determine the correctness of
                 state-of-the-art lock-based TMs and highlight various
                 configuration ambiguities. We also prove that
                 lock-based TMs have consensus number 2. This means
                 that, on the one hand, a lock-based TM cannot be
                 implemented using only read-write memory, but, on the
                 other hand, it does not need very powerful instructions
                 such as the commonly used compare-and-swap.\par

                 We finally use our semantics to formally capture an
                 inherent trade-off in the performance of lock-based TM
                 implementations. Namely, we show that the space
                 complexity of every lock-based software TM
                 implementation that uses invisible reads is at least
                 exponential in the number of objects accessible to
                 transactions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "consensus number; impossibility; lock; lower bound;
                 reduction; semantics; transactional memory; try-lock",
}

@Article{Kobayashi:2009:THO,
  author =       "Naoki Kobayashi",
  title =        "Types and higher-order recursion schemes for
                 verification of higher-order programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "416--428",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480933",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a new verification method for temporal
                 properties of higher-order functional programs, which
                 takes advantage of Ong's recent result on the
                 decidability of the model-checking problem for
                 higher-order recursion schemes (HORS's). A program is
                 transformed to an HORS that generates a tree
                 representing all the possible event sequences of the
                 program, and then the HORS is model-checked. Unlike
                 most of the previous methods for verification of
                 higher-order programs, our verification method is sound
                 and complete. Moreover, this new verification framework
                 allows a smooth integration of abstract model checking
                 techniques into verification of higher-order programs.
                 We also present a type-based verification algorithm for
                 HORS's. The algorithm can deal with only a fragment of
                 the properties expressed by modal mu-calculus, but the
                 algorithm and its correctness proof are (arguably) much
                 simpler than those of Ong's game-semantics-based
                 algorithm. Moreover, while the HORS model checking
                 problem is n-EXPTIME in general, our algorithm is
                 linear in the size of HORS, under the assumption that
                 the sizes of types and specification formulas are
                 bounded by a constant.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "higher-order recursion scheme; model checking; type
                 system",
}

@Article{Ridge:2009:VDS,
  author =       "Thomas Ridge",
  title =        "Verifying distributed systems: the operational
                 approach",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "429--440",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480934",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This work develops an integrated approach to the
                 verification of behaviourally rich programs, founded
                 directly on operational semantics. The power of the
                 approach is demonstrated with a state-of-the-art
                 verification of a core piece of distributed
                 infrastructure, involving networking, a filesystem, and
                 concurrent OCaml code. The formalization is in
                 higher-order logic and proof support is provided by the
                 HOL4 theorem prover.\par

                 Difficult verification problems demand a wide range of
                 techniques. Here these include ground and symbolic
                 evaluation, local reasoning, separation, invariants,
                 Hoare-style assertional reasoning, rely/guarantee,
                 inductive reasoning about protocol correctness,
                 multiple refinement, and linearizability. While each of
                 these techniques is useful in isolation, they are even
                 more so in combination. The first contribution of this
                 paper is to present the operational approach and
                 describe how existing techniques, including all those
                 mentioned above, may be cleanly and precisely
                 integrated in this setting.\par

                 The second contribution is to show how to combine
                 verifications of individual library functions with
                 arbitrary and unknown user code in a compositional
                 manner, focusing on the problems of private state and
                 encapsulation.\par

                 The third contribution is the example verification
                 itself. The infrastructure must behave correctly under
                 arbitrary patterns of host and network failure, whilst
                 for performance reasons the code also includes data
                 races on shared state. Both features make the
                 verification particularly challenging.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distributed; ground and symbolic evaluation;
                 Hoare-style assertions; HOL; inductive reasoning;
                 infrastructure; invariants; linearizability; local
                 reasoning; network protocol; OCAML; operational
                 semantics; persistent queue; refinement;
                 rely/guarantee; separation",
}

@Article{Hawblitzel:2009:AVP,
  author =       "Chris Hawblitzel and Erez Petrank",
  title =        "Automated verification of practical garbage
                 collectors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "441--453",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594834.1480935",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Garbage collectors are notoriously hard to verify, due
                 to their low-level interaction with the underlying
                 system and the general difficulty in reasoning about
                 reachability in graphs. Several papers have presented
                 verified collectors, but either the proofs were
                 hand-written or the collectors were too simplistic to
                 use on practical applications. In this work, we present
                 two mechanically verified garbage collectors, both
                 practical enough to use for real-world C\# benchmarks.
                 The collectors and their associated allocators consist
                 of x86 assembly language instructions and macro
                 instructions, annotated with preconditions,
                 postconditions, invariants, and assertions. We used the
                 Boogie verification generator and the Z3 automated
                 theorem prover to verify this assembly language code
                 mechanically. We provide measurements comparing the
                 performance of the verified collector with that of the
                 standard Bartok collectors on off-the-shelf C\#
                 benchmarks, demonstrating their competitiveness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "garbage collection; verification",
}

@Article{Kiselyov:2009:LMR,
  author =       "Oleg Kiselyov and Chung-chieh Shan",
  title =        "Lightweight monadic regions",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "1--12",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411286.1411288",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "16 June 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present Haskell libraries that statically ensure
                 the safe use of resources such as file handles. We
                 statically prevent accessing an already closed handle
                 or forgetting to close it. The libraries can be
                 trivially extended to other resources such as database
                 connections and graphic contexts.\par

                 Because file handles and similar resources are scarce,
                 we want to not just assure their safe use but further
                 deallocate them soon after they are no longer needed.
                 Relying on Fluet and Morrisett's [4] calculus of nested
                 regions, we contribute a novel, improved, and extended
                 implementation of the calculus in Haskell, with file
                 handles as resources.\par

                 Our library supports region polymorphism and implicit
                 region subtyping, along with higher-order functions,
                 mutable state, recursion, and run-time exceptions. A
                 program may allocate arbitrarily many resources and
                 dispose of them in any order, not necessarily LIFO.
                 Region annotations are part of an expression's inferred
                 type.\par

                 Our new Haskell encoding of monadic regions as monad
                 transformers needs no witness terms. It assures timely
                 deallocation even when resources have markedly
                 different lifetimes and the identity of the
                 longest-living resource is determined only
                 dynamically.\par

                 For contrast, we also implement a Haskell library for
                 manual resource management, where deallocation is
                 explicit and safety is assured by a form of linear
                 types. We implement the linear typing in Haskell with
                 the help of phantom types and a parameterized monad to
                 statically track the type-state of resources.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "effect systems; monads; parametric polymorphism;
                 regions; resource management; subtyping; type classes;
                 type systems",
}

@Article{Russo:2009:LLW,
  author =       "Alejandro Russo and Koen Claessen and John Hughes",
  title =        "A library for light-weight information-flow security
                 in haskell",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "13--24",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411286.1411289",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Protecting confidentiality of data has become
                 increasingly important for computing systems.
                 Information-flow techniques have been developed over
                 the years to achieve that purpose, leading to
                 special-purpose languages that guarantee
                 information-flow security in programs. However, rather
                 than producing a new language from scratch,
                 information-flow security can also be provided as a
                 library. This has been done previously in Haskell using
                 the arrow framework. In this paper, we show that arrows
                 are not necessary to design such libraries and that a
                 less general notion, namely monads, is sufficient to
                 achieve the same goals. We present a monadic library to
                 provide information-flow security for Haskell programs.
                 The library introduces mechanisms to protect
                 confidentiality of data for pure computations, that we
                 then easily, and modularly, extend to include dealing
                 with side-effects. We also present combinators to
                 dynamically enforce different declassification policies
                 when release of information is required in a controlled
                 manner. It is possible to enforce policies related to
                 what, by whom, and when information is released or a
                 combination of them. The well-known concept of monads
                 together with the light-weight characteristic of our
                 approach makes the library suitable to build
                 applications where confidentiality of data is an
                 issue.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "declassification; information-flow; library; monad",
}

@Article{Pucella:2009:HST,
  author =       "Riccardo Pucella and Jesse A. Tov",
  title =        "{Haskell} session types with (almost) no class",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "25--36",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411286.1411290",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe an implementation of session types in
                 Haskell. Session types statically enforce that
                 client-server communication proceeds according to
                 protocols. They have been added to several concurrent
                 calculi, but few implementations of session types are
                 available.\par

                 Our embedding takes advantage of Haskell where
                 appropriate, but we rely on no exotic features. Thus
                 our approach translates with minimal modification to
                 other polymorphic, typed languages such as ML and Java.
                 Our implementation works with existing Haskell
                 concurrency mechanisms, handles multiple communication
                 channels and recursive session types, and infers
                 protocols automatically.\par

                 While our implementation uses unsafe operations in
                 Haskell, it does not violate Haskell's safety
                 guarantees. We formalize this claim in a concurrent
                 calculus with unsafe communication primitives over
                 which we layer our implementation of session types, and
                 we prove that the session types layer is safe. In
                 particular, it enforces that channel-based
                 communication follows consistent protocols.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; embedded type systems; functional
                 programming; haskell; phantom types; session types;
                 type classes",
}

@Article{Runciman:2009:SLS,
  author =       "Colin Runciman and Matthew Naylor and Fredrik
                 Lindblad",
  title =        "{SmallCheck} and {Lazy SmallCheck}: automatic
                 exhaustive testing for small values",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "37--48",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543134.1411292",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes two Haskell libraries for
                 property-based testing. Following the lead of
                 QuickCheck, these testing libraries SmallCheck and Lazy
                 SmallCheck also use type-based generators to obtain
                 test-sets of finite values for which properties are
                 checked, and report any counter-examples found. But
                 instead of using a sample of randomly generated values
                 they test properties for all values up to some limiting
                 depth, progressively increasing this limit. The paper
                 explains the design and implementation of both
                 libraries and evaluates them in comparison with each
                 other and with QuickCheck.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded language; exhaustive search; lazy evaluation;
                 property-based testing; type classes",
}

@Article{Mitchell:2009:APE,
  author =       "Neil Mitchell and Colin Runciman",
  title =        "Not all patterns, but enough: an automatic verifier
                 for partial but sufficient pattern matching",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "49--60",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543134.1411293",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe an automated analysis of Haskell 98
                 programs to check statically that, despite the possible
                 use of partial (or non-exhaustive) pattern matching, no
                 pattern-match failure can occur. Our method is an
                 iterative backward analysis using a novel form of
                 pattern-constraint to represent sets of data values.
                 The analysis is defined for a core first-order language
                 to which Haskell 98 programs are reduced. Our analysis
                 tool has been successfully applied to a range of
                 programs, and our techniques seem to scale well.
                 Throughout the paper, methods are represented much as
                 we have implemented them in practice, again in
                 Haskell.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic verification; functional programming;
                 haskell; pattern-match errors; preconditions",
}

@Article{Bernardy:2009:YEH,
  author =       "Jean-Philippe Bernardy",
  title =        "{Yi}: an editor in {Haskell} for {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "61--62",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543134.1411294",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Yi is a text editor written in Haskell and extensible
                 in Haskell. We take advantage of Haskell's expressive
                 power to define embedded DSLs that form the foundation
                 of the editor. In turn, these DSLs provide a flexible
                 mechanism to create extended versions of the editor. Yi
                 also provides some support for editing Haskell code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "editor; functional programming; haskell",
}

@Article{Viera:2009:HDY,
  author =       "Marcos Viera and S. Doaitse Swierstra and Eelco
                 Lempsink",
  title =        "{Haskell}, do you read me?: constructing and composing
                 efficient top-down parsers at runtime",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "63--74",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543134.1411296",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Haskell definition and implementation of read is
                 far from perfect. In the first place read is not able
                 to handle the associativities defined for infix
                 operators. Furthermore, it puts constraints on the way
                 show is defined, and especially forces it to generate
                 far more parentheses than expected. Lastly, it may give
                 rise to exponential parsing times. All this is due to
                 the compositionality requirement for read functions,
                 which imposes a top-down parsing strategy.\par

                 We propose a different approach, based on typed
                 abstract syntax, in which grammars describing the data
                 types are composed dynamically. Using the
                 transformation libraries described in a companion paper
                 these syntax descriptions are combined and transformed
                 into parsers at runtime, from which the required read
                 function are constructed. In this way we obtain linear
                 parsing times, achieve consistency with the defined
                 associativities, and may use a version of show which
                 generates far fewer parentheses, thus improving
                 readability of printed values.\par

                 The described transformation algorithms can be
                 incorporated in a Haskell compiler, thus moving most of
                 the work involved to compile time.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "GADT; haskell; left-corner transform; meta
                 programming; parser combinators; type systems; typed
                 abstract syntax; typed transformations",
}

@Article{Ahn:2009:SSS,
  author =       "Ki Yung Ahn and Tim Sheard",
  title =        "Shared subtypes: subtyping recursive parametrized
                 algebraic data types",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "75--86",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543134.1411297",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A newtype declaration in Haskell introduces a new type
                 renaming an existing type. The two types are viewed by
                 the programmer as semantically different, but share the
                 same runtime representation. When operations on the two
                 semantic views coincide, the run-time cost of
                 conversion between the two types is reduced to zero (in
                 both directions) because of this common
                 representation.\par

                 We describe a new language feature called Shared
                 Subtypes (SSubtypes), which generalizes these
                 properties of the newtype declaration. SSubtypes allow
                 programmers to specify subtype rules between types and
                 sharing rules between data constructors. A value of a
                 type T, where T is a subtype of U, can always be cast,
                 at no cost, to value of type U. This free up-casting
                 allows library functions that consume the supertype to
                 be applied without cost to subtypes. Yet any semantic
                 interpretations desired by the programmer can be
                 enforced by the compiler. SSubtype declarations work
                 particularly well with GADTs. GADTs use differing type
                 indexes to make explicit semantic differences, by using
                 a different index for each way of viewing the data.
                 Shared subtypes allow GADTs to share the same runtime
                 representation as a reference type, of which the GADT
                 is a refinement.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "algebraic data types; datatypes; GADTs; parametrized
                 types; recursive types; sharing representation;
                 subtype; subtyping",
}

@Article{Jones:2009:LPD,
  author =       "Mark P. Jones and Iavor S. Diatchki",
  title =        "Language and program design for functional
                 dependencies",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "87--98",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543134.1411298",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Eight years ago, functional dependencies, a concept
                 from the theory of relational databases, were proposed
                 as a mechanism for avoiding common problems with
                 multiple parameter type classes in Haskell. In this
                 context, functional dependencies give programmers a
                 means to specify the semantics of a type class more
                 precisely, and to obtain more accurate inferred types
                 as a result. As time passed, however, several issues
                 were uncovered --- both in the design of a language to
                 support functional dependencies, and in the ways that
                 programmers use them --- that led some to search for
                 new, better alternatives.\par

                 This paper focusses on two related aspects of design
                 for functional dependencies: (i) the design of
                 language/type system extensions that implement them;
                 and (ii) the design of programs that use them. Our goal
                 is to clarify the issues of what functional
                 dependencies are, how they should be used, and how the
                 problems encountered with initial proposals and
                 implementations can be addressed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "functional dependencies; haskell; qualified types;
                 relational databases; type functions; type inference",
}

@Article{Kariotis:2009:MMF,
  author =       "Pericles S. Kariotis and Adam M. Procter and William
                 L. Harrison",
  title =        "Making monads first-class with {Template Haskell}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "99--110",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411286.1411300",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Monads as an organizing principle for programming and
                 semantics are notoriously difficult to grasp, yet they
                 are a central and powerful abstraction in Haskell. This
                 paper introduces a domain-specific language, MonadLab,
                 that simplifies the construction of monads, and
                 describes its implementation in Template Haskell.
                 MonadLab makes monad construction truly first class,
                 meaning that arcane theoretical issues with respect to
                 monad transformers are completely hidden from the
                 programmer. The motivation behind the design of
                 MonadLab is to make monadic programming in Haskell
                 simpler while providing a tool for non-Haskell experts
                 that will assist them in understanding this powerful
                 abstraction.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "domain-specific languages; monads; staged
                 programming",
}

@Article{Rodriguez:2009:CLG,
  author =       "Alexey Rodriguez and Johan Jeuring and Patrik Jansson
                 and Alex Gerdes and Oleg Kiselyov and Bruno C. d. S.
                 Oliveira",
  title =        "Comparing libraries for generic programming in
                 haskell",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "111--122",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411286.1411301",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Datatype-generic programming is defining functions
                 that depend on the structure, or 'shape', of datatypes.
                 It has been around for more than 10 years, and a lot of
                 progress has been made, in particular in the lazy
                 functional programming language Haskell. There are more
                 than 10 proposals for generic programming libraries or
                 language extensions for Haskell. To compare and
                 characterise the many generic programming libraries in
                 a typed functional language, we introduce a set of
                 criteria and develop a generic programming benchmark: a
                 set of characteristic examples testing various facets
                 of datatype-generic programming. We have implemented
                 the benchmark for nine existing Haskell generic
                 programming libraries and present the evaluation of the
                 libraries. The comparison is useful for reaching a
                 common standard for generic programming, but also for a
                 programmer who has to choose a particular approach for
                 datatype-generic programming.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "datatype-generic programming; libraries comparison",
}

@Article{Allwood:2009:CCL,
  author =       "Tristan O. R. Allwood and Susan Eisenbach",
  title =        "{CLASE}: cursor library for a structured editor",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "123--124",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411286.1411302",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The zipper is a well known design pattern for
                 providing a cursor-like interface to a data structure.
                 However, the classic treatise by Huet (1) only
                 scratches the surface of some of the potential
                 applications of the zipper. In this work we have taken
                 inspiration from Huet, and built a library suitable as
                 an underpinning for a structured editor for programming
                 languages. We consider a zipper structure that is
                 suitable for traversing heterogeneous data types,
                 encoding routes to other places in the tree (for
                 bookmark or quick-jump functionality), expressing
                 lexically bound information using contexts, and
                 traversals for rendering a program indicating where the
                 cursor is currently focused in the whole.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cursor; traversal; zipper",
}

@Article{Coutts:2009:HBI,
  author =       "Duncan Coutts and Isaac Potoczny-Jones and Don
                 Stewart",
  title =        "{Haskell}: batteries included",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "125--126",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411286.1411303",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The quality of a programming language itself is only
                 one component in the ability of application writers to
                 get the job done. Programming languages can succeed or
                 fail based on the breadth and quality of their library
                 collection. Over the last few years, the Haskell
                 community has risen to the task of building the library
                 infrastructure necessary for Haskell to succeed as a
                 programming language suitable for writing real-world
                 applications.\par

                 This on-going work, the Cabal and Hackage effort, is
                 built on the open source model of distributed
                 development, and have resulted in a flowering of
                 development in the language with more code produced and
                 reused now than at any point in the community's
                 history. It is easier to obtain and use Haskell code,
                 in a wider range of environments, than ever
                 before.\par

                 This demonstration describes the infrastructure and
                 process of Haskell development inside the Cabal/Hackage
                 framework, including the build system, library
                 dependency resolution, centralised publication,
                 documentation and distribution, and how the code
                 escapes outward into the wider software
                 community.\par

                 We survey the benefits and trade-offs in a distributed,
                 collaborative development ecosystem and look at a
                 proposed Haskell Platform that envisages a complete
                 Haskell development environment, batteries included.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distribution; functional programming",
}

@Article{Gebhart:2009:ETC,
  author =       "Mark Gebhart and Bertrand A. Maher and Katherine E.
                 Coons and Jeff Diamond and Paul Gratz and Mario Marino
                 and Nitya Ranganathan and Behnam Robatmili and Aaron
                 Smith and James Burrill and Stephen W. Keckler and Doug
                 Burger and Kathryn S. McKinley",
  title =        "An evaluation of the {TRIPS} computer system",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "1--12",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508246",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The TRIPS system employs a new instruction set
                 architecture (ISA) called Explicit Data Graph Execution
                 (EDGE) that renegotiates the boundary between hardware
                 and software to expose and exploit concurrency. EDGE
                 ISAs use a block-atomic execution model in which blocks
                 are composed of dataflow instructions. The goal of the
                 TRIPS design is to mine concurrency for high
                 performance while tolerating emerging technology
                 scaling challenges, such as increasing wire delays and
                 power consumption. This paper evaluates how well TRIPS
                 meets this goal through a detailed ISA and performance
                 analysis. We compare performance, using cycles counts,
                 to commercial processors. On SPEC CPU2000, the Intel
                 Core 2 outperforms compiled TRIPS code in most cases,
                 although TRIPS matches a Pentium 4. On simple
                 benchmarks, compiled TRIPS code outperforms the Core 2
                 by 10\% and hand-optimized TRIPS code outperforms it by
                 factor of 3. Compared to conventional ISAs, the
                 block-atomic model provides a larger instruction
                 window, increases concurrency at a cost of more
                 instructions executed, and replaces register and memory
                 accesses with more efficient direct
                 instruction-to-instruction communication. Our analysis
                 suggests ISA, microarchitecture, and compiler
                 enhancements for addressing weaknesses in TRIPS and
                 indicates that EDGE architectures have the potential to
                 exploit greater concurrency in future technologies.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "trips",
}

@Article{Pistol:2009:AIN,
  author =       "Constantin Pistol and Wutichai Chongchitmate and
                 Christopher Dwyer and Alvin R. Lebeck",
  title =        "Architectural implications of nanoscale integrated
                 sensing and computing",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "13--24",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508247",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper explores the architectural implications of
                 integrating computation and molecular probes to form
                 nanoscale sensor processors (nSP). We show how nSPs may
                 enable new computing domains and automate tasks that
                 currently require expert scientific training and costly
                 equipment. This new application domain severely
                 constrains nSP size, which significantly impacts the
                 architectural design space. In this context, we explore
                 nSP architectures and present an nSP design that
                 includes a simple accumulator-based ISA, sensors,
                 limited memory and communication transceivers. To
                 reduce the application memory footprint, we introduce
                 the concept of instruction-fused sensing. We use
                 simulation and analytical models to evaluate nSP
                 designs executing a representative set of target
                 applications. Furthermore, we propose a candidate nSP
                 technology based on optical Resonance Energy Transfer
                 (RET) logic that enables the small size required by the
                 application domain; our smallest design is about the
                 size of the largest known virus. We also show
                 laboratory results that demonstrate initial steps
                 towards a prototype.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "biological computing; instruction fused computing;
                 nanocomputing; new computing domain",
}

@Article{Park:2009:CEA,
  author =       "Soyeon Park and Shan Lu and Yuanyuan Zhou",
  title =        "{CTrigger}: exposing atomicity violation bugs from
                 their hiding places",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "25--36",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508249",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multicore hardware is making concurrent programs
                 pervasive. Unfortunately, concurrent programs are prone
                 to bugs. Among different types of concurrency bugs,
                 atomicity violation bugs are common and important.
                 Existing techniques to detect atomicity violation bugs
                 suffer from one limitation: requiring bugs to manifest
                 during monitored runs, which is an open problem in
                 concurrent program testing.\par

                 This paper makes two contributions. First, it studies
                 the interleaving characteristics of the common practice
                 in concurrent program testing (i.e., running a program
                 over and over) to understand why atomicity violation
                 bugs are hard to expose. Second, it proposes CTrigger
                 to effectively and efficiently expose atomicity
                 violation bugs in large programs. CTrigger focuses on a
                 special type of interleavings (i.e., unserializable
                 interleavings) that are inherently correlated to
                 atomicity violation bugs, and uses trace analysis to
                 systematically identify (likely) feasible
                 unserializable interleavings with low
                 occurrence-probability. CTrigger then uses minimum
                 execution perturbation to exercise low-probability
                 interleavings and expose difficult-to-catch atomicity
                 violation.\par

                 We evaluate CTrigger with real-world atomicity
                 violation bugs from four sever/desktop applications
                 (Apache, MySQL, Mozilla, and PBZIP2) and three SPLASH2
                 applications on 8-core machines. CTrigger efficiently
                 exposes the tested bugs within 1--235 seconds, two to
                 four orders of magnitude faster than stress testing.
                 Without CTrigger, some of these bugs do not manifest
                 even after 7 full days of stress testing. In addition,
                 without deterministic replay support, once a bug is
                 exposed, CTrigger can help programmers reliably
                 reproduce it for diagnosis. Our tested bugs are
                 reproduced by CTrigger mostly within 5 seconds, 300 to
                 over 60000 times faster than stress testing.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency bug; software testing",
}

@Article{Sidiroglou:2009:AAS,
  author =       "Stelios Sidiroglou and Oren Laadan and Carlos Perez
                 and Nicolas Viennot and Jason Nieh and Angelos D.
                 Keromytis",
  title =        "{ASSURE}: automatic software self-healing using rescue
                 points",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "37--48",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508250",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software failures in server applications are a
                 significant problem for preserving system availability.
                 We present ASSURE, a system that introduces rescue
                 points that recover software from unknown faults while
                 maintaining both system integrity and availability, by
                 mimicking system behavior under known error conditions.
                 Rescue points are locations in existing application
                 code for handling a given set of programmer-anticipated
                 failures, which are automatically repurposed and tested
                 for safely enabling fault recovery from a larger class
                 of (unanticipated) faults. When a fault occurs at an
                 arbitrary location in the program, ASSURE restores
                 execution to an appropriate rescue point and induces
                 the program to recover execution by virtualizing the
                 program's existing error-handling facilities. Rescue
                 points are identified using fuzzing, implemented using
                 a fast coordinated checkpoint-restart mechanism that
                 handles multi-process and multi-threaded applications,
                 and, after testing, are injected into production code
                 using binary patching. We have implemented an ASSURE
                 Linux prototype that operates without application
                 source code and without base operating system kernel
                 changes. Our experimental results on a set of
                 real-world server applications and bugs show that
                 ASSURE enabled recovery for all of the bugs tested with
                 fast recovery times, has modest performance overhead,
                 and provides automatic self-healing orders of magnitude
                 faster than current human-driven patch deployment
                 methods.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binary patching; checkpoint restart; error recovery;
                 reliable software; software self-healing",
}

@Article{Lenharth:2009:RDO,
  author =       "Andrew Lenharth and Vikram S. Adve and Samuel T.
                 King",
  title =        "Recovery domains: an organizing principle for
                 recoverable operating systems",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "49--60",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508251",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We describe a strategy for enabling existing commodity
                 operating systems to recover from unexpected run-time
                 errors in nearly any part of the kernel, including core
                 kernel components. Our approach is dynamic and
                 request-oriented; it isolates the effects of a fault to
                 the requests that caused the fault rather than to
                 static kernel components. This approach is based on a
                 notion of 'recovery domains,' an organizing principle
                 to enable rollback of state affected by a request in a
                 multithreaded system with minimal impact on other
                 requests or threads. We have applied this approach on
                 v2.4.22 and v2.6.27 of the Linux kernel and it required
                 132 lines of changed or new code: the other changes are
                 all performed by a simple instrumentation pass of a
                 compiler. Our experiments show that the approach is
                 able to recover from otherwise fatal faults with
                 minimal collateral impact during a recovery event.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "akeso; automatic fault recovery; recovery domains",
}

@Article{Dimitrov:2009:ABB,
  author =       "Martin Dimitrov and Huiyang Zhou",
  title =        "Anomaly-based bug prediction, isolation, and
                 validation: an automated approach for software
                 debugging",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "61--72",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508252",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software defects, commonly known as bugs, present a
                 serious challenge for system reliability and
                 dependability. Once a program failure is observed, the
                 debugging activities to locate the defects are
                 typically nontrivial and time consuming. In this paper,
                 we propose a novel automated approach to pin-point the
                 root-causes of software failures.\par

                 Our proposed approach consists of three steps. The
                 first step is bug prediction, which leverages the
                 existing work on anomaly-based bug detection as
                 exceptional behavior during program execution has been
                 shown to frequently point to the root cause of a
                 software failure. The second step is bug isolation,
                 which eliminates false-positive bug predictions by
                 checking whether the dynamic forward slices of bug
                 predictions lead to the observed program failure. The
                 last step is bug validation, in which the isolated
                 anomalies are validated by dynamically nullifying their
                 effects and observing if the program still fails. The
                 whole bug prediction, isolation and validation process
                 is fully automated and can be implemented with
                 efficient architectural support. Our experiments with 6
                 programs and 7 bugs, including a real bug in the gcc
                 2.95.2 compiler, show that our approach is highly
                 effective at isolating only the relevant anomalies.
                 Compared to state-of-art debugging techniques, our
                 proposed approach pinpoints the defect locations more
                 accurately and presents the user with a much smaller
                 code set to analyze.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "architectural support; automated debugging",
}

@Article{Montesinos:2009:CSH,
  author =       "Pablo Montesinos and Matthew Hicks and Samuel T. King
                 and Josep Torrellas",
  title =        "{Capo}: a software-hardware interface for practical
                 deterministic multiprocessor replay",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "73--84",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508254",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "While deterministic replay of parallel programs is a
                 powerful technique, current proposals have
                 shortcomings. Specifically, software-based replay
                 systems have high overheads on multiprocessors, while
                 hardware-based proposals focus only on basic
                 hardware-level mechanisms, ignoring the overall replay
                 system. To be practical, hardware-based replay systems
                 need to support an environment with multiple parallel
                 jobs running concurrently -- some being recorded,
                 others being replayed and even others running without
                 recording or replay. Moreover, they need to manage
                 limited-size log buffers.\par

                 This paper addresses these shortcomings by introducing,
                 for the first time, a set of abstractions and a
                 software-hardware interface for practical
                 hardware-assisted replay of multiprocessor systems. The
                 approach, called {\em Capo}, introduces the novel
                 abstraction of the {\em Replay Sphere\/} to separate
                 the responsibilities of the hardware and software
                 components of the replay system. In this paper, we also
                 design and build {\em CapoOne}, a prototype of a
                 deterministic multiprocessor replay system that
                 implements Capo using Linux and simulated DeLorean
                 hardware. Our evaluation of 4-processor executions
                 shows that {\em CapoOne\/} largely records with the
                 efficiency of hardware-based schemes and the
                 flexibility of software-based schemes.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Capo; CapoOne; deterministic replay; replay sphere",
}

@Article{Devietti:2009:DDS,
  author =       "Joseph Devietti and Brandon Lucia and Luis Ceze and
                 Mark Oskin",
  title =        "{DMP}: deterministic shared memory multiprocessing",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "85--96",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508255",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Current shared memory multicore and multiprocessor
                 systems are nondeterministic. Each time these systems
                 execute a multithreaded application, even if supplied
                 with the same input, they can produce a different
                 output. This frustrates debugging and limits the
                 ability to properly test multithreaded code, becoming a
                 major stumbling block to the much-needed widespread
                 adoption of parallel programming.\par

                 In this paper we make the case for fully deterministic
                 shared memory multiprocessing (DMP). The behavior of an
                 arbitrary multithreaded program on a DMP system is only
                 a function of its inputs. The core idea is to make
                 inter-thread communication fully deterministic.
                 Previous approaches to coping with nondeterminism in
                 multithreaded programs have focused on replay, a
                 technique useful only for debugging. In contrast, while
                 DMP systems are directly useful for debugging by
                 offering repeatability by default, we argue that
                 parallel programs should execute deterministically in
                 the field as well. This has the potential to make
                 testing more assuring and increase the reliability of
                 deployed multithreaded software. We propose a range of
                 approaches to enforcing determinism and discuss their
                 implementation trade-offs. We show that determinism can
                 be provided with little performance cost using our
                 architecture proposals on future hardware, and that
                 software-only approaches can be utilized on existing
                 systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debugging; determinism; multicores; parallel
                 programming",
}

@Article{Olszewski:2009:KED,
  author =       "Marek Olszewski and Jason Ansel and Saman
                 Amarasinghe",
  title =        "{Kendo}: efficient deterministic multithreading in
                 software",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "97--108",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508256",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Although chip-multiprocessors have become the industry
                 standard, developing parallel applications that target
                 them remains a daunting task. Non-determinism, inherent
                 in threaded applications, causes significant challenges
                 for parallel programmers by hindering their ability to
                 create parallel applications with repeatable results.
                 As a consequence, parallel applications are
                 significantly harder to debug, test, and maintain than
                 sequential programs.\par

                 This paper introduces Kendo: a new software-only system
                 that provides deterministic multithreading of parallel
                 applications. Kendo enforces a deterministic
                 interleaving of lock acquisitions and specially
                 declared non-protected reads through a novel
                 dynamically load-balanced deterministic scheduling
                 algorithm. The algorithm tracks the progress of each
                 thread using performance counters to construct a
                 deterministic logical time that is used to compute an
                 interleaving of shared data accesses that is both
                 deterministic and provides good load balancing. Kendo
                 can run on today's commodity hardware while incurring
                 only a modest performance cost. Experimental results on
                 the SPLASH-2 applications yield a geometric mean
                 overhead of only 16\% when running on 4 processors.
                 This low overhead makes it possible to benefit from
                 Kendo even after an application is deployed.
                 Programmers can start using Kendo today to program
                 parallel applications that are easier to develop,
                 debug, and test.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debugging; determinism; deterministic multithreading;
                 multicore; parallel programming",
}

@Article{Tiwari:2009:CIF,
  author =       "Mohit Tiwari and Hassan M. G. Wassel and Bita Mazloom
                 and Shashidhar Mysore and Frederic T. Chong and Timothy
                 Sherwood",
  title =        "Complete information flow tracking from the gates up",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "109--120",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508258",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "For many mission-critical tasks, tight guarantees on
                 the flow of information are desirable, for example,
                 when handling important cryptographic keys or sensitive
                 financial data. We present a novel architecture capable
                 of tracking all information flow within the machine,
                 including all explicit data transfers and all implicit
                 flows (those subtly devious flows caused by not
                 performing conditional operations). While the problem
                 is impossible to solve in the general case, we have
                 created a machine that avoids the general-purpose
                 programmability that leads to this impossibility
                 result, yet is still programmable enough to handle a
                 variety of critical operations such as public-key
                 encryption and authentication. Through the application
                 of our novel gate-level information flow tracking
                 method, we show how all flows of information can be
                 precisely tracked. From this foundation, we then
                 describe how a class of architectures can be
                 constructed, from the gates up, to completely capture
                 all information flows and we measure the impact of
                 doing so on the hardware implementation, the ISA, and
                 the programmer.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "gate level; information flow tracking; provably
                 sound",
}

@Article{Tam:2009:RAL,
  author =       "David K. Tam and Reza Azimi and Livio B. Soares and
                 Michael Stumm",
  title =        "{RapidMRC}: approximating {L2} miss rate curves on
                 commodity systems for online optimizations",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "121--132",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508259",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Miss rate curves (MRCs) are useful in a number of
                 contexts. In our research, online L2 cache MRCs enable
                 us to dynamically identify optimal cache sizes when
                 cache-partitioning a shared-cache multicore processor.
                 Obtaining L2 MRCs has generally been assumed to be
                 expensive when done in software and consequently, their
                 usage for online optimizations has been limited. To
                 address these problems and opportunities, we have
                 developed a low-overhead software technique to obtain
                 L2 MRCs online on current processors, exploiting
                 features available in their performance monitoring
                 units so that no changes to the application source code
                 or binaries are required. Our technique, called
                 RapidMRC, requires a single probing period of roughly
                 221 million processor cycles (147 ms), and subsequently
                 124 million cycles (83 ms) to process the data. We
                 demonstrate its accuracy by comparing the obtained MRCs
                 to the actual L2 MRCs of 30 applications taken from
                 SPECcpu2006, SPECcpu2000, and SPECjbb2000. We show that
                 RapidMRC can be applied to sizing cache partitions,
                 helping to achieve performance improvements of up to
                 27\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cache management; cache partitioning; chip
                 multiprocessor; dynamic optimization; hardware
                 performance counters; miss rate curve; multicore
                 processor; online optimization; performance monitoring
                 unit; shared cache; shared cache management",
}

@Article{Eyerman:2009:PTC,
  author =       "Stijn Eyerman and Lieven Eeckhout",
  title =        "Per-thread cycle accounting in {SMT} processors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "133--144",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508260",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper proposes a cycle accounting architecture
                 for Simultaneous Multithreading (SMT) processors that
                 estimates the execution times for each of the threads
                 had they been executed alone, while they are running
                 simultaneously on the SMT processor. This is done by
                 accounting each cycle to either a base, miss event or
                 waiting cycle component during multi-threaded
                 execution. Single-threaded alone execution time is then
                 estimated as the sum of the base and miss event
                 components; the waiting cycle component represents the
                 lost cycle count due to SMT execution. The cycle
                 accounting architecture incurs reasonable hardware cost
                 (around 1KB of storage) and estimates single-threaded
                 performance with average prediction errors around 7.2\%
                 for two-program workloads and 11.7\% for four-program
                 workloads.\par

                 The cycle accounting architecture has several important
                 applications to system software and its interaction
                 with SMT hardware. For one, the estimated single-thread
                 alone execution time provides an accurate picture to
                 system software of the actually consumed processor
                 cycles per thread. The alone execution time instead of
                 the total execution time (timeslice) may make system
                 software scheduling policies more effective. Second, a
                 new class of thread-progress aware SMT fetch policies
                 based on per-thread progress indicators enable system
                 software level priorities to be enforced at the
                 hardware level.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cycle accounting; simultaneous multithreading (SMT);
                 thread-progress aware fetch policy",
}

@Article{Hofmann:2009:MBM,
  author =       "Owen S. Hofmann and Christopher J. Rossbach and Emmett
                 Witchel",
  title =        "Maximum benefit from a minimal {HTM}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "145--156",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508262",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A minimal, bounded hardware transactional memory
                 implementation significantly improves synchronization
                 performance when used in an operating system kernel. We
                 add HTM to Linux 2.4, a kernel with a simple,
                 coarse-grained synchronization structure. The
                 transactional Linux 2.4 kernel can improve performance
                 of user programs by as much as 40\% over the
                 non-transactional 2.4 kernel. It closes 68\% of the
                 performance gap with the Linux 2.6 kernel, which has
                 had significant engineering effort applied to improve
                 scalability.\par

                 We then extend our minimal HTM to a fast, unbounded
                 transactional memory with a novel technique for
                 coordinating hardware transactions and software
                 synchronization. Overflowed transactions run in
                 software, with only a minimal coupling between hardware
                 and software systems. There is no performance penalty
                 for overflow rates of less than 1\%. In one instance,
                 at 16 processors and an overflow rate of 4\%,
                 performance degrades from an ideal 4.3x to 3.6x.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hardware transactional memory",
}

@Article{Dice:2009:EEC,
  author =       "Dave Dice and Yossi Lev and Mark Moir and Daniel
                 Nussbaum",
  title =        "Early experience with a commercial hardware
                 transactional memory implementation",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "157--168",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508263",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We report on our experience with the hardware
                 transactional memory (HTM) feature of two
                 pre-production revisions of a new commercial multicore
                 processor. Our experience includes a number of
                 promising results using HTM to improve performance in a
                 variety of contexts, and also identifies some ways in
                 which the feature could be improved to make it even
                 better. We give detailed accounts of our experiences,
                 sharing techniques we used to achieve the results we
                 have, as well as describing challenges we faced in
                 doing so.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "hardware; synchronization; transactional memory",
}

@Article{Wells:2009:MMM,
  author =       "Philip M. Wells and Koushik Chakraborty and Gurindar
                 S. Sohi",
  title =        "Mixed-mode multicore reliability",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "169--180",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508265",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Future processors are expected to observe increasing
                 rates of hardware faults. Using Dual-Modular Redundancy
                 (DMR), two cores of a multicore can be loosely coupled
                 to redundantly execute a single software thread,
                 providing very high coverage from many difference
                 sources of faults. This reliability, however, comes at
                 a high price in terms of per-thread IPC and overall
                 system throughput.\par

                 We make the observation that a user may want to run
                 both applications requiring high reliability, such as
                 financial software, and more fault tolerant
                 applications requiring high performance, such as media
                 or web software, on the same machine at the same time.
                 Yet a traditional DMR system must fully operate in
                 redundant mode whenever any application requires high
                 reliability.\par

                 This paper proposes a Mixed-Mode Multicore (MMM), which
                 enables most applications, including the system
                 software, to run with high reliability in DMR mode,
                 while applications that need high performance can avoid
                 the penalty of DMR. Though conceptually simple, two key
                 challenges arise: 1) care must be taken to protect
                 reliable applications from any faults occurring to
                 applications running in high performance mode, and 2)
                 the desire to execute additional independent software
                 threads for a performance application complicates the
                 scheduling of computation to cores. After solving these
                 issues, an MMM is shown to improve overall system
                 performance, compared to a traditional DMR system, by
                 approximately 2X when one reliable and one performance
                 application are concurrently executing.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dual-modular redundancy; multicore",
}

@Article{Rajamani:2009:IDE,
  author =       "Sriram Rajamani and G. Ramalingam and Venkatesh Prasad
                 Ranganath and Kapil Vaswani",
  title =        "{ISOLATOR}: dynamically ensuring isolation in
                 concurrent programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "181--192",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508266",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, we focus on concurrent programs that
                 use locks to achieve isolation of data accessed by
                 critical sections of code. We present ISOLATOR, an
                 algorithm that guarantees isolation for well-behaved
                 threads of a program that obey a locking discipline
                 even in the presence of ill-behaved threads that
                 disobey the locking discipline. ISOLATOR uses code
                 instrumentation, data replication, and virtual memory
                 protection to detect isolation violations and delays
                 ill-behaved threads to ensure isolation. Our
                 instrumentation scheme requires access only to the code
                 of well-behaved threads. We have evaluated ISOLATOR on
                 several benchmark programs and found that ISOLATOR can
                 ensure isolation with reasonable runtime overheads. In
                 addition, we present three general desiderata ---
                 safety, isolation, and permissiveness --- for any
                 scheme that attempts to ensure isolation, and formally
                 prove that ISOLATOR satisfies all of these
                 desiderata.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; isolation; memory protection",
}

@Article{Tucek:2009:EOV,
  author =       "Joseph Tucek and Weiwei Xiong and Yuanyuan Zhou",
  title =        "Efficient online validation with delta execution",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "193--204",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508267",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software systems are constantly changing. Patches to
                 fix bugs and patches to add features are all too
                 common. Every change risks breaking a previously
                 working system. Hence administrators loathe change, and
                 are willing to delay even critical security patches
                 until after fully validating their correctness.
                 Compared to off-line validation, on-line validation has
                 clear advantages since it tests against real life
                 workloads. Yet unfortunately it imposes restrictive
                 overheads as it requires running the old and new
                 versions side-by-side. Moreover, due to spurious
                 differences (e.g. event timing, random number
                 generation, and thread interleavings), it is difficult
                 to compare the two for validation.\par

                 To allow more effective on-line patch validation, we
                 propose a new mechanism, called delta execution, that
                 is based on the observation that most patches are
                 small. Delta execution merges the two side-by-side
                 executions for most of the time and splits only when
                 necessary, such as when they access different data or
                 execute different code. This allows us to perform
                 on-line validation not only with lower overhead but
                 also with greatly reduced spurious differences,
                 allowing us to effectively validate changes.\par

                 We first validate the feasibility of our idea by
                 studying the characteristics of 240 patches from 4
                 server programs; our examination shows that 77\% of the
                 changes should not be expected to cause large changes
                 and are thereby feasible for Delta execution. We then
                 implemented Delta execution using dynamic
                 instrumentation. Using real world patches from 7 server
                 applications and 3 other programs, we compared our
                 implementation of Delta execution against a traditional
                 side-by-side on-line validation. Delta execution
                 outperformed traditional validation by up to 128\%;
                 further, for 3 of the changes, spurious differences
                 caused the traditional validation to fail completely
                 while Delta execution succeeded. This demonstrates that
                 Delta execution can allow administrators to use on-line
                 validation to confidently ensure the correctness of the
                 changes they apply.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "delta execution; patch validation; testing",
}

@Article{Meisner:2009:PES,
  author =       "David Meisner and Brian T. Gold and Thomas F.
                 Wenisch",
  title =        "{PowerNap}: eliminating server idle power",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "205--216",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508269",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Data center power consumption is growing to
                 unprecedented levels: the EPA estimates U.S. data
                 centers will consume 100 billion kilowatt hours
                 annually by 2011. Much of this energy is wasted in idle
                 systems: in typical deployments, server utilization is
                 below 30\%, but idle servers still consume 60\% of
                 their peak power draw. Typical idle periods though
                 frequent--last seconds or less, confounding simple
                 energy-conservation approaches.\par

                 In this paper, we propose PowerNap, an
                 energy-conservation approach where the entire system
                 transitions rapidly between a high-performance active
                 state and a near-zero-power idle state in response to
                 instantaneous load. Rather than requiring fine-grained
                 power-performance states and complex load-proportional
                 operation from each system component, PowerNap instead
                 calls for minimizing idle power and transition time,
                 which are simpler optimization goals. Based on the
                 PowerNap concept, we develop requirements and outline
                 mechanisms to eliminate idle power waste in enterprise
                 blade servers. Because PowerNap operates in
                 low-efficiency regions of current blade center power
                 supplies, we introduce the Redundant Array for
                 Inexpensive Load Sharing (RAILS), a power provisioning
                 approach that provides high conversion efficiency
                 across the entire range of PowerNap's power demands.
                 Using utilization traces collected from
                 enterprise-scale commercial deployments, we demonstrate
                 that, together, PowerNap and RAILS reduce average
                 server power consumption by 74\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "power management; servers",
}

@Article{Caulfield:2009:GUF,
  author =       "Adrian M. Caulfield and Laura M. Grupp and Steven
                 Swanson",
  title =        "{Gordon}: using flash memory to build fast,
                 power-efficient clusters for data-intensive
                 applications",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "217--228",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508270",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As our society becomes more information-driven, we
                 have begun to amass data at an astounding and
                 accelerating rate. At the same time, power concerns
                 have made it difficult to bring the necessary
                 processing power to bear on querying, processing, and
                 understanding this data. We describe Gordon, a system
                 architecture for data-centric applications that
                 combines low-power processors, flash memory, and
                 data-centric programming systems to improve performance
                 for data-centric applications while reducing power
                 consumption. The paper presents an exhaustive analysis
                 of the design space of Gordon systems, focusing on the
                 trade-offs between power, energy, and performance that
                 Gordon must make. It analyzes the impact of
                 flash-storage and the Gordon architecture on the
                 performance and power efficiency of data-centric
                 applications. It also describes a novel flash
                 translation layer tailored to data intensive workloads
                 and large flash storage arrays. Our data show that,
                 using technologies available in the near future, Gordon
                 systems can out-perform disk-based clusters by
                 1.5\times and deliver up to 2.5\times more performance
                 per Watt.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cluster architecture; data centric; flash memory;
                 solid-state storage",
}

@Article{Gupta:2009:DFT,
  author =       "Aayush Gupta and Youngjae Kim and Bhuvan Urgaonkar",
  title =        "{DFTL}: a flash translation layer employing
                 demand-based selective caching of page-level address
                 mappings",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "229--240",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508271",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Recent technological advances in the development of
                 flash-memory based devices have consolidated their
                 leadership position as the preferred storage media in
                 the embedded systems market and opened new vistas for
                 deployment in enterprise-scale storage systems. Unlike
                 hard disks, flash devices are free from any mechanical
                 moving parts, have no seek or rotational delays and
                 consume lower power. However, the internal
                 idiosyncrasies of flash technology make its performance
                 highly dependent on workload characteristics. The poor
                 performance of random writes has been a cause of major
                 concern, which needs to be addressed to better utilize
                 the potential of flash in enterprise-scale
                 environments. We examine one of the important causes of
                 this poor performance: the design of the Flash
                 Translation Layer (FTL), which performs the
                 virtual-to-physical address translations and hides the
                 erase-before-write characteristics of flash. We propose
                 a complete paradigm shift in the design of the core FTL
                 engine from the existing techniques with our
                 Demand-based Flash Translation Layer (DFTL), which
                 selectively caches page-level address mappings. We
                 develop a flash simulation framework called FlashSim.
                 Our experimental evaluation with realistic
                 enterprise-scale workloads endorses the utility of DFTL
                 in enterprise-scale storage systems by demonstrating:
                 (i) improved performance, (ii) reduced garbage
                 collection overhead and (iii) better overload behavior
                 compared to state-of-the-art FTL schemes. For example,
                 a predominantly random-write dominant I/O trace from an
                 OLTP application running at a large financial
                 institution shows a 78\% improvement in average
                 response time (due to a 3-fold reduction in operations
                 of the garbage collector), compared to a
                 state-of-the-art FTL scheme. Even for the well-known
                 read-dominant TPC-H benchmark, for which DFTL
                 introduces additional overheads, we improve system
                 response time by 56\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "flash management; flash translation layer; storage
                 system",
}

@Article{Aleen:2009:CAS,
  author =       "Farhana Aleen and Nathan Clark",
  title =        "Commutativity analysis for software parallelization:
                 letting program transformations see the big picture",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "241--252",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508273",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Extracting performance from many-core architectures
                 requires software engineers to create multi-threaded
                 applications, which significantly complicates the
                 already daunting task of software development. One
                 solution to this problem is automatic compile-time
                 parallelization, which can ease the burden on software
                 developers in many situations. Clearly, automatic
                 parallelization in its present form is not suitable for
                 many application domains and new compiler analyses are
                 needed address its shortcomings.\par

                 In this paper, we present one such analysis: a new
                 approach for detecting commutative functions.
                 Commutative functions are sections of code that can be
                 executed in any order without affecting the outcome of
                 the application, e.g., inserting elements into a set.
                 Previous research on this topic had one significant
                 limitation, in that the results of a commutative
                 functions must produce identical memory layouts. This
                 prevented previous techniques from detecting functions
                 like malloc, which may return different pointers
                 depending on the order in which it is called, but these
                 differing results do not affect the overall output of
                 the application. Our new commutativity analysis
                 correctly identify these situations to better
                 facilitate automatic parallelization. We demonstrate
                 that this analysis can automatically extract
                 significant amounts of parallelism from many
                 applications, and where it is ineffective it can
                 provide software developers a useful list of functions
                 that may be commutative provided semantic program
                 changes that are not automatable.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic software parallelization; commutative
                 functions; random interpretation",
}

@Article{Suleman:2009:ACS,
  author =       "M. Aater Suleman and Onur Mutlu and Moinuddin K.
                 Qureshi and Yale N. Patt",
  title =        "Accelerating critical section execution with
                 asymmetric multi-core architectures",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "253--264",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508274",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "To improve the performance of a single application on
                 Chip Multiprocessors (CMPs), the application must be
                 split into threads which execute concurrently on
                 multiple cores. In multi-threaded applications,
                 critical sections are used to ensure that only one
                 thread accesses shared data at any given time. Critical
                 sections can serialize the execution of threads, which
                 significantly reduces performance and
                 scalability.\par

                 This paper proposes Accelerated Critical Sections
                 (ACS), a technique that leverages the high-performance
                 core(s) of an Asymmetric Chip Multiprocessor (ACMP) to
                 accelerate the execution of critical sections. In ACS,
                 selected critical sections are executed by a
                 high-performance core, which can execute the critical
                 section faster than the other, smaller cores. As a
                 result, ACS reduces serialization: it lowers the
                 likelihood of threads waiting for a critical section to
                 finish. Our evaluation on a set of 12
                 critical-section-intensive workloads shows that ACS
                 reduces the average execution time by 34\% compared to
                 an equal-area 32T-core symmetric CMP and by 23\%
                 compared to an equal-area ACMP. Moreover, for 7 out of
                 the 12 workloads, ACS improves scalability by
                 increasing the number of threads at which performance
                 saturates.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cmp; critical sections; heterogeneous cores; locks;
                 multi-core; parallel programming",
}

@Article{Mytkowicz:2009:PWD,
  author =       "Todd Mytkowicz and Amer Diwan and Matthias Hauswirth
                 and Peter F. Sweeney",
  title =        "Producing wrong data without doing anything obviously
                 wrong!",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "265--276",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508284.1508275",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a surprising result: changing a
                 seemingly innocuous aspect of an experimental setup can
                 cause a systems researcher to draw wrong conclusions
                 from an experiment. What appears to be an innocuous
                 aspect in the experimental setup may in fact introduce
                 a significant bias in an evaluation. This phenomenon is
                 called measurement bias in the natural and social
                 sciences.\par

                 Our results demonstrate that measurement bias is
                 significant and commonplace in computer system
                 evaluation. By significant we mean that measurement
                 bias can lead to a performance analysis that either
                 over-states an effect or even yields an incorrect
                 conclusion. By commonplace we mean that measurement
                 bias occurs in all architectures that we tried (Pentium
                 4, Core 2, and m5 O3CPU), both compilers that we tried
                 (gcc and Intel's C compiler), and most of the SPEC
                 CPU2006 C programs. Thus, we cannot ignore measurement
                 bias. Nevertheless, in a literature survey of 133
                 recent papers from ASPLOS, PACT, PLDI, and CGO, we
                 determined that none of the papers with experimental
                 results adequately consider measurement
                 bias.\par

                 Inspired by similar problems and their solutions in
                 other sciences, we describe and demonstrate two
                 methods, one for detecting (causal analysis) and one
                 for avoiding (setup randomization) measurement bias.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bias; measurement; performance",
}

@Article{Bond:2009:LP,
  author =       "Michael D. Bond and Kathryn S. McKinley",
  title =        "Leak pruning",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "277--288",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508277",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Managed languages improve programmer productivity with
                 type safety and garbage collection, which eliminate
                 memory errors such as dangling pointers, double frees,
                 and buffer overflows. However, because garbage
                 collection uses reachability to over-approximate live
                 objects, programs may still leak memory if programmers
                 forget to eliminate the last reference to an object
                 that will not be used again. Leaks slow programs by
                 increasing collector workload and frequency. Growing
                 leaks eventually crash programs.\par

                 This paper introduces leak pruning, which keeps
                 programs running by predicting and reclaiming leaked
                 objects at run time. It predicts dead objects and
                 reclaims them based on observing data structure usage
                 patterns. Leak pruning preserves semantics because it
                 waits for heap exhaustion before reclaiming objects and
                 poisons references to objects it reclaims. If the
                 program later tries to access a poisoned reference, the
                 virtual machine (VM) throws an error. We show leak
                 pruning has low overhead in a Java VM and evaluate it
                 on 10 leaking programs. Leak pruning does not help two
                 programs, executes five substantial programs 1.6-81X
                 longer, and executes three programs, including a leak
                 in Eclipse, for at least 24 hours. In the worst case,
                 leak pruning defers fatal errors. In the best case, it
                 keeps leaky programs running with preserved semantics
                 and consistent throughput.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "garbage collection; leak tolerance; managed languages;
                 memory leaks",
}

@Article{Wegiel:2009:DPC,
  author =       "Michal Wegiel and Chandra Krintz",
  title =        "Dynamic prediction of collection yield for managed
                 runtimes",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "289--300",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508278",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The growth in complexity of modern systems makes it
                 increasingly difficult to extract high-performance. The
                 software stacks for such systems typically consist of
                 multiple layers and include managed runtime
                 environments (MREs). In this paper, we investigate
                 techniques to improve cooperation between these layers
                 and the hardware to increase the efficacy of automatic
                 memory management in MREs.\par

                 General-purpose MREs commonly implement parallel and/or
                 concurrent garbage collection and employ compaction to
                 eliminate heap fragmentation. Moreover, most systems
                 trigger collection based on the amount of heap a
                 program uses. Our analysis shows that in many cases
                 this strategy leads to ineffective collections that are
                 unable to reclaim sufficient space to justify the
                 incurred cost. To avoid such collections, we exploit
                 the observation that dead objects tend to cluster
                 together and form large, never-referenced, regions in
                 the address space that correlate well with virtual
                 pages that have not recently been referenced by the
                 application. We leverage this correlation to design a
                 new, simple and light-weight, yield predictor that
                 estimates the amount of reclaimable space in the heap
                 using hardware page reference bits. Our predictor
                 allows MREs to avoid low-yield collections and thereby
                 improve resource management.\par

                 We integrate this predictor into three state-of-the-art
                 parallel compactors, implemented in the HotSpot JVM,
                 that represent distinct canonical heap layouts. Our
                 empirical evaluation, based on standard Java benchmarks
                 and open-source applications, indicates that
                 inexpensive and accurate yield prediction can improve
                 performance significantly.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "clustering; concurrent; garbage collection; operating
                 system; parallel; reference bits; yield prediction",
}

@Article{Menon:2009:TSA,
  author =       "Aravind Menon and Simon Schubert and Willy
                 Zwaenepoel",
  title =        "{TwinDrivers}: semi-automatic derivation of fast and
                 safe hypervisor network drivers from guest {OS}
                 drivers",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "301--312",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508279",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In a virtualized environment, device drivers are often
                 run inside a virtual machine (VM) rather than in the
                 hypervisor, for reasons of safety and reduction in
                 software engineering effort. Unfortunately, this
                 approach results in poor performance for I/O-intensive
                 devices such as network cards. The alternative approach
                 of running device drivers directly in the hypervisor
                 yields better performance, but results in the loss of
                 safety guarantees for the hypervisor and incurs
                 additional software engineering costs.\par

                 In this paper we present TwinDrivers, a framework which
                 allows us to semi-automatically create safe and
                 efficient hypervisor drivers from guest OS drivers. The
                 hypervisor driver runs directly in the hypervisor, but
                 its data resides completely in the driver VM address
                 space. A Software Virtual Memory mechanism allows the
                 driver to access its VM data efficiently from the
                 hypervisor running in any guest context, and also
                 protects the hypervisor from invalid memory accesses
                 from the driver. An upcall mechanism allows the
                 hypervisor to largely reuse the driver support
                 infrastructure present in the VM. The TwinDriver system
                 thus combines most of the performance benefits of
                 hypervisor-based driver approaches with the safety and
                 software engineering benefits of VM-based driver
                 approaches.\par

                 Using the TwinDrivers hypervisor driver, we are able to
                 improve the guest domain networking throughput in Xen
                 by a factor of 2.4 for transmit workloads, and 2.1 for
                 receive workloads, both in CPU-scaled units, and
                 achieve close to 64-67 of native Linux throughput.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "virtualization",
}

@Article{Burcea:2009:PBV,
  author =       "Ioana Burcea and Andreas Moshovos",
  title =        "{Phantom-BTB}: a virtualized branch target buffer
                 design",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "313--324",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508281",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Modern processors use branch target buffers (BTBs) to
                 predict the target address of branches such that they
                 can fetch ahead in the instruction stream increasing
                 concurrency and performance. Ideally, BTBs would be
                 sufficiently large to capture the entire working set of
                 the application and sufficiently small for fast access
                 and practical on-chip dedicated storage. Depending on
                 the application, these requirements are at
                 odds.\par

                 This work introduces a BTB design that accommodates
                 large instruction footprints without dedicating
                 expensive onchip resources. In the proposed Phantom-BTB
                 (PBTB) design, a conventional BTB is augmented with a
                 virtual table that collects branch target information
                 as the application runs. The virtual table does not
                 have fixed dedicated storage. Instead, it is
                 transparently allocated, on demand, in the on-chip
                 caches, at cache line granularity. The entries in the
                 virtual table are proactively prefetched and installed
                 in the dedicated conventional BTB, thus, increasing its
                 perceived capacity. Experimental results with
                 commercial workloads under full-system simulation
                 demonstrate that PBTB improves IPC performance over a
                 1K-entry BTB by 6.9\% on average and up to 12.7\%, with
                 a storage overhead of only 8\%. Overall, the
                 virtualized design performs within 1\% of a
                 conventional 4K-entry, single-cycle access BTB, while
                 the dedicated storage is 3.6 times smaller.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "branch target buffer; predictor metadata prefetching;
                 predictor virtualization",
}

@Article{Ramani:2009:SSF,
  author =       "Karthik Ramani and Christiaan P. Gribble and Al
                 Davis",
  title =        "{StreamRay}: a stream filtering architecture for
                 coherent ray tracing",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "325--336",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508282",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The wide availability of commodity graphics processors
                 has made real-time graphics an intrinsic component of
                 the human/computer interface. These graphics cores
                 accelerate the z-buffer algorithm and provide a highly
                 interactive experience at a relatively low cost.
                 However, many applications in entertainment, science,
                 and industry require high quality lighting effects such
                 as accurate shadows, reflection, and refraction. These
                 effects can be difficult to achieve with z-buffer
                 algorithms but are straightforward to implement using
                 ray tracing. Although ray tracing is computationally
                 more complex, the algorithm exhibits excellent scaling
                 and parallelism properties. Nevertheless, ray tracing
                 memory access patterns are difficult to predict and the
                 parallelism speedup promise is therefore hard to
                 achieve.\par

                 This paper highlights a novel approach to ray tracing
                 based on stream filtering and presents StreamRay, a
                 multicore wide SIMD microarchitecture that delivers
                 interactive frame rates of 15-32 frames/second for
                 scenes of high geometric complexity and exhibits high
                 utilization for SIMD widths ranging from eight to 16
                 elements. StreamRay consists of two main components:
                 the ray engine, which is responsible for stream
                 assembly and employs address generation units that
                 generate addresses to form large SIMD vectors, and the
                 filter engine, which implements the ray tracing
                 operations with programmable accelerators. Results
                 demonstrate that separating address and data processing
                 reduces data movement and resource contention.
                 Performance improves by 56\% while simultaneously
                 providing 11.63\% power savings per accelerator core
                 compared to a design which does not use separate
                 resources for address and data computations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "graphics processors; interactive rendering; ray
                 tracing; wide SIMD architectures",
}

@Article{Cameron:2009:ASS,
  author =       "Robert D. Cameron and Dan Lin",
  title =        "Architectural support for {SWAR} text processing with
                 parallel bit streams: the inductive doubling
                 principle",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "337--348",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508283",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Parallel bit stream algorithms exploit the SWAR (SIMD
                 within a register) capabilities of commodity processors
                 in high-performance text processing applications such
                 as UTF-8 to UTF-16 transcoding, XML parsing, string
                 search and regular expression matching. Direct
                 architectural support for these algorithms in future
                 SWAR instruction sets could further increase
                 performance as well as simplifying the programming
                 task. A set of simple SWAR instruction set extensions
                 are proposed for this purpose based on the principle of
                 systematic support for inductive doubling as an
                 algorithmic technique. These extensions are shown to
                 significantly reduce instruction count in core parallel
                 bit stream algorithms, often providing a 3X or better
                 improvement. The extensions are also shown to be useful
                 for SWAR programming in other application areas,
                 including providing a systematic treatment for
                 horizontal operations. An implementation model for
                 these extensions involves relatively simple circuitry
                 added to the operand fetch components in a pipelined
                 processor.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "inductive doubling; parallel bit streams; SWAR",
}

@Article{Blelloch:2009:PT,
  author =       "Guy E. Blelloch",
  title =        "Parallel thinking",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "1--2",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504177",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Assuming that the multicore revolution plays out the
                 way the microprocessor industry expects, it seems that
                 within a decade most programming will involve
                 parallelism at some level. One needs to ask how this
                 affects the way we teach computer science, or even how
                 we have people think about computation. With regards to
                 teaching there seem to be three basic choices: (1) we
                 only train a small number of experts in parallel
                 computation who develop a collection of libraries, and
                 everyone else just uses them; (2) we leave our core
                 curriculum pretty much as is, but add some advanced
                 courses on parallelism or perhaps tack on a few
                 lectures at the end of existing courses; or (3) we
                 start teaching parallelism from the start and embed it
                 throughout the curriculum with the idea of getting
                 students to think about parallelism as the most natural
                 form of computation and sequential computation as a
                 special case.\par

                 This talk will examine some of the implications of the
                 third option. It will argue that thinking about
                 parallelism, when treated in an appropriate way, might
                 be as easy or easier that thinking sequentially. A key
                 prerequisite, however, is to identify what the core
                 ideas in parallelism are and how they might be layered
                 and integrated with existing concepts. Another more
                 difficult issue is how to cleanly integrate these ideas
                 among courses. After all much of the success of
                 sequential computation follows from the concept of a
                 random access machine and its ability to serve as a
                 simple, albeit imperfect, interface between programming
                 languages, algorithm analysis, and hardware design. The
                 talk will go through an initial list of some core ideas
                 in parallelism, and an approach to integrating these
                 ideas between parallel algorithms, programming
                 languages, and, to some extent, hardware. This
                 requires, however, moving away from the concept of a
                 machine model as a interface for thinking about
                 computation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "algorithms; education; parallelism",
}

@Article{Kulkarni:2009:HMP,
  author =       "Milind Kulkarni and Martin Burtscher and Rajeshkar
                 Inkulu and Keshav Pingali and Calin Cas{\c{c}}aval",
  title =        "How much parallelism is there in irregular
                 applications?",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "3--14",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504181",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Irregular programs are programs organized around
                 pointer-based data structures such as trees and graphs.
                 Recent investigations by the Galois project have shown
                 that many irregular programs have a generalized form of
                 data-parallelism called {\em amorphous
                 data-parallelism}. However, in many programs, amorphous
                 data-parallelism cannot be uncovered using static
                 techniques, and its exploitation requires runtime
                 strategies such as optimistic parallel execution. This
                 raises a natural question: how much amorphous
                 data-parallelism actually exists in irregular
                 programs?\par

                 In this paper, we describe the design and
                 implementation of a tool called ParaMeter that produces
                 {\em parallelism profiles\/} for irregular programs.
                 Parallelism profiles are an abstract measure of the
                 amount of amorphous data-parallelism at different
                 points in the execution of an algorithm, independent of
                 implementation-dependent details such as the number of
                 cores, cache sizes, load-balancing, etc. ParaMeter can
                 also generate constrained parallelism profiles for a
                 fixed number of cores. We show parallelism profiles for
                 seven irregular applications, and explain how these
                 profiles provide insight into the behavior of these
                 applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "optimistic parallelism; parallelism profiles;
                 profiling",
}

@Article{Kang:2009:ETM,
  author =       "Seunghwa Kang and David A. Bader",
  title =        "An efficient transactional memory algorithm for
                 computing minimum spanning forest of sparse graphs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "15--24",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504182",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Due to power wall, memory wall, and ILP wall, we are
                 facing the end of ever increasing single-threaded
                 performance. For this reason, multicore and manycore
                 processors are arising as a new paradigm to pursue.
                 However, to fully exploit all the cores in a chip,
                 parallel programming is often required, and the
                 complexity of parallel programming raises a significant
                 concern. Data synchronization is a major source of this
                 programming complexity, and Transactional Memory is
                 proposed to reduce the difficulty caused by data
                 synchronization requirements, while providing high
                 scalability and low performance overhead.\par

                 The previous literature on Transactional Memory mostly
                 focuses on architectural designs. Its impact on
                 algorithms and applications has not yet been studied
                 thoroughly. In this paper, we investigate Transactional
                 Memory from the algorithm designer's perspective. This
                 paper presents an algorithmic model to assist in the
                 design of efficient Transactional Memory algorithms and
                 a novel Transactional Memory algorithm for computing a
                 minimum spanning forest of sparse graphs. We emphasize
                 multiple Transactional Memory related design issues in
                 presenting our algorithm. We also provide experimental
                 results on an existing software Transactional Memory
                 system. Our algorithm demonstrates excellent
                 scalability in the experiments, but at the same time,
                 the experimental results reveal the clear limitation of
                 software Transactional Memory due to its high
                 performance overhead. Based on our experience, we
                 highlight the necessity of efficient hardware support
                 for Transactional Memory to realize the potential of
                 the technology.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "minimum spanning forest; minimum spanning tree;
                 transactional memory",
}

@Article{Zyulkyarov:2009:AQU,
  author =       "Ferad Zyulkyarov and Vladimir Gajinov and Osman S.
                 Unsal and Adri{\'a}n Cristal and Eduard Ayguad{\'e} and
                 Tim Harris and Mateo Valero",
  title =        "Atomic quake: using transactional memory in an
                 interactive multiplayer game server",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "25--34",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504183",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transactional Memory (TM) is being studied widely as a
                 new technique for synchronizing concurrent accesses to
                 shared memory data structures for use in multi-core
                 systems. Much of the initial work on TM has been
                 evaluated using microbenchmarks and application
                 kernels; it is not clear whether conclusions drawn from
                 these workloads will apply to larger systems. In this
                 work we make the first attempt to develop a large,
                 complex, application that uses TM for all of its
                 synchronization. We describe how we have taken an
                 existing parallel implementation of the Quake game
                 server and restructured it to use transactions. In
                 doing so we have encountered examples where
                 transactions simplify the structure of the program. We
                 have also encountered cases where using transactions
                 occludes the structure of the existing code. Compared
                 with existing TM benchmarks, our workload exhibits
                 non-block-structured transactions within which there
                 are I/O operations and system call invocations. There
                 are long and short running transactions (200-1.3M
                 cycles) with small and large read and write sets (a few
                 bytes to 1.5MB). There are nested transactions reaching
                 up to 9 levels at runtime. There are examples where
                 error handling and recovery occurs inside transactions.
                 There are also examples where data changes between
                 being accessed transactionally and accessed
                 non-transactionally. However, we did not see examples
                 where the kind of access to one piece of data depended
                 on the value of another.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "benchmark; quake; transactional memory; workload",
}

@Article{Yau:2009:AAM,
  author =       "Siu Yau and Vijay Karamcheti and Denis Zorin and
                 Kostadin Damevski and Steven G. Parker",
  title =        "Application-aware management of parallel simulation
                 collections",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "35--44",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504184",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a system deployed on parallel
                 clusters to manage a collection of parallel simulations
                 that make up a computational study. It explores how
                 such a system can extend traditional parallel job
                 scheduling and resource allocation techniques to
                 incorporate knowledge specific to the study.\par

                 Using a UINTAH-based helium gas simulation code
                 (ARCHES) and the SimX system for multi-experiment
                 computational studies, this paper demonstrates that, by
                 using application-specific knowledge in resource
                 allocation and scheduling decisions, one can reduce the
                 run time of a computational study from over 20 hours to
                 under 4.5 hours on a 32-processor cluster, and from
                 almost 11 hours to just over 3.5 hours on a
                 64-processor cluster.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "high-throughput computing; parallel system",
}

@Article{Michael:2009:IWS,
  author =       "Maged M. Michael and Martin T. Vechev and Vijay A.
                 Saraswat",
  title =        "Idempotent work stealing",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "45--54",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504186",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Load balancing is a technique which allows efficient
                 parallelization of irregular workloads, and a key
                 component of many applications and parallelizing
                 runtimes. Work-stealing is a popular technique for
                 implementing load balancing, where each parallel thread
                 maintains its own work set of items and occasionally
                 steals items from the sets of other threads.\par

                 The conventional semantics of work stealing guarantee
                 that each inserted task is eventually extracted exactly
                 once. However, correctness of a wide class of
                 applications allows for relaxed semantics, because
                 either: i) the application already explicitly checks
                 that no work is repeated or ii) the application can
                 tolerate repeated work.\par

                 In this paper, we introduce {\em idempotent work
                 stealing}, and present several new algorithms that
                 exploit the relaxed semantics to deliver better
                 performance. The semantics of the new algorithms
                 guarantee that each inserted task is eventually
                 extracted {\em at least\/} once-instead of {\em
                 exactly\/} once.\par

                 On mainstream processors, algorithms for conventional
                 work stealing require special atomic instructions or
                 store-load memory ordering fence instructions in the
                 owner's critical path operations. In general, these
                 instructions are substantially slower than regular
                 memory access instructions. By exploiting the relaxed
                 semantics, our algorithms avoid these instructions in
                 the owner's operations.\par

                 We evaluated our algorithms using common graph problems
                 and micro-benchmarks and compared them to well-known
                 conventional work stealing algorithms, the THE Cilk and
                 Chase-Lev algorithms. We found that our best algorithm
                 (with LIFO extraction) outperforms existing algorithms
                 in nearly all cases, and often by significant
                 margins.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "atomic; memory barrier; memory fence; work stealing",
}

@Article{Hiraishi:2009:BBL,
  author =       "Tasuku Hiraishi and Masahiro Yasugi and Seiji Umatani
                 and Taiichi Yuasa",
  title =        "Backtracking-based load balancing",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "55--64",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504187",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "High-productivity languages for parallel computing
                 become more important as parallel environments
                 including multicores become more common. Cilk is such a
                 language. It provides good load balancing for many
                 applications including irregular ones; that is, it
                 keeps all workers busy by creating plenty of 'logical'
                 threads and adopting the oldest-first work stealing
                 strategy. This paper proposes a 'logical thread'-free
                 framework called {\em Tascell}, which achieves a higher
                 performance and supports a wider range of parallel
                 environments including clusters without loss of
                 productivity. A Tascell worker spawns a 'real' task
                 only when requested by another idle worker. The worker
                 performs the spawning by temporarily 'backtracking' and
                 restoring its oldest task-spawnable state. Our approach
                 eliminates the cost of spawning/managing logical
                 threads. It also promotes the reuse of workspaces and
                 improves the locality of reference since it does not
                 need to prepare a workspace for each concurrently
                 runnable logical thread. Furthermore, Tascell enables
                 elegant and highly-efficient backtrack search
                 algorithms with delayed workspace copying. For
                 instance, our 16-queens problem solver is 1.86 times
                 faster than Cilk on a system with two dual-core
                 processors. Our approach also enables a single program
                 to run in both shared and distributed memory
                 environments with reasonable efficiency and
                 scalability.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "backtrack search; backtracking; load balancing;
                 parallel computing",
}

@Article{Li:2009:ESM,
  author =       "Tong Li and Dan Baumberger and Scott Hahn",
  title =        "Efficient and scalable multiprocessor fair scheduling
                 using distributed weighted round-robin",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "65--74",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504188",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Fairness is an essential requirement of any operating
                 system scheduler. Unfortunately, existing fair
                 scheduling algorithms are either inaccurate or
                 inefficient and non-scalable for multiprocessors. This
                 problem is becoming increasingly severe as the hardware
                 industry continues to produce larger scale multi-core
                 processors. This paper presents {\em Distributed
                 Weighted Round-Robin\/} (DWRR), a new scheduling
                 algorithm that solves this problem. With distributed
                 thread queues and small additional overhead to the
                 underlying scheduler, DWRR achieves high efficiency and
                 scalability. Besides conventional priorities, DWRR
                 enables users to specify weights to threads and achieve
                 accurate proportional CPU sharing with constant error
                 bounds. DWRR operates in concert with existing
                 scheduler policies targeting other system attributes,
                 such as latency and throughput. As a result, it
                 provides a practical solution for various production
                 OSes. To demonstrate the versatility of DWRR,we have
                 implemented it in Linux kernels 2.6.22.15 and 2.6.24,
                 which represent two vastly different scheduler designs.
                 Our evaluation shows that DWRR achieves accurate
                 proportional fairness and high performance for a
                 diverse set of workloads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distributed weighted round-robin; fair scheduling;
                 lag; multiprocessor",
}

@Article{Wang:2009:MPM,
  author =       "Zheng Wang and Michael F. P. O'Boyle",
  title =        "Mapping parallelism to multi-cores: a machine learning
                 based approach",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "75--84",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504189",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The efficient mapping of program parallelism to
                 multi-core processors is highly dependent on the
                 underlying architecture. This paper proposes a portable
                 and automatic compiler-based approach to mapping such
                 parallelism using machine learning. It develops two
                 predictors: a data sensitive and a data insensitive
                 predictor to select the best mapping for parallel
                 programs. They predict the number of threads and the
                 scheduling policy for any given program using a model
                 learnt off-line. By using low-cost profiling runs, they
                 predict the mapping for a new unseen program across
                 multiple input data sets. We evaluate our approach by
                 selecting parallelism mapping configurations for OpenMP
                 programs on two representative but different multi-core
                 platforms (the Intel Xeon and the Cell processors).
                 Performance of our technique is stable across programs
                 and architectures. On average, it delivers above 96\%
                 performance of the maximum available on both platforms.
                 It achieve, on average, a 37\% (up to 17.5 {\em
                 times\/}) performance improvement over the OpenMP
                 runtime default scheme on the Cell platform. Compared
                 to two recent prediction models, our predictors achieve
                 better performance with a significant lower profiling
                 cost.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "artificial neural networks; compiler optimization;
                 machine learning; performance modeling; support vector
                 machine",
}

@Article{Allen:2009:SSD,
  author =       "Matthew D. Allen and Srinath Sridharan and Gurindar S.
                 Sohi",
  title =        "Serialization sets: a dynamic dependence-based
                 parallel execution model",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "85--96",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504190",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper proposes a new parallel execution model
                 where programmers augment a sequential program with
                 pieces of code called {\em serializers\/} that
                 dynamically map computational operations into {\em
                 serialization sets\/} of dependent operations. A
                 runtime system executes operations in the same
                 serialization set in program order, and may
                 concurrently execute operations in different sets.
                 Because serialization sets establish a logical ordering
                 on all operations, the resulting parallel execution is
                 predictable and deterministic.\par

                 We describe the API and design of Prometheus, a C++
                 library that implements the serialization set
                 abstraction through compile-time template instantiation
                 and a runtime support library. We evaluate a set of
                 parallel programs running on the x86\_64 and SPARC-V9
                 instruction sets and study their performance on
                 multicore, symmetric multiprocessor, and ccNUMA
                 parallel machines. By contrast with conventional
                 parallel execution models, we find that Prometheus
                 programs are significantly easier to write, test, and
                 debug, and their parallel execution achieves comparable
                 performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "parallel computing; runtime system; serialization
                 sets; serializer",
}

@Article{Hill:2009:OBS,
  author =       "Mark D. Hill",
  title =        "Opportunities beyond single-core microprocessors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "97--97",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504192",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Designers of future hardware and software face many
                 challenges. Performance scaling of sequential cores is
                 not what it once was. The best architectures for many
                 cores, or equivalents, are not clear. Software,
                 especially on clients, does not make abundant
                 parallelism clear. Computer use and disposal is not so
                 green. Smarter phones must not burn your pocket.
                 Transistors and wires are getting less reliable. CMOS
                 may run out of steam for technical or economic reasons.
                 And the list goes on.\par

                 But in challenges, optimists find opportunities. This
                 panel will be about opportunities. I have invited
                 experts with experience in academia, industry, and
                 government to discuss the great possibilities ahead. I
                 have asked them to identify two or three topics, where,
                 at most, one is part of their current work. Then we
                 will have a discussion.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Patt:2009:MCD,
  author =       "Yale N. Patt",
  title =        "Multi-core demands multi-interfaces",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "99--100",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504178",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The challenge for the microarchitect has always been
                 (with very few notable domain-specific exceptions) how
                 to translate the continually increasing processing
                 power provided by Moore's Law into increased
                 performance, or more recently into similar performance
                 at lower cost in energy. The mechanisms in the past
                 (almost entirely) kept the interface intact and used
                 the increase in transistor count to improve the
                 performance of the microarchitecture of the
                 uniprocessor. When that became too hard, we went to
                 larger and larger on-chip caches. Both are consistent
                 with the notion that 'abstractions are good.' At some
                 point, we got overwhelmed with too many transistors;
                 predictably, multi-core was born. As the transistor
                 count continues to skyrocket, we are faced with two
                 questions: what should be on the chip, and how should
                 the software interface to it. If we expect to continue
                 to take advantage of what process technology is
                 providing, I think we need to do several things,
                 starting with rethinking the notion of abstraction and
                 providing multiple interfaces for the programmer.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "design; multicore; performance; software interface",
}

@Article{Lee:2009:OGC,
  author =       "Seyong Lee and Seung-Jai Min and Rudolf Eigenmann",
  title =        "{OpenMP} to {GPGPU}: a compiler framework for
                 automatic translation and optimization",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "101--110",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504194",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "GPGPUs have recently emerged as powerful vehicles for
                 general-purpose high-performance computing. Although a
                 new Compute Unified Device Architecture (CUDA)
                 programming model from NVIDIA offers improved
                 programmability for general computing, programming
                 GPGPUs is still complex and error-prone. This paper
                 presents a compiler framework for automatic
                 source-to-source translation of standard OpenMP
                 applications into CUDA-based GPGPU applications. The
                 goal of this translation is to further improve
                 programmability and make existing OpenMP applications
                 amenable to execution on GPGPUs. In this paper, we have
                 identified several key transformation techniques, which
                 enable efficient GPU global memory access, to achieve
                 high performance. Experimental results from two
                 important kernels (JACOBI and SPMUL) and two NAS OpenMP
                 Parallel Benchmarks (EP and CG) show that the described
                 translator and compile-time optimizations work well on
                 both regular and irregular applications, leading to
                 performance improvements of up to 50X over the
                 unoptimized translation (up to 328X over serial).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic translation; compiler optimization; CUDA;
                 GPU; OpenMP",
}

@Article{Yang:2009:CGC,
  author =       "Xuejun Yang and Li Wang and Jingling Xue and Yu Deng
                 and Ying Zhang",
  title =        "Comparability graph coloring for optimizing
                 utilization of stream register files in stream
                 processors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "111--120",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504195",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "A stream processor executes an application that has
                 been decomposed into a sequence of kernels that operate
                 on streams of data elements. During the execution of a
                 kernel, all streams accessed must be communicated
                 through the SRF (Stream Register File), a non-bypassing
                 software-managed on-chip memory. Therefore, optimizing
                 utilization of the SRF is crucial for good performance.
                 The key insight is that the interference graphs formed
                 by the streams in stream applications tend to be
                 comparability graphs or decomposable into a set of
                 multiple comparability graphs. We present a compiler
                 algorithm that can find optimal or near-optimal
                 colorings in stream IGs, thereby improving SRF
                 utilization than the First-Fit\par

                 bin-packing algorithm, the best in the literature.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "comparability graph coloring; software-managed cache;
                 stream processor; stream programming",
}

@Article{Quintana-Orti:2009:SDL,
  author =       "Gregorio Quintana-Ort{\'\i} and Francisco D. Igual and
                 Enrique S. Quintana-Ort{\'\i} and Robert A. van de
                 Geijn",
  title =        "Solving dense linear systems on platforms with
                 multiple hardware accelerators",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "121--130",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504196",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In a previous PPoPP paper we showed how the FLAME
                 methodology, combined with the SuperMatrix runtime
                 system, yields a simple yet powerful solution for
                 programming dense linear algebra operations on
                 multicore platforms. In this paper we provide further
                 evidence that this approach solves the programmability
                 problem for this domain by targeting a more complex
                 architecture, composed of a multicore processor and
                 multiple hardware accelerators (GPUs, Cell B.E., etc.),
                 each with its own local memory, resulting in a platform
                 more reminiscent of a heterogeneous distributed-memory
                 system. In particular, we show that the FLAME
                 programming model accommodates this new situation
                 effortlessly so that no significant change needs to be
                 made to the codebase. All complexity is hidden inside
                 the SuperMatrix runtime scheduling mechanism, which
                 incorporates software implementations of standard
                 cache/memory coherence techniques in computer
                 architecture to improve the performance. Our
                 experimental evaluation on a Intel Xeon 8-core host
                 linked to an NVIDIA Tesla S870 platform with four GPUs
                 delivers peak performances around 550 and 450
                 (single-precision) GFLOPS for the matrix-matrix product
                 and the Cholesky factorization, respectively, which we
                 believe to be the best performance numbers posted on
                 this new architecture for such operations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "algorithms-by-blocks; dependency analysis; dynamic
                 scheduling; GPUs; out-of-order execution",
}

@Article{Schneider:2009:CPM,
  author =       "Scott Schneider and Jae-Seung Yeom and Benjamin Rose
                 and John C. Linford and Adrian Sandu and Dimitrios S.
                 Nikolopoulos",
  title =        "A comparison of programming models for multiprocessors
                 with explicitly managed memory hierarchies",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "131--140",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504197",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "On multiprocessors with explicitly managed memory
                 hierarchies (EMM), software has the responsibility of
                 moving data in and out of fast local memories. This
                 task can be complex and error-prone even for expert
                 programmers. Before we can allow compilers to handle
                 this complexity for us, we must identify the
                 abstractions that are general enough to allow us to
                 write applications with reasonable effort, yet specific
                 enough to exploit the vast on-chip memory bandwidth of
                 EMM multi-processors. To this end, we compare two
                 programming models against hand-tuned codes on the STI
                 Cell, paying attention to programmability and
                 performance. The first programming model, Sequoia,
                 abstracts the memory hierarchy as private address
                 spaces, each corresponding to a parallel task. The
                 second, Cellgen, is a new framework which provides
                 OpenMP-like semantics and the abstraction of a shared
                 address space divided into private and shared data. We
                 compare three applications programmed using these
                 models against their hand-optimized counterparts in
                 terms of abstractions, programming complexity, and
                 performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cell be; explicitly managed memory hierarchies;
                 programming models",
}

@Article{Spear:2009:CSC,
  author =       "Michael F. Spear and Luke Dalessandro and Virendra J.
                 Marathe and Michael L. Scott",
  title =        "A comprehensive strategy for contention management in
                 software transactional memory",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "141--150",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504199",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In Software Transactional Memory (STM), {\em
                 contention management\/} refers to the mechanisms used
                 to ensure forward progress--to avoid livelock and
                 starvation, and to promote throughput and fairness.
                 Unfortunately, most past approaches to contention
                 management were designed for obstruction-free STM
                 frameworks, and impose significant constant-time
                 overheads. Priority-based approaches in particular
                 typically require that reads be visible to all
                 transactions, an expensive property that is not easy to
                 support in most STM systems.\par

                 In this paper we present a comprehensive strategy for
                 contention management via fair resolution of conflicts
                 in an STM with invisible reads. Our strategy depends on
                 (1) lazy acquisition of ownership, (2) extendible
                 timestamps, and (3) an efficient way to capture both
                 priority and conflicts. We introduce two
                 mechanisms--one using Bloom filters, the other using
                 {\em visible read bits\/} --that implement point \1.
                 These mechanisms unify the notions of conflict
                 resolution, {\em inevitability}, and {\em transaction
                 retry}. They are orthogonal to the rest of the
                 contention management strategy, and could be used in a
                 wide variety of hardware and software TM systems.
                 Experimental evaluation demonstrates that the overhead
                 of the mechanisms is low, particularly when conflicts
                 are rare, and that our strategy as a whole provides
                 good throughput and fairness, including livelock and
                 starvation freedom, even for challenging workloads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "condition synchronization; contention management;
                 inevitability; priority; software transactional
                 memory",
}

@Article{Agrawal:2009:SON,
  author =       "Kunal Agrawal and I-Ting Angelina Lee and Jim Sukha",
  title =        "Safe open-nested transactions through ownership",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "151--162",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ramadan:2009:CCT,
  author =       "Hany E. Ramadan and Indrajit Roy and Maurice Herlihy
                 and Emmett Witchel",
  title =        "Committing conflicting transactions in an {STM}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "163--172",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504201",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Dependence-aware transactional memory (DATM) is a
                 recently proposed model for increasing concurrency of
                 memory transactions without complicating their
                 interface. DATM manages dependences between
                 conflicting, uncommitted transactions so that they
                 commit safely.\par

                 The contributions of this paper are twofold. First, we
                 provide a safety proof for the dependence-aware model.
                 This proof also shows that the DATM model accepts all
                 concurrent interleavings that are
                 conflict-serializable.\par

                 Second, we describe the first application of dependence
                 tracking to software transactional memory (STM) design
                 and implementation. We compare our implementation with
                 a state of the art STM, TL2 [4]. We use benchmarks from
                 the STAMP [21] suite, quantifying how dependence
                 tracking converts certain types of transactional
                 conflicts into successful commits. On high contention
                 workloads, DATM is able to take advantage of
                 dependences to speed up execution by up to 4.8x.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency control; dependence-aware;
                 serializability; transactional memory",
}

@Article{Ratanaworabhan:2009:DTA,
  author =       "Paruj Ratanaworabhan and Martin Burtscher and Darko
                 Kirovski and Benjamin Zorn and Rahul Nagpal and Karthik
                 Pattabiraman",
  title =        "Detecting and tolerating asymmetric races",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "173--184",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504202",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper introduces ToleRace, a runtime system that
                 allows programs to detect and even tolerate asymmetric
                 data races. Asymmetric races are race conditions where
                 one thread correctly acquires and releases a lock for a
                 shared variable while another thread improperly
                 accesses the same variable. ToleRace provides
                 approximate isolation in the critical sections of
                 lock-based parallel programs by creating a local copy
                 of each shared variable when entering a critical
                 section, operating on the local copies, and propagating
                 the appropriate copies upon leaving the critical
                 section. We start by characterizing all possible
                 interleavings that can cause races and precisely
                 describe the effect of ToleRace in each case. Then, we
                 study the theoretical aspects of an oracle that knows
                 exactly what type of interleaving has occurred.
                 Finally, we present two software implementations of
                 ToleRace and evaluate them on multithreaded
                 applications from the SPLASH2 and PARSEC suites. Our
                 implementation on top of a dynamic instrumentation
                 tool, which works directly on executables and requires
                 no source code modifications, incurs an overhead of a
                 factor of two on average. Manually adding ToleRace to
                 the source code of these applications results in an
                 average overhead of 6.4 percent.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic instrumentation; race detection and
                 toleration; runtime support",
}

@Article{Abadi:2009:TMS,
  author =       "Mart{\'\i}n Abadi and Tim Harris and Mojtaba Mehrara",
  title =        "Transactional memory with strong atomicity using
                 off-the-shelf memory protection hardware",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "185--196",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504203",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper introduces a new way to provide strong
                 atomicity in an implementation of transactional memory.
                 Strong atomicity lets us offer clear semantics to
                 programs, even if they access the same locations inside
                 and outside transactions. It also avoids differences
                 between hardware-implemented transactions and
                 software-implemented ones. Our approach is to use
                 off-the-shelf page-level memory protection hardware to
                 detect conflicts between normal memory accesses and
                 transactional ones. This page-level mechanism ensures
                 correctness but gives poor performance because of the
                 costs of manipulating memory protection settings and
                 receiving notifications of access violations. However,
                 in practice, we show how a combination of careful
                 object placement and dynamic code update allows us to
                 eliminate almost all of the protection changes.
                 Existing implementations of strong atomicity in
                 software rely on detecting conflicts by conservatively
                 treating some non-transactional accesses as short
                 transactions. In contrast, our page-level mechanism
                 lets us be less conservative about how
                 non-transactional accesses are treated; we avoid
                 changes to non-transactional code until a possible
                 conflict is detected dynamically, and we can respond to
                 phase changes where a given instruction sometimes
                 generates conflicts and sometimes does not. We evaluate
                 our implementation with C\# versions of many of the
                 STAMP benchmarks, and show how it performs within 25\%
                 of an implementation with weak atomicity on all the
                 benchmarks we have studied. It avoids pathological
                 cases in which other implementations of strong
                 atomicity perform poorly.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "memory protection; STM; strong atomicity;
                 transactional memory",
}

@Article{Ranganathan:2009:IPP,
  author =       "Parthasarathy Ranganathan",
  title =        "Industrial perspectives panel",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "197--197",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504205",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This year, we have a different format for HPCA's
                 industrial session. We will have an 'industrial
                 perspectives panel' with practitioners from industry
                 presenting their perspectives on interesting future
                 technical challenges and opportunities for research. We
                 have panelists from IBM, Microsoft, NVIDIA, and Sun
                 exploring a spectrum of interesting areas from consumer
                 to enterprise markets including 'hot' topics around
                 multicores, graphics accelerators, and solid-state
                 memory.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Nicolau:2009:TEP,
  author =       "Alexandru Nicolau and Guangqiang Li and Arun
                 Kejariwal",
  title =        "Techniques for efficient placement of synchronization
                 primitives",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "199--208",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504207",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Harnessing the hardware parallelism of the emerging
                 multi-cores systems necessitates concurrent software.
                 Unfortunately, most of the existing mainstream software
                 is sequential in nature. Although one could
                 auto-parallelize a given program, the efficacy of this
                 is largely limited to floating-point codes. One of the
                 ways to alleviate the above limitation is to
                 parallelize programs, which cannot be
                 auto-parallelized, via explicit synchronization. In
                 this regard, efficient placement of the synchronization
                 primitives --- say, post, wait --- plays a key role in
                 achieving high degree of thread-level parallelism ({\em
                 TLP\/}). In this paper, we propose novel compiler
                 techniques for the above. Specifically, given a control
                 flow graph ({\em CFG\/}), the proposed techniques place
                 a post as early as possible and place a wait as late as
                 possible in the CFG, subject to dependences. We
                 demonstrate the efficacy of our techniques, on a real
                 machine, using real codes, specifically, from the
                 industry-standard SPEC CPU benchmarks, the Linux kernel
                 and other widely used open source codes. Our results
                 show that the proposed techniques yield significantly
                 higher levels of TLP than the state-of-the-art.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilers; multithreading; parallelization;
                 performance",
}

@Article{Son:2009:CDD,
  author =       "Seung Woo Son and Mahmut Kandemir and Mustafa Karakoy
                 and Dhruva Chakrabarti",
  title =        "A compiler-directed data prefetching scheme for chip
                 multiprocessors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "209--218",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504208",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Data prefetching has been widely used in the past as a
                 technique for hiding memory access latencies. However,
                 data prefetching in multi-threaded applications running
                 on chip multiprocessors (CMPs) can be problematic when
                 multiple cores compete for a shared on-chip cache (L2
                 or L3). In this paper, we (i) quantify the impact of
                 conventional data prefetching on shared caches in CMPs.
                 The experimental data collected using multi-threaded
                 applications indicates that, while data prefetching
                 improves performance in small number of cores, its
                 benefits reduce significantly as the number of cores is
                 increased, that is, it is not scalable; (ii) identify
                 harmful prefetches as one of the main contributors for
                 degraded performance with a large number of cores; and
                 (iii) propose and evaluate a compiler-directed data
                 prefetching scheme for shared on-chip cache based CMPs.
                 The proposed scheme first identifies program phases
                 using static compiler analysis, and then divides the
                 threads into groups within each phase and assigns a
                 customized prefetcher thread (helper thread) to each
                 group of threads. This helps to reduce the total number
                 of prefetches issued, prefetch overheads, and negative
                 interactions on the shared cache space due to data
                 prefetches, and more importantly, makes
                 compiler-directed prefetching a scalable optimization
                 for CMPs. Our experiments with the applications from
                 the SPEC OMP benchmark suite indicate that the proposed
                 scheme improves overall parallel execution latency by
                 18.3\% over the no-prefetch case and 6.4\% over the
                 conventional data prefetching scheme (where each core
                 prefetches its data independently), on average, when 12
                 cores are used. The corresponding average performance
                 improvements with 24 cores are 16.4\% (over the
                 no-prefetch case) and 11.7\% (over the conventional
                 prefetching case). We also demonstrate that the
                 proposed scheme is robust under a wide range of values
                 of our major simulation parameters, and the
                 improvements it achieves come very close to those that
                 can be achieved using an optimal scheme.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "chip multiprocessors; compiler; helper thread;
                 prefetching",
}

@Article{Baskaran:2009:CAD,
  author =       "Muthu Manikandan Baskaran and Nagavijayalakshmi
                 Vydyanathan and Uday Kumar Reddy Bondhugula and J.
                 Ramanujam and Atanas Rountev and P. Sadayappan",
  title =        "Compiler-assisted dynamic scheduling for effective
                 parallelization of loop nests on multicore processors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "219--228",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504209",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Recent advances in polyhedral compilation technology
                 have made it feasible to automatically transform affine
                 sequential loop nests for tiled parallel execution on
                 multi-core processors. However, for multi-statement
                 input programs with statements of different
                 dimensionalities, such as Cholesky or LU decomposition,
                 the parallel tiled code generated by existing automatic
                 parallelization approaches may suffer from significant
                 load imbalance, resulting in poor scalability on
                 multi-core systems. In this paper, we develop a
                 completely automatic parallelization approach for
                 transforming input affine sequential codes into
                 efficient parallel codes that can be executed on a
                 multi-core system in a load-balanced manner. In our
                 approach, we employ a compile-time technique that
                 enables dynamic extraction of inter-tile dependences at
                 run-time, and dynamic scheduling of the parallel tiles
                 on the processor cores for improved scalable execution.
                 Our approach obviates the need for programmer
                 intervention and re-writing of existing algorithms for
                 efficient parallel execution on multi-cores. We
                 demonstrate the usefulness of our approach through
                 comparisons using linear algebra computations: LU and
                 Cholesky decomposition.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compile-time optimization; dynamic scheduling;
                 run-time optimization",
}

@Article{Tallent:2009:EPM,
  author =       "Nathan R. Tallent and John M. Mellor-Crummey",
  title =        "Effective performance measurement and analysis of
                 multithreaded applications",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "229--240",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504210",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Understanding why the performance of a multithreaded
                 program does not improve linearly with the number of
                 cores in a shared-memory node populated with one or
                 more multicore processors is a problem of growing
                 practical importance. This paper makes three
                 contributions to performance analysis of multithreaded
                 programs. First, we describe how to measure and
                 attribute {\em parallel idleness}, namely, where
                 threads are stalled and unable to work. This technique
                 applies broadly to programming models ranging from
                 explicit threading ({\em e.g.}, Pthreads) to
                 higher-level models such as Cilk and OpenMP. Second, we
                 describe how to measure and attribute {\em parallel
                 overhead\/} -- when a thread is performing
                 miscellaneous work other than executing the user's
                 computation. By employing a combination of compiler
                 support and post-mortem analysis, we incur no
                 measurement cost beyond normal profiling to glean this
                 information. Using {\em idleness\/} and {\em
                 overhead\/} metrics enables one to pinpoint areas of an
                 application where concurrency should be increased (to
                 reduce idleness), decreased (to reduce overhead), or
                 where the present parallelization is hopeless (where
                 idleness and overhead are both high). Third, we
                 describe how to measure and attribute arbitrary
                 performance metrics for high-level multithreaded
                 programming models, such as Cilk. This requires
                 bridging the gap between the expression of logical
                 concurrency in programs and its realization at run-time
                 as it is adaptively partitioned and scheduled onto a
                 pool of threads. We have prototyped these ideas in the
                 context of Rice University's HPCToolkit performance
                 tools. We describe our approach, implementation, and
                 experiences applying this approach to measure and
                 attribute work, idleness, and overhead in executions of
                 Cilk programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "call path profiling; hpctoolkit; multithreaded
                 programming models; performance analysis",
}

@Article{Kistler:2009:PCA,
  author =       "Michael Kistler and John Gunnels and Daniel
                 Brokenshire and Brad Benton",
  title =        "Petascale computing with accelerators",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "241--250",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Xue:2009:MSR,
  author =       "Ruini Xue and Xuezheng Liu and Ming Wu and Zhenyu Guo
                 and Wenguang Chen and Weimin Zheng and Zheng Zhang and
                 Geoffrey Voelker",
  title =        "{MPIWiz}: subgroup reproducible replay of {MPI}
                 applications",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "251--260",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504213",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Message Passing Interface (MPI) is a widely used
                 standard for managing coarse-grained concurrency on
                 distributed computers. Debugging parallel MPI
                 applications, however, has always been a particularly
                 challenging task due to their high degree of concurrent
                 execution and non-deterministic behavior. Deterministic
                 replay is a potentially powerful technique for
                 addressing these challenges, with existing MPI replay
                 tools adopting either data-replay or order-replay
                 approaches. Unfortunately, each approach has its
                 tradeoffs. Data-replay generates substantial log sizes
                 by recording every communication message. Order-replay
                 generates small logs, but requires all processes to be
                 replayed together. We believe that these drawbacks are
                 the primary reasons that inhibit the wide adoption of
                 deterministic replay as the critical enabler of cyclic
                 debugging of MPI applications.\par

                 This paper describes {\em subgroup reproducible
                 replay\/} (SRR), a hybrid deterministic replay method
                 that provides the benefits of both data-replay and
                 order-replay while balancing their trade-offs. SRR
                 divides all processes into disjoint groups. It records
                 the contents of messages crossing group boundaries as
                 in data-replay, but records just message orderings for
                 communication within a group as in order-replay. In
                 this way, SRR can exploit the communication locality of
                 traffic patterns in MPI applications. During replay,
                 developers can then replay each group individually. SRR
                 reduces recording overhead by not recording intra-group
                 communication, and reduces replay overhead by limiting
                 the size of each replay group. Exposing these tradeoffs
                 gives the user the necessary control for making
                 deterministic replay practical for MPI
                 applications.\par

                 We have implemented a prototype, MPIWiz, to demonstrate
                 and evaluate SRR. MPIWiz employs a replay framework
                 that allows transparent binary instrumentation of both
                 library and system calls. As a result, MPIWiz replays
                 MPI applications with no source code modification and
                 relinking, and handles non-determinism in both MPI and
                 OS system calls. Our preliminary results show that
                 MPIWiz can reduce recording overhead by over a factor
                 of four relative to data-replay, yet without requiring
                 the entire application to be replayed as in
                 order-replay. Recording increases execution time by
                 27\% while the application can be replayed in just 53\%
                 of its base execution time.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distributed debugging; message passing interface;
                 non-determinism; record and replay",
}

@Article{Vo:2009:FVP,
  author =       "Anh Vo and Sarvani Vakkalanka and Michael DeLisi and
                 Ganesh Gopalakrishnan and Robert M. Kirby and Rajeev
                 Thakur",
  title =        "Formal verification of practical {MPI} programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "261--270",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504214",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper considers the problem of formal
                 verification of MPI programs operating under a fixed
                 test harness for safety properties without building
                 verification models. In our approach, we directly
                 model-check the MPI/C source code, executing its
                 interleavings with the help of a verification
                 scheduler. Unfortunately, the total feasible number of
                 interleavings is exponential, and impractical to
                 examine even for our modest goals. Our earlier
                 publications formalized and implemented a partial order
                 reduction approach that avoided exploring equivalent
                 interleavings, and presented a verification tool called
                 ISP. This paper presents algorithmic and engineering
                 innovations to ISP, including the use of OpenMP
                 parallelization, that now enables it to handle
                 practical MPI programs, including:(i)~ParMETIS --- a
                 widely used hypergraph partitioner, and (ii)~MADRE ---
                 a Memory Aware Data Re-distribution Engine, both
                 developed outside our group. Over these benchmarks, ISP
                 has automatically verified up to 14K lines of MPI/C
                 code, producing error traces of deadlocks and assertion
                 violations within seconds.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distributed programming; dynamic partial order
                 reduction; message passing interface; model checking;
                 MPI",
}

@Article{Bikshandi:2009:EPI,
  author =       "Ganesh Bikshandi and Jose G. Castanos and Sreedhar B.
                 Kodali and V. Krishna Nandivada and Igor Peshansky and
                 Vijay A. Saraswat and Sayantan Sur and Pradeep Varma
                 and Tong Wen",
  title =        "Efficient, portable implementation of asynchronous
                 multi-place programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "271--282",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504215",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The X10 programming language is organized around the
                 notion of places (an encapsulation of data and
                 activities operating on the data), partitioned global
                 address space (PGAS), and asynchronous computation and
                 communication.\par

                 This paper introduces an expressive subset of X10, Flat
                 X10, designed to permit efficient execution across
                 multiple single-threaded places with a simple runtime
                 and without compromising on the productivity of X10. We
                 present the design, implementation and evaluation of a
                 compiler and runtime system for Flat X10. The Flat X10
                 compiler translates programs into C++ SPMD programs
                 communicating using an active messaging infrastructure.
                 It uses novel techniques to transform explicitly
                 parallel programs into SPMD programs. The runtime
                 system is based on IBM's LAPI (Low-level API) and is
                 easily portable to other libraries such as GASNet and
                 ARMCI.\par

                 Our implementation realizes performance comparable to
                 hand-written MPI programs for well-known HPC benchmarks
                 such as Random Access, Stream, and FFT, on a
                 Federation-based cluster of Power5 SMPs (with hundreds
                 of processors) and the Blue Gene (with thousands of
                 processors). Submissions based on the work presented in
                 this paper were co-winners of the 2007 and 2008 HPC
                 Challenge Type II Awards.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "APGAS; asynchrony; compiler; FFT; HPC; HPC challenge;
                 PGAS; random access; runtime; SPMD; stream; X10",
}

@Article{Dennis:2009:HBP,
  author =       "Jack B. Dennis",
  title =        "How to build programmable multi-core chips",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "283--284",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504179",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The arrival of multi-core chips has heightened
                 interest in the discipline of parallel programming, a
                 topic that has received much attention for many years.
                 Computer architects have much to learn from sound
                 principles for structuring software and expressing
                 parallel computation. This talk will cover principles
                 for the design of computer systems to support
                 composable parallel software --- the idea that any
                 parallel program is usable, without change, as a
                 component of larger parallel programs. By following
                 these principles, a revolution in the ease of building
                 robust and high-performance parallel software can be
                 achieved. The principles suggest interesting directions
                 for computer architecture; the tools to experiment with
                 new architecture concepts are ready and waiting for the
                 savvy and ambitious researcher",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "design; parallel algorithms; performance",
}

@Article{Long:2009:ASC,
  author =       "Guoping Long and Dongrui Fan and Junchao Zhang",
  title =        "Architectural support for {Cilk} computations on
                 many-core architectures",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "285--286",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504217",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Cilk; many-core; memory consistency; parallel
                 programming",
}

@Article{Ma:2009:CRS,
  author =       "Wenjing Ma and Gagan Agrawal",
  title =        "A compiler and runtime system for enabling data mining
                 applications on {GPUs}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "287--288",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504218",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "With increasing need for accelerating data mining and
                 scientific data analysis on large data sets, and less
                 chance to improve processor performance by simply
                 increasing clock frequencies, multi-core architectures
                 and accelerators like FPGAs and GPUs have become
                 popular. A recent development in using GPU for general
                 computing has been the release of CUDA (Compute Unified
                 Device Architecture) by NVIDIA. CUDA allows GPU
                 programming with C-language-like features, thus easing
                 the development of non-graphics applications on a GPU.
                 However, several challenges still remain in programming
                 the GPUs with CUDA, because CUDA involves explicit
                 parallel programming and management of its complex
                 memory hierarchy, as well as allocating device memory,
                 moving data between CPU and device memory, and
                 specification of thread grid configurations.\par

                 In this paper, we offer a solution for the programmers
                 to generate CUDA code by specifying the sequential
                 reduction loop(s) with some information about the
                 parameters. With program analysis and code generation,
                 the applications are mapped to a GPU. Several
                 additional optimizations are also performed by the
                 middleware.\par

                 We have evaluated our system using three popular data
                 mining applications, k-means clustering, EM clustering,
                 and Principal Component Analysis (PCA). The speedup
                 that each of these applications achieve over a
                 sequential CPU version ranges between 20 and 50.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "CUDA; data mining; GPGPU",
}

@Article{Huang:2009:EGO,
  author =       "Lei Huang and Deepak Eachempati and Marcus W. Hervey
                 and Barbara Chapman",
  title =        "Exploiting global optimizations for {OpenMP} programs
                 in the {OpenUH} compiler",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "289--290",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504219",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The advent of new parallel architectures has increased
                 the need for parallel optimizing compilers to assist
                 developers in creating efficient code. OpenUH is a
                 state-of-the-art optimizing compiler, but it only
                 performs a limited set of optimizations for OpenMP
                 programs due to its conservative assumptions of shared
                 memory programming. These limitations may prevent some
                 OpenMP applications from being fully optimized to the
                 extent of its sequential counterpart. This paper
                 describes our design and implementation of a parallel
                 data flow framework, consisting of a Parallel Control
                 Flow Graph (PCFG) and a Parallel SSA (PSSA)
                 representation in OpenUH, to model data flow for OpenMP
                 programs. This framework enables the OpenUH compiler to
                 perform all classical scalar optimizations for OpenMP
                 programs, in addition to conducting OpenMP specific
                 optimizations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler analysis; OpenMP; Parallel SSA",
}

@Article{Volos:2009:NDI,
  author =       "Haris Volos and Adam Welc and Ali-Reza Adl-Tabatabai
                 and Tatiana Shpeisman and Xinmin Tian and Ravi
                 Narayanaswamy",
  title =        "{NePalTM}: design and implementation of nested
                 parallelism for transactional memory systems",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "291--292",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504220",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present the programming model, design and
                 implementation of NePalTM; a transactional memory
                 system where atomic blocks can be used for concurrency
                 control at an arbitrary level of nested parallelism.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; nested-parallelism; transactional
                 memory",
}

@Article{Kejariwal:2009:PSA,
  author =       "Arun Kejariwal and Calin Cas{\c{c}}aval",
  title =        "Parallelization spectroscopy: analysis of thread-level
                 parallelism in {HPC} programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "293--294",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504221",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper, we present a method --- parallelization
                 spectroscopy --- for analyzing the thread-level
                 parallelism available in production High Performance
                 Computing (HPC) codes. We survey a number of techniques
                 that are commonly used for parallelization and classify
                 all the loops in the case study presented using a
                 sensitivity metric: how likely is a particular
                 technique is successful in parallelizing the loop.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "loop transformations; multithreading; parallelism",
}

@Article{Ha:2009:PRN,
  author =       "Phuong Hoai Ha and Philippas Tsigas and Otto J.
                 Anshus",
  title =        "Preliminary results on {NB-FEB}, a synchronization
                 primitive for parallel programming",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "295--296",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504222",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We introduce a {\em non-blocking\/} full/empty bit
                 primitive, or NB-FEB for short, as a promising
                 synchronization primitive for parallel programming on
                 may-core architectures. We show that the NB-FEB
                 primitive is {\em universal, scalable\/} and {\em
                 feasible}. NB-FEB, together with registers, can solve
                 the consensus problem for an arbitrary number of
                 processes ({\em universality\/}). NB-FEB is {\em
                 combinable}, namely its memory requests to the same
                 memory location can be combined into only one memory
                 request, which consequently mitigates performance
                 degradation due to synchronization 'hot spots' ({\em
                 scalability\/}). Since NB-FEB is a variant of the
                 original full/empty bit that always returns a value
                 instead of waiting for a conditional flag, it is as
                 feasible as the original full/empty bit, which has been
                 implemented in many computer systems ({\em
                 feasibility\/}).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "combinability; full/empty bit; many-core
                 architectures; non-blocking synchronization; universal
                 primitives",
}

@Article{Dash:2009:STD,
  author =       "Alokika Dash and Brian Demsky",
  title =        "Software transactional distributed shared memory",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "297--298",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504223",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We have developed a transaction-based approach to
                 distributed shared memory(DSM) that supports object
                 caching and generates path expression prefetches. A
                 path expression specifies a path through the heap that
                 traverses the objects to be prefetched. To our
                 knowledge, this is the first prefetching approach that
                 can prefetch objects whose addresses have not been
                 computed or predicted. Our DSM uses both prefetching
                 and caching of remote objects to hide network latency
                 while relying on the two-phase transaction commit
                 mechanism to preserve the simple transactional
                 consistency model that we present to the developer. We
                 have evaluated this approach on a matrix multiply
                 benchmark. We have found that our approach enables to
                 effectively utilize multiple machines in a cluster and
                 also benefit from prefetching and caching of objects.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "distributed shared memory; path-expression prefetch;
                 prefetching objects; transactional memory",
}

@Article{Yang:2009:SBP,
  author =       "Ke Yang and Bingsheng He and Qiong Luo and Pedro V.
                 Sander and Jiaoying Shi",
  title =        "Stack-based parallel recursion on graphics
                 processors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "299--300",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504224",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Recent research has shown promising results on using
                 graphics processing units (GPUs) to accelerate
                 general-purpose computation. However, today's GPUs do
                 not support recursive functions. As a result, for
                 inherently recursive algorithms such as tree traversal,
                 GPU programmers need to explicitly use stacks to
                 emulate the recursion. Parallelizing such stack-based
                 implementation on the GPU increases the programming
                 difficulty; moreover, it is unclear how to improve the
                 efficiency of such parallel implementations. As a first
                 step to address both ease of programming and efficiency
                 issues, we propose three parallel stack implementation
                 alternatives that differ in the granularity of stack
                 sharing. Taking tree traversals as an example, we study
                 the performance tradeoffs between these alternatives
                 and analyze their behaviors in various situations. Our
                 results could be useful to both GPU programmers and GPU
                 compiler writers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "graphics processors; parallel; recursion; stack",
}

@Article{Bhatele:2009:TAT,
  author =       "Abhinav Bhatel{\'e} and Eric Bohm and Laxmikant V.
                 Kal{\'e}",
  title =        "Topology aware task mapping techniques: an {API} and
                 case study",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "301--302",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504225",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Optimal network performance is critical to efficient
                 parallel scaling for communication-bound applications
                 on large machines. With wormhole routing, no-load
                 latencies do not increase significantly with number of
                 hops traveled. Yet, we, and others have recently shown
                 that in presence of contention, message latencies can
                 grow substantially large. Hence task mapping strategies
                 should take the topology of the machine into account on
                 large machines. This poster presents a uniform API
                 which provides topology information on 3D tori like IBM
                 Blue Gene and Cray XT machines. We present techniques
                 to use this API to improve performance. The API can be
                 used by user-level codes to obtain information about
                 allocated partitions at runtime which is essential for
                 mapping.\par

                 We motivate why it is important to consider network
                 topology, using a simple 3D Stencil kernel. We then
                 present mapping strategies for a production code,
                 OpenAtom, running on three-dimensional torus and mesh
                 topologies. OpenAtom presents complex communication
                 scenarios of interaction between multiple groups of
                 objects. Results are presented in the context of 3D
                 Stencil and OpenAtom on up to 16,384 processors of Blue
                 Gene/L, 8,192 processors of Blue Gene/P and 2,048
                 processors of Cray XT3.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "communication; mapping; performance; topology; torus",
}

@Article{Markstrum:2009:TCR,
  author =       "Shane A. Markstrum and Robert M. Fuhrer and Todd D.
                 Millstein",
  title =        "Towards concurrency refactoring for {X10}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "303--304",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504226",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this poster, we present our vision of refactoring
                 support for languages with a partitioned global address
                 space memory model as embodied in the X10 programming
                 language. We examine a novel refactoring, extract
                 concurrent, that introduces additional concurrency
                 within a loop by arranging for some user-selected code
                 in the loop body to run in parallel with other
                 iterations of the loop. We discuss the mechanisms and
                 challenges for implementing this refactoring and how
                 development of this refactoring provides insight for
                 designing future refactorings.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; partitioned global address space;
                 refactoring; x10",
}

@Article{Scott:2009:THR,
  author =       "Stephen L. Scott and Christian Engelmann and Geoffroy
                 R. Vall{\'e}e and Thomas Naughton and Anand Tikotekar
                 and George Ostrouchov and Chokchai Leangsuksun and
                 Nichamon Naksinehaboon and Raja Nassar and Mihaela Paun
                 and Frank Mueller and Chao Wang and Arun B. Nagarajan
                 and Jyothish Varma",
  title =        "A tunable holistic resiliency approach for
                 high-performance computing systems",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "305--306",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1504176.1504227",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In order to address anticipated high failure rates,
                 resiliency characteristics have become an urgent
                 priority for next-generation extreme-scale
                 high-performance computing (HPC) systems. This poster
                 describes our past and ongoing efforts in novel fault
                 resilience technologies for HPC. Presented work
                 includes proactive fault resilience techniques, system
                 and application reliability models and analyses,
                 failure prediction, transparent process- and
                 virtual-machine-level migration, and trade-off models
                 for combining preemptive migration with
                 checkpoint/restart. This poster summarizes our work and
                 puts all individual technologies into context with a
                 proposed holistic fault resilience framework.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "checkpoint/restart; fault tolerance; high-performance
                 computing; preemptive migration; resilience",
}

@Article{Kulkarni:2009:TBT,
  author =       "Chinmay Eishan Kulkarni and Osman Unsal and Adri{\'a}n
                 Cristal and Eduard Ayguad{\'e} and Mateo Valero",
  title =        "Turbocharging boosted transactions or: how {I} learnt
                 to stop worrying and love longer transactions",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "4",
  pages =        "307--308",
  month =        apr,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1594835.1504228",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:49 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Boosted transactions offer an attractive method that
                 enables programmers to create larger transactions that
                 scale well and offer deadlock-free guarantees. However,
                 as boosted transactions get larger, they become more
                 susceptible to conflicts and aborts. We describe a
                 linear-time algorithm to detect transactions that
                 cannot make progress, {\em which\/} transactions need
                 to be aborted, and {\em when}. The algorithm guarantees
                 zero false positives with minimal aborts. Our
                 proposals, as implemented in DSTM2, increase the
                 transactional throughput of the system, often by more
                 than 30\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; deadlock-detection; deadlocks; parallel
                 programming; transactional memory",
}

@Article{Alglave:2009:SPA,
  author =       "Jade Alglave and Anthony Fox and Samin Ishtiaq and
                 Magnus O. Myreen and Susmit Sarkar and Peter Sewell and
                 Francesco Zappa Nardelli",
  title =        "The semantics of power and {ARM} multiprocessor
                 machine code (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "5",
  pages =        "8--8",
  month =        may,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1629635.1629638",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:41 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We develop a rigorous semantics for Power and ARM
                 multiprocessor programs, including their relaxed memory
                 model and the behaviour of reasonable fragments of
                 their instruction sets. The semantics is mechanised in
                 the HOL proof assistant. This should provide a good
                 basis for informal reasoning and formal verification of
                 low-level code for these weakly consistent
                 architectures, and, together with our x86 semantics,
                 for the design and compilation of high-level concurrent
                 languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ziarek:2009:SWB,
  author =       "Lukasz Ziarek and Suresh Jagannathan and Matthew Fluet
                 and Umut A. Acar",
  title =        "Speculative {$N$}-way barriers (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "5",
  pages =        "8--8",
  month =        may,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1629635.1629637",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:41 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Speculative execution is an important technique that
                 has historically been used to extract concurrency from
                 sequential programs. While techniques to support
                 speculation work well when computations perform
                 relatively simple actions (e.g., reads and writes to
                 known locations), understanding speculation for
                 multi-threaded programs in which threads may
                 communicate and synchronize through multiple shared
                 references is significantly more challenging, and is
                 the focus of this paper.\par

                 We use as our reference point a simple higher-order
                 concurrent language extended with an n-way barrier and
                 a fork/join execution model. Our technique permits the
                 expression guarded by the barrier to speculatively
                 proceed before the barrier has been satisfied (i.e.,
                 before all threads that synchronize on that barrier
                 have done so) and to have participating threads that
                 would normally block on the barrier to speculatively
                 proceed as well. Our solution formulates safety
                 properties under which speculation is correct in a
                 fork/join model, and per-synchronization basis.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Zain:2009:LPH,
  author =       "Abdallah Deeb I. Al Zain and Kevin Hammond and Jost
                 Berthold and Phil Trinder and Greg Michaelson and
                 Mustafa Aswad",
  title =        "Low-pain, high-gain multicore programming in
                 {Haskell}: coordinating irregular symbolic computations
                 on multicore architectures (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "5",
  pages =        "8--9",
  month =        may,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1629635.1629639",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:41 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "With the emergence of commodity multicore
                 architectures, exploiting tightly-coupled parallelism
                 has become increasingly important. Functional
                 programming languages, such as Haskell, are, in
                 principle, well placed to take advantage of this trend,
                 offering the ability to easily identify large amounts
                 of fine-grained parallelism. Unfortunately, obtaining
                 real performance benefits has often proved hard to
                 realise in practice.\par

                 This paper reports on a new approach using middleware
                 that has been constructed using the Eden parallel
                 dialect of Haskell. Our approach is 'low pain' in the
                 sense that the programmer constructs a parallel program
                 by inserting a small number of higher-order algorithmic
                 skeletons at key points in the program. It is 'high
                 gain' in the sense that we are able to get good
                 parallel speedups. Our approach is unusual in that we
                 do not attempt to use shared memory directly, but
                 rather coordinate parallel computations using a
                 message-passing implementation. This approach has a
                 number of advantages. Firstly, coordination, i.e.
                 locking and communication, is both confined to limited
                 shared memory areas, essentially the communication
                 buffers, and is also isolated within well-understood
                 libraries. Secondly, the coarse thread granularity that
                 we obtain reduces coordination overheads, so locks are
                 normally needed only on (relatively large) messages,
                 and not on individual data items, as is often the case
                 for simple shared-memory implementations. Finally,
                 cache coherency requirements are reduced since
                 individual tasks do not share caches, and can garbage
                 collect independently.\par

                 We report results for two representative computational
                 algebra problems. Computational algebra is a
                 challenging application area that has not been widely
                 studied in the general parallelism community.
                 Computational algebra applications have high
                 computational demands, and are, in principle, often
                 suitable for parallel execution, but usually display a
                 high degree of irregularity in terms of both task and
                 data structure. This makes it difficult to construct
                 parallel applications that perform well in practice.
                 Using our system, we are able to obtain both extremely
                 good processor utilisation (97\%) and very good
                 absolute speedups (up to 7.7) on an eight-core
                 machine.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Budimlic:2009:DAM,
  author =       "Zoran Budimlic and Aparna M. Chandramowlishwaran and
                 Kathleen Knobe and Geoff N. Lowney and Vivek Sarkar and
                 Leo Treggiari",
  title =        "Declarative aspects of memory management in the
                 concurrent collections parallel programming model
                 (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "5",
  pages =        "9--9",
  month =        may,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1629635.1629641",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:41 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Concurrent Collections (CnC) is a declarative parallel
                 language that allows the application developer to
                 express their parallel application as a collection of
                 high-level computations called steps that communicate
                 via single-assignment data structures called
                 items.\par

                 A CnC program is specified in two levels. At the bottom
                 level, an existing imperative language implements the
                 computations within the individual computation steps.
                 At the top level, CnC describes the relationships
                 (ordering constraints) among the steps. The memory
                 management mechanism of the existing imperative
                 language manages data whose lifetime is within a
                 computation step. A key limitation in the use of CnC
                 for long-running programs is the lack of memory
                 management and garbage collection for data items with
                 lifetimes that are longer than a single computation
                 step. Although the goal here is the same as that of
                 classical garbage collection, the nature of problem and
                 therefore nature of the solution is distinct. The focus
                 of this paper is the memory management problem for
                 these data items in CnC.\par

                 We introduce a new declarative slicing annotation for
                 CnC that can be transformed into a reference counting
                 procedure for memory management. Preliminary
                 experimental results obtained from a Cholesky example
                 show that our memory management approach can result in
                 space reductions for CnC data items of up to 28x
                 relative to the baseline case of standard CnC without
                 memory management.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sulzmann:2009:CPCa,
  author =       "Martin Sulzmann and Edmund S. L. Lam and Simon
                 Marlow",
  title =        "Comparing the performance of concurrent linked-list
                 implementations in {Haskell} (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "5",
  pages =        "9--9",
  month =        may,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1629635.1629640",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:41 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Haskell has a rich set of synchronization primitives
                 for implementing shared-state concurrency abstractions,
                 ranging from the very high level (Software
                 Transactional Memory) to the very low level (mutable
                 variables with atomic read-modify-write).\par

                 In this paper we perform a systematic comparison of
                 these different concurrent programming models by using
                 them to implement the same abstraction: a concurrent
                 linked-list. Our results are somewhat surprising: there
                 is a full two orders of magnitude difference in
                 performance between the slowest and the fastest
                 implementation. Our analysis of the performance results
                 gives new insights into the relative performance of the
                 programming models and their
                 implementation.\par

                 Finally, we suggest the addition of a single primitive
                 which in our experiments improves the performance of
                 one of the STM-based implementations by more than a
                 factor of 7.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Herhut:2009:CCS,
  author =       "Stephan Herhut and Sven-Bodo Scholz and Clemens
                 Grelck",
  title =        "Controlling chaos: on safe side-effects in
                 data-parallel operations (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "5",
  pages =        "9--10",
  month =        may,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1629635.1629642",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:41 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "With the rising variety of hardware designs for
                 multi-core systems, the effectiveness in exploiting
                 implicit concurrency of programs plays a more vital
                 role for programming such systems than ever before. We
                 believe that a combination of a dataparallel approach
                 with a declarative programming-style is up to that
                 task: Data-parallel approaches are known to enable
                 compilers to make efficient use of multi-processors
                 without requiring low-level program annotations.
                 Combining the dataparallel approach with a declarative
                 programming-style guarantees semantic equivalence
                 between sequential and concurrent executions of data
                 parallel operations. Furthermore, the side-effect free
                 setting and explicit model of dependencies enables
                 compilers to maximise the size of the data-parallel
                 program sections.\par

                 However, the strength of the rigidity of the
                 declarative approach also constitutes its weakness:
                 Being bound to observe all data dependencies
                 categorically rules out the use of side-effecting
                 operations within data-parallel sections. Not only does
                 this limit the size of these regions in certain
                 situations, but it may also hamper an effective
                 workload distribution. Considering side effects such as
                 plotting individual pixels of an image or output for
                 debugging purposes, there are situations where a
                 non-deterministic order of side-effects would not be
                 considered harmful at all.\par

                 We propose a mechanism for enabling such
                 non-determinism on the execution of side-effecting
                 operations within data-parallel sections without
                 sacrificing the side-effect free setting in general.
                 Outside of the data-parallel sections we ensure single
                 threading of side-effecting operations using uniqueness
                 typing. Within data-parallel operations however we
                 allow the side-effecting operations of different
                 threads to occur in any order, as long as effects of
                 different threads are not interleaved. Furthermore, we
                 still model the dependencies arising from the
                 manipulated states within the data parallel sections.
                 This measure preserves the explicitness of all data
                 dependencies and therefore it preserves the
                 transformational potential of any restructuring
                 compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sulzmann:2009:CPCb,
  author =       "Martin Sulzmann and Edmund S. L. Lam and Simon
                 Marlow",
  title =        "Comparing the performance of concurrent linked-list
                 implementations in {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "5",
  pages =        "11--20",
  month =        may,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1629635.1629643",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:41 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Haskell has a rich set of synchronization primitives
                 for implementing shared-state concurrency abstractions,
                 ranging from the very high level (Software
                 Transactional Memory) to the very low level (mutable
                 variables with atomic read-modify-write).\par

                 In this paper we perform a systematic comparison of
                 these different concurrent programming models by using
                 them to implement the same abstraction: a concurrent
                 linked-list. Our results are somewhat surprising: there
                 is a full two orders of magnitude difference in
                 performance between the slowest and the fastest
                 implementation. Our analysis of the performance results
                 gives new insights into the relative performance of the
                 programming models and their
                 implementation.\par

                 Finally, we suggest the addition of a single primitive
                 which in our experiments improves the performance of
                 one of the STM-based implementations by more than a
                 factor of 7.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Subramanian:2009:DSU,
  author =       "Suriya Subramanian and Michael Hicks and Kathryn S.
                 McKinley",
  title =        "Dynamic software updates: a {VM}-centric approach",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "1--12",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542478",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software evolves to fix bugs and add features.
                 Stopping and restarting programs to apply changes is
                 inconvenient and often costly. Dynamic software
                 updating (DSU) addresses this problem by updating
                 programs while they execute, but existing DSU systems
                 for managed languages do not support many updates that
                 occur in practice and are inefficient. This paper
                 presents the design and implementation of Jvolve, a
                 DSU-enhanced Java VM. Updated programs may add, delete,
                 and replace fields and methods anywhere within the
                 class hierarchy. Jvolve implements these updates by
                 adding to and coordinating VM classloading,
                 just-in-time compilation, scheduling, return barriers,
                 on-stack replacement, and garbage collection. Jvolve,
                 is {\em safe\/}: its use of bytecode verification and
                 VM thread synchronization ensures that an update will
                 always produce type-correct executions. Jvolve is {\em
                 flexible\/}: it can support 20 of 22 updates to three
                 open-source programs--Jetty web server,
                 JavaEmailServer, and CrossFTP server--based on actual
                 releases occurring over 1 to 2 years. Jvolve is {\em
                 efficient\/}: performance experiments show that incurs
                 {\em no overhead\/} during steady-state execution.
                 These results demonstrate that this work is a
                 significant step towards practical support for dynamic
                 updates in virtual machines for managed languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic software updating; garbage collection; virtual
                 machine technology",
}

@Article{Neamtiu:2009:STU,
  author =       "Iulian Neamtiu and Michael Hicks",
  title =        "Safe and timely updates to multi-threaded programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "13--24",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542479",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many dynamic updating systems have been developed that
                 enable a program to be patched while it runs, to fix
                 bugs or add new features. This paper explores
                 techniques for supporting dynamic updates to
                 multi-threaded programs, focusing on the problem of
                 applying an update in a timely fashion while still
                 producing correct behavior. Past work has shown that
                 this tension of {\em safety\/} versus timeliness can be
                 balanced for single-threaded programs. For
                 multi-threaded programs, the task is more difficult
                 because myriad thread interactions complicate
                 understanding the possible program states to which a
                 patch could be applied. Our approach allows the
                 programmer to specify a few program points (e.g., one
                 per thread) at which a patch may be applied, which
                 simplifies reasoning about safety. To improve
                 timeliness, a combination of static analysis and
                 run-time support automatically expands these few points
                 to many more that produce behavior equivalent to the
                 originals. Experiments with thirteen realistic updates
                 to three multi-threaded servers show that we can safely
                 perform a dynamic update within milliseconds when more
                 straightforward alternatives would delay some updates
                 indefinitely.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic software updating; multi-threading; update
                 safety; update timeliness",
}

@Article{Hammer:2009:CCB,
  author =       "Matthew A. Hammer and Umut A. Acar and Yan Chen",
  title =        "{CEAL}: a {C-based} language for self-adjusting
                 computation",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "25--37",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542480",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Self-adjusting computation offers a language-centric
                 approach to writing programs that can automatically
                 respond to modifications to their data (e.g., inputs).
                 Except for several domain-specific implementations,
                 however, all previous implementations of self-adjusting
                 computation assume mostly functional, higher-order
                 languages such as Standard ML. Prior to this work, it
                 was not known if self-adjusting computation can be made
                 to work with low-level, imperative languages such as C
                 without placing undue burden on the programmer.\par

                 We describe the design and implementation of CEAL: a
                 C-based language for self-adjusting computation. The
                 language is fully general and extends C with a small
                 number of primitives to enable writing self-adjusting
                 programs in a style similar to conventional C programs.
                 We present efficient compilation techniques for
                 translating CEAL programs into C that can be compiled
                 with existing C compilers using primitives supplied by
                 a run-time library for self-adjusting computation. We
                 implement the proposed compiler and evaluate its
                 effectiveness. Our experiments show that CEAL is
                 effective in practice: compiled self-adjusting programs
                 respond to small modifications to their data by orders
                 of magnitude faster than recomputing from scratch while
                 slowing down a from-scratch run by a moderate constant
                 factor. Compared to previous work, we measure
                 significant space and time improvements.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compilation; control and data flow; dominators;
                 performance; self-adjusting computation; tail calls;
                 trampolines",
}

@Article{Ansel:2009:PLC,
  author =       "Jason Ansel and Cy Chan and Yee Lok Wong and Marek
                 Olszewski and Qin Zhao and Alan Edelman and Saman
                 Amarasinghe",
  title =        "{PetaBricks}: a language and compiler for algorithmic
                 choice",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "38--49",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542481",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "It is often impossible to obtain a one-size-fits-all
                 solution for high performance algorithms when
                 considering different choices for data distributions,
                 parallelism, transformations, and blocking. The best
                 solution to these choices is often tightly coupled to
                 different architectures, problem sizes, data, and
                 available system resources. In some cases, completely
                 different algorithms may provide the best performance.
                 Current compiler and programming language techniques
                 are able to change some of these parameters, but today
                 there is no simple way for the programmer to express or
                 the compiler to choose different algorithms to handle
                 different parts of the data. Existing solutions
                 normally can handle only coarse-grained, library level
                 selections or hand coded cutoffs between base cases and
                 recursive cases.\par

                 We present PetaBricks, a new implicitly parallel
                 language and compiler where having multiple
                 implementations of multiple algorithms to solve a
                 problem is the natural way of programming. We make
                 algorithmic choice a first class construct of the
                 language. Choices are provided in a way that also
                 allows our compiler to tune at a finer granularity. The
                 PetaBricks compiler autotunes programs by making both
                 fine-grained as well as algorithmic choices. Choices
                 also include different automatic parallelization
                 techniques, data distributions, algorithmic parameters,
                 transformations, and blocking.\par

                 Additionally, we introduce novel techniques to autotune
                 algorithms for different convergence criteria. When
                 choosing between various direct and iterative methods,
                 the PetaBricks compiler is able to tune a program in
                 such a way that delivers near-optimal efficiency for
                 any desired level of accuracy. The compiler has the
                 flexibility of utilizing different convergence criteria
                 for the various components within a single algorithm,
                 providing the user with accuracy choice alongside
                 algorithmic choice.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "adaptive; algorithmic choice; autotuning; compiler;
                 implicitly parallel; language",
}

@Article{Chugh:2009:SIF,
  author =       "Ravi Chugh and Jeffrey A. Meister and Ranjit Jhala and
                 Sorin Lerner",
  title =        "Staged information flow for {JavaScript}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "50--62",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542483",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Modern websites are powered by JavaScript, a flexible
                 dynamic scripting language that executes in client
                 browsers. A common paradigm in such websites is to
                 include third-party JavaScript code in the form of
                 libraries or advertisements. If this code were
                 malicious, it could read sensitive information from the
                 page or write to the location bar, thus redirecting the
                 user to a malicious page, from which the entire machine
                 could be compromised. We present an information-flow
                 based approach for inferring the effects that a piece
                 of JavaScript has on the website in order to ensure
                 that key security properties are not violated. To
                 handle dynamically loaded and generated JavaScript, we
                 propose a framework for staging information flow
                 properties. Our framework propagates information flow
                 through the currently known code in order to compute a
                 minimal set of syntactic residual checks that are
                 performed on the remaining code when it is dynamically
                 loaded. We have implemented a prototype framework for
                 staging information flow. We describe our techniques
                 for handling some difficult features of JavaScript and
                 evaluate our system's performance on a variety of large
                 real-world websites. Our experiments show that static
                 information flow is feasible and efficient for
                 JavaScript, and that our technique allows the
                 enforcement of information-flow policies with almost no
                 run-time overhead.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "confidentiality; flow analysis; integrity; set
                 constraints; web applications",
}

@Article{Roy:2009:LPF,
  author =       "Indrajit Roy and Donald E. Porter and Michael D. Bond
                 and Kathryn S. McKinley and Emmett Witchel",
  title =        "{Laminar}: practical fine-grained decentralized
                 information flow control",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "63--74",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542484",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Decentralized information flow control (DIFC) is a
                 promising model for writing programs with powerful,
                 end-to-end security guarantees. Current DIFC systems
                 that run on commodity hardware can be broadly
                 categorized into two types: language-level and
                 operating system-level DIFC. Language level solutions
                 provide no guarantees against security violations on
                 system resources, like files and sockets. Operating
                 system solutions can mediate accesses to system
                 resources, but are inefficient at monitoring the flow
                 of information through fine-grained program data
                 structures.\par

                 This paper describes Laminar, the first system to
                 implement decentralized information flow control using
                 a single set of abstractions for OS resources and
                 heap-allocated objects. Programmers express security
                 policies by labeling data with secrecy and integrity
                 labels, and then access the labeled data in lexically
                 scoped security regions. Laminar enforces the security
                 policies specified by the labels at runtime. Laminar is
                 implemented using a modified Java virtual machine and a
                 new Linux security module. This paper shows that
                 security regions ease incremental deployment and limit
                 dynamic security checks, allowing us to retrofit DIFC
                 policies on four application case studies. Replacing
                 the applications' ad-hoc security policies changes less
                 than 10\% of the code, and incurs performance overheads
                 from 1\% to 56\%. Whereas prior DIFC systems only
                 support limited types of multithreaded programs,
                 Laminar supports a more general class of multithreaded
                 DIFC programs that can access heterogeneously labeled
                 data.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "information flow control; java virtual machine;
                 operating systems; security region",
}

@Article{Livshits:2009:MSI,
  author =       "Benjamin Livshits and Aditya V. Nori and Sriram K.
                 Rajamani and Anindya Banerjee",
  title =        "{Merlin}: specification inference for explicit
                 information flow problems",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "75--86",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542485",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The last several years have seen a proliferation of
                 static and runtime analysis tools for finding security
                 violations that are caused by {\em explicit information
                 flow\/} in programs. Much of this interest has been
                 caused by the increase in the number of vulnerabilities
                 such as cross-site scripting and SQL injection. In
                 fact, these explicit information flow vulnerabilities
                 commonly found in Web applications now outnumber
                 vulnerabilities such as buffer overruns common in
                 type-unsafe languages such as C and C++. Tools checking
                 for these vulnerabilities require a specification to
                 operate. In most cases the task of providing such a
                 specification is delegated to the user. Moreover, the
                 efficacy of these tools is only as good as the
                 specification. Unfortunately, writing a comprehensive
                 specification presents a major challenge: parts of the
                 specification are easy to miss, leading to missed
                 vulnerabilities; similarly, incorrect specifications
                 may lead to false positives.\par

                 This paper proposes Merlin, a new approach for
                 automatically inferring explicit information flow
                 specifications from program code. Such specifications
                 greatly reduce manual labor, and enhance the quality of
                 results, while using tools that check for security
                 violations caused by explicit information flow.
                 Beginning with a data propagation graph, which
                 represents interprocedural flow of information in the
                 program, Merlin aims to automatically infer an
                 information flow specification. Merlin models
                 information flow paths in the propagation graph using
                 probabilistic constraints. A naive modeling requires an
                 exponential number of constraints, one per path in the
                 propagation graph. For scalability, we approximate
                 these path constraints using constraints on chosen
                 triples of nodes, resulting in a cubic number of
                 constraints. We characterize this approximation as a
                 probabilistic abstraction, using the theory of
                 probabilistic refinement developed by McIver and
                 Morgan. We solve the resulting system of probabilistic
                 constraints using factor graphs, which are a well-known
                 structure for performing probabilistic
                 inference.\par

                 We experimentally validate the Merlin approach by
                 applying it to 10 large business-critical Web
                 applications that have been analyzed with CAT.NET, a
                 state-of-the-art static analysis tool for .NET. We find
                 a total of 167 new confirmed specifications, which
                 result in a total of 322 {\em additional\/}
                 vulnerabilities across the 10 benchmarks. More accurate
                 specifications also reduce the false positive rate: in
                 our experiments, Merlin-inferred specifications result
                 in 13 false positives being removed; this constitutes a
                 15\% reduction in the CAT.NET false positive rate on
                 these 10 programs. The final false positive rate for
                 CAT.NET after applying Merlin in our experiments drops
                 to under 1\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "security analysis tools; specification inference",
}

@Article{Tripp:2009:TET,
  author =       "Omer Tripp and Marco Pistoia and Stephen J. Fink and
                 Manu Sridharan and Omri Weisman",
  title =        "{TAJ}: effective taint analysis of web applications",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "87--97",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542486",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Taint analysis, a form of information-flow analysis,
                 establishes whether values from untrusted methods and
                 parameters may flow into security-sensitive operations.
                 Taint analysis can detect many common vulnerabilities
                 in Web applications, and so has attracted much
                 attention from both the research community and
                 industry. However, most static taint-analysis tools do
                 not address critical requirements for an
                 industrial-strength tool. Specifically, an
                 industrial-strength tool must scale to large industrial
                 Web applications, model essential Web-application code
                 artifacts, and generate consumable reports for a wide
                 range of attack vectors.\par

                 We have designed and implemented a static Taint
                 Analysis for Java (TAJ) that meets the requirements of
                 industry-level applications. TAJ can analyze
                 applications of virtually any size, as it employs a set
                 of techniques designed to produce useful answers given
                 limited time and space. TAJ addresses a wide variety of
                 attack vectors, with techniques to handle reflective
                 calls, flow through containers, nested taint, and
                 issues in generating useful reports. This paper
                 provides a description of the algorithms comprising
                 TAJ, evaluates TAJ against production-level benchmarks,
                 and compares it with alternative solutions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "java; program analysis; security; slicing; static
                 analysis; taint analysis; web application",
}

@Article{Anderson:2009:LAC,
  author =       "Zachary R. Anderson and David Gay and Mayur Naik",
  title =        "Lightweight annotations for controlling sharing in
                 concurrent data structures",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "98--109",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542488",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "SharC is a recently developed system for checking
                 data-sharing in multithreaded programs. Programmers
                 specify sharing rules (read-only, protected by a lock,
                 etc.) for individual objects, and the SharC compiler
                 enforces these rules using static and dynamic checks.
                 Violations of these rules indicate unintended data
                 sharing, which is the underlying cause of harmful
                 data-races. Additionally, SharC allows programmers to
                 change the sharing rules for a specific object using a
                 {\em sharing cast}, to capture the fact that sharing
                 rules for an object often change during the object's
                 lifetime. SharC was successfully applied to a number of
                 multi-threaded C programs.\par

                 However, many programs are not readily checkable using
                 SharC because their sharing rules, and changes to
                 sharing rules, effectively apply to whole data
                 structures rather than to individual objects. We have
                 developed a system called {\em Shoal\/} to address this
                 shortcoming. In addition to the sharing rules and
                 sharing cast of SharC, our system includes a new
                 concept that we call {\em groups}. A group is a
                 collection of objects all having the same sharing mode.
                 Each group has a distinguished member called the {\em
                 group leader}. When the sharing mode of the group
                 leader changes by way of a sharing cast, the sharing
                 mode of all members of the group also changes. This
                 operation is made sound by maintaining the invariant
                 that at the point of a sharing cast, the only external
                 pointer into the group is the pointer to the group
                 leader. The addition of groups allows checking safe
                 concurrency at the level of data structures rather than
                 at the level of individual objects.\par

                 We demonstrate the necessity and practicality of groups
                 by applying Shoal to a wide range of concurrent C
                 programs (the largest approaching a million lines of
                 code). In all benchmarks groups entail low annotation
                 burden and no significant additional performance
                 overhead.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrent programming; data races; multithreaded
                 programming",
}

@Article{Joshi:2009:RDP,
  author =       "Pallavi Joshi and Chang-Seo Park and Koushik Sen and
                 Mayur Naik",
  title =        "A randomized dynamic program analysis technique for
                 detecting real deadlocks",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "110--120",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542489",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a novel dynamic analysis technique that
                 finds real deadlocks in multi-threaded programs. Our
                 technique runs in two stages. In the first stage, we
                 use an imprecise dynamic analysis technique to find
                 potential deadlocks in a multi-threaded program by
                 observing an execution of the program. In the second
                 stage, we control a random thread scheduler to create
                 the potential deadlocks with high probability. Unlike
                 other dynamic analysis techniques, our approach has the
                 advantage that it does not give any false warnings. We
                 have implemented the technique in a prototype tool for
                 Java, and have experimented on a number of large
                 multi-threaded Java programs. We report a number of
                 previously known and unknown real deadlocks that were
                 found in these benchmarks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "active testing; concurrency; deadlock detection;
                 dynamic program analysis",
}

@Article{Flanagan:2009:FEP,
  author =       "Cormac Flanagan and Stephen N. Freund",
  title =        "{FastTrack}: efficient and precise dynamic race
                 detection",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "121--133",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542490",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multithreaded programs are notoriously prone to race
                 conditions. Prior work on dynamic race detectors
                 includes fast but imprecise race detectors that report
                 false alarms, as well as slow but precise race
                 detectors that never report false alarms. The latter
                 typically use expensive vector clock operations that
                 require time linear in the number of program
                 threads.\par

                 This paper exploits the insight that the full
                 generality of vector clocks is unnecessary in most
                 cases. That is, we can replace heavyweight vector
                 clocks with an adaptive lightweight representation
                 that, for almost all operations of the target program,
                 requires only constant space and supports constant-time
                 operations. This representation change significantly
                 improves time and space performance, with no loss in
                 precision.\par

                 Experimental results on Java benchmarks including the
                 Eclipse development environment show that our FastTrack
                 race detector is an order of magnitude faster than a
                 traditional vector-clock race detector, and roughly
                 twice as fast as the high-performance DJIT+ algorithm.
                 FastTrack is even comparable in speed to Eraser on our
                 Java benchmarks, while never reporting false alarms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; dynamic analysis; race conditions",
}

@Article{Marino:2009:LES,
  author =       "Daniel Marino and Madanlal Musuvathi and Satish
                 Narayanasamy",
  title =        "{LiteRace}: effective sampling for lightweight
                 data-race detection",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "134--143",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542491",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Data races are one of the most common and subtle
                 causes of pernicious concurrency bugs. Static
                 techniques for preventing data races are overly
                 conservative and do not scale well to large programs.
                 Past research has produced several dynamic data race
                 detectors that can be applied to large programs. They
                 are precise in the sense that they only report actual
                 data races. However, dynamic data race detectors incur
                 a high performance overhead, slowing down a program's
                 execution by an order of magnitude.\par

                 In this paper we present LiteRace, a very lightweight
                 data race detector that samples and analyzes only
                 selected portions of a program's execution. We show
                 that it is possible to sample a multithreaded program
                 at a low frequency, and yet, find infrequently
                 occurring data races. We implemented LiteRace using
                 Microsoft's Phoenix compiler. Our experiments with
                 several Microsoft programs, Apache, and Firefox show
                 that LiteRace is able to find more than 70\% of data
                 races by sampling less than 2\% of memory accesses in a
                 given program execution.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency bugs; dynamic data race detection;
                 sampling",
}

@Article{Petrank:2009:PGP,
  author =       "Erez Petrank and Madanlal Musuvathi and Bjarne
                 Steensgaard",
  title =        "Progress guarantee for parallel programs via bounded
                 lock-freedom",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "144--154",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542493",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Parallel platforms are becoming ubiquitous with modern
                 computing systems. Many parallel applications attempt
                 to avoid locks in order to achieve high responsiveness,
                 aid scalability, and avoid deadlocks and livelocks.
                 However, avoiding the use of system locks does not
                 guarantee that no locks are actually used, because
                 progress inhibitors may occur in subtle ways through
                 various program structures. Notions of progress
                 guarantee such as lock-freedom, wait-freedom, and
                 obstruction-freedom have been proposed in the
                 literature to provide various levels of progress
                 guarantees.\par

                 In this paper we formalize the notions of progress
                 guarantees using linear temporal logic (LTL). We
                 concentrate on lock-freedom and propose a variant of it
                 denoted {\em bounded lock-freedom}, which is more
                 suitable for guaranteeing progress in practical
                 systems. We use this formal definition to build a tool
                 that checks if a concurrent program is bounded
                 lock-free for a given bound. We then study the
                 interaction between programs with progress guarantees
                 and the underlying system (e.g., compilers, runtimes,
                 operating systems, and hardware platforms). We propose
                 a means to argue that an underlying system supports
                 lock-freedom. A composition theorem asserts that
                 bounded lock-free algorithms running on bounded
                 lock-free supporting systems retain bounded
                 lock-freedom for the composed execution.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bounded lock-freedom; lock-freedom; model checking;
                 parallel computation; progress guarantees",
}

@Article{Dragojevic:2009:STM,
  author =       "Aleksandar Dragojevi{\'c} and Rachid Guerraoui and
                 Michal Kapalka",
  title =        "Stretching transactional memory",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "155--165",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542494",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Transactional memory (TM) is an appealing abstraction
                 for programming multi-core systems. Potential target
                 applications for TM, such as business software and
                 video games, are likely to involve complex data
                 structures and large transactions, requiring specific
                 software solutions (STM). So far, however, STMs have
                 been mainly evaluated and optimized for smaller scale
                 benchmarks.\par

                 We revisit the main STM design choices from the
                 perspective of complex workloads and propose a new STM,
                 which we call SwissTM. In short, SwissTM is lock- and
                 word-based and uses (1) optimistic (commit-time)
                 conflict detection for read/write conflicts and
                 pessimistic (encounter-time) conflict detection for
                 write/write conflicts, as well as (2) a new two-phase
                 contention manager that ensures the progress of long
                 transactions while inducing no overhead on short ones.
                 SwissTM outperforms state-of-the-art STM
                 implementations, namely RSTM, TL2, and TinySTM, in our
                 experiments on STMBench7, STAMP, Lee-TM and red-black
                 tree benchmarks.\par

                 Beyond SwissTM, we present the most complete evaluation
                 to date of the individual impact of various STM design
                 choices on the ability to support the mixed workloads
                 of large applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "benchmarks; software transactional memories",
}

@Article{Mehrara:2009:PSA,
  author =       "Mojtaba Mehrara and Jeff Hao and Po-Chun Hsu and Scott
                 Mahlke",
  title =        "Parallelizing sequential applications on commodity
                 hardware using a low-cost software transactional
                 memory",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "166--176",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542495",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multicore designs have emerged as the mainstream
                 design paradigm for the microprocessor industry.
                 Unfortunately, providing multiple cores does not
                 directly translate into performance for most
                 applications. The industry has already fallen short of
                 the decades-old performance trend of doubling
                 performance every 18 months. An attractive approach for
                 exploiting multiple cores is to rely on tools, both
                 compilers and runtime optimizers, to automatically
                 extract threads from sequential applications. However,
                 despite decades of research on automatic
                 parallelization, most techniques are only effective in
                 the scientific and data parallel domains where array
                 dominated codes can be precisely analyzed by the
                 compiler. Thread-level speculation offers the
                 opportunity to expand parallelization to
                 general-purpose programs, but at the cost of expensive
                 hardware support. In this paper, we focus on providing
                 low-overhead software support for exploiting
                 speculative parallelism. We propose STMlite, a
                 light-weight software transactional memory model that
                 is customized to facilitate profile-guided automatic
                 loop parallelization. STMlite eliminates a considerable
                 amount of checking and locking overhead in conventional
                 software transactional memory models by decoupling the
                 commit phase from main transaction execution. Further,
                 strong atomicity requirements for generic transactional
                 memories are unnecessary within a stylized automatic
                 parallelization framework. STMlite enables sequential
                 applications to extract meaningful performance gains on
                 commodity multicore hardware.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automatic parallelization; loop level parallelism;
                 profile-guided optimization; software transactional
                 memory; thread-level speculation",
}

@Article{Tournavitis:2009:THA,
  author =       "Georgios Tournavitis and Zheng Wang and Bj{\"o}rn
                 Franke and Michael F. P. O'Boyle",
  title =        "Towards a holistic approach to auto-parallelization:
                 integrating profile-driven parallelism detection and
                 machine-learning based mapping",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "177--187",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542496",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Compiler-based auto-parallelization is a much studied
                 area, yet has still not found wide-spread application.
                 This is largely due to the poor exploitation of
                 application parallelism, subsequently resulting in
                 performance levels far below those which a skilled
                 expert programmer could achieve. We have identified two
                 weaknesses in traditional parallelizing compilers and
                 propose a novel, integrated approach, resulting in
                 significant performance improvements of the generated
                 parallel code. Using profile-driven parallelism
                 detection we overcome the limitations of static
                 analysis, enabling us to identify more application
                 parallelism and only rely on the user for final
                 approval. In addition, we replace the traditional
                 target-specific and inflexible mapping heuristics with
                 a machine-learning based prediction mechanism,
                 resulting in better mapping decisions while providing
                 more scope for adaptation to different target
                 architectures. We have evaluated our parallelization
                 strategy against the NAS and SPEC OMP benchmarks and
                 two different multi-core platforms (dual quad-core
                 Intel Xeon SMP and dual-socket QS20 Cell blade). We
                 demonstrate that our approach not only yields
                 significant improvements when compared with
                 state-of-the-art parallelizing compilers, but comes
                 close to and sometimes exceeds the performance of
                 manually parallelized codes. On average, our
                 methodology achieves 96\% of the performance of the
                 hand-tuned OpenMP NAS and SPEC parallel benchmarks on
                 the Intel Xeon platform and gains a significant speedup
                 for the IBM Cell platform, demonstrating the potential
                 of profile-guided and machine-learning based
                 parallelization for complex multi-core platforms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "auto-parallelization; machine-learning based
                 parallelism mapping; OpenMP; profile-driven parallelism
                 detection",
}

@Article{Hooimeijer:2009:DPS,
  author =       "Pieter Hooimeijer and Westley Weimer",
  title =        "A decision procedure for subset constraints over
                 regular languages",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "188--198",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542498",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Reasoning about string variables, in particular
                 program inputs, is an important aspect of many program
                 analyses and testing frameworks. Program inputs
                 invariably arrive as strings, and are often manipulated
                 using high-level string operations such as equality
                 checks, regular expression matching, and string
                 concatenation. It is difficult to reason about these
                 operations because they are not well-integrated into
                 current constraint solvers.\par

                 We present a decision procedure that solves systems of
                 equations over regular language variables. Given such a
                 system of constraints, our algorithm finds satisfying
                 assignments for the variables in the system. We define
                 this problem formally and render a mechanized
                 correctness proof of the core of the algorithm. We
                 evaluate its scalability and practical utility by
                 applying it to the problem of automatically finding
                 inputs that cause SQL injection vulnerabilities.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "decision procedure; regular language",
}

@Article{Schwerdfeger:2009:VCD,
  author =       "August C. Schwerdfeger and Eric R. {Van Wyk}",
  title =        "Verifiable composition of deterministic grammars",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "199--210",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542499",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "There is an increasing interest in extensible
                 languages, (domain-specific) language extensions, and
                 mechanisms for their specification and implementation.
                 One challenge is to develop tools that allow non-expert
                 programmers to add an eclectic set of language
                 extensions to a host language. We describe mechanisms
                 for composing and analyzing concrete syntax
                 specifications of a host language and extensions to it.
                 These specifications consist of context-free grammars
                 with each terminal symbol mapped to a regular
                 expression, from which a slightly-modified LR parser
                 and context-aware scanner are generated. Traditionally,
                 conflicts are detected when a parser is generated from
                 the composed grammar, but this comes too late since it
                 is the non-expert programmer directing the composition
                 of independently developed extensions with the host
                 language.\par

                 The primary contribution of this paper is a modular
                 analysis that is performed independently by each
                 extension designer on her extension (composed alone
                 with the host language). If each extension passes this
                 modular analysis, then the language composed later by
                 the programmer will compile with no conflicts or
                 lexical ambiguities. Thus, extension writers can verify
                 that their extension will safely compose with others
                 and, if not, fix the specification so that it will.
                 This is possible due to the context-aware scanner's
                 lexical disambiguation and a set of reasonable
                 restrictions limiting the constructs that can be
                 introduced by an extension. The restrictions ensure
                 that the parse table states can be partitioned so that
                 each state can be attributed to the host language or a
                 single extension.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "context-aware scanning; extensible languages; grammar
                 composition; language composition; lr parsing",
}

@Article{Torre:2009:ARP,
  author =       "Salvatore La Torre and Madhusudan Parthasarathy and
                 Gennaro Parlato",
  title =        "Analyzing recursive programs using a fixed-point
                 calculus",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "211--222",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542500",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We show that recursive programs where variables range
                 over finite domains can be effectively and efficiently
                 analyzed by describing the analysis algorithm using a
                 formula in a fixed-point calculus. In contrast with
                 programming in traditional languages, a fixed-point
                 calculus serves as a high-level programming language to
                 easily, correctly, and succinctly describe
                 model-checking algorithms While there have been
                 declarative high-level formalisms that have been
                 proposed earlier for analysis problems (e.g., Datalog
                 the fixed-point calculus we propose has the salient
                 feature that it also allows {\em algorithmic\/} aspects
                 to be specified.\par

                 We exhibit two classes of algorithms of symbolic
                 (BDD-based) algorithms written using this framework--
                 one for checking for errors in sequential recursive
                 Boolean programs, and the other to check for errors
                 reachable within a bounded number of context-switches
                 in a concurrent recursive Boolean program. Our
                 formalization of these otherwise complex algorithms is
                 extremely simple, and spans just a page of fixed-point
                 formulae. Moreover, we implement these algorithms in a
                 tool called Getafix which expresses algorithms as
                 fixed-point formulae and evaluates them efficiently
                 using a symbolic fixed-point solver called Mucke. The
                 resulting model-checking tools are surprisingly
                 efficient and are competitive in performance with
                 mature existing tools that have been fine-tuned for
                 these problems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstraction; logic; model-checking; mu-calculus;
                 recursive systems; software verification",
}

@Article{Srivastava:2009:PVU,
  author =       "Saurabh Srivastava and Sumit Gulwani",
  title =        "Program verification using templates over predicate
                 abstraction",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "223--234",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542501",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We address the problem of automatically generating
                 invariants with quantified and boolean structure for
                 proving the validity of given assertions or generating
                 pre-conditions under which the assertions are valid. We
                 present three novel algorithms, having different
                 strengths, that combine template and predicate
                 abstraction based formalisms to discover required
                 sophisticated program invariants using SMT
                 solvers.\par

                 Two of these algorithms use an iterative approach to
                 compute fixed-points (one computes a least fixed-point
                 and the other computes a greatest fixed-point), while
                 the third algorithm uses a constraint based approach to
                 encode the fixed-point. The key idea in all these
                 algorithms is to reduce the problem of invariant
                 discovery to that of finding {\em optimal\/} solutions
                 for unknowns (over conjunctions of some predicates from
                 a given set) in a template formula such that the
                 formula is valid.\par

                 Preliminary experiments using our implementation of
                 these algorithms show encouraging results over a
                 benchmark of small but complicated programs. Our
                 algorithms can verify program properties that, to our
                 knowledge, have not been automatically verified before.
                 In particular, our algorithms can generate full
                 correctness proofs for sorting algorithms (which
                 requires nested universally-existentially quantified
                 invariants) and can also generate preconditions
                 required to establish worst-case upper bounds of
                 sorting algorithms. Furthermore, for the case of
                 previously considered properties, in particular
                 sortedness in sorting algorithms, our algorithms take
                 less time than reported by previous techniques.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "constraint-based fixed-point; iterative fixed-point;
                 predicate abstraction; quantified invariants; SMT
                 solvers; template invariants; weakest preconditions",
}

@Article{Aftandilian:2009:GAU,
  author =       "Edward E. Aftandilian and Samuel Z. Guyer",
  title =        "{GC} assertions: using the garbage collector to check
                 heap properties",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "235--244",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542503",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper introduces {\em GC assertions}, a system
                 interface that programmers can use to check for errors,
                 such as data structure invariant violations, and to
                 diagnose performance problems, such as memory leaks. GC
                 assertions are checked by the garbage collector, which
                 is in a unique position to gather information and
                 answer questions about the lifetime and connectivity of
                 objects in the heap. By piggybacking on existing
                 garbage collector computations, our system is able to
                 check heap properties with very low overhead -- around
                 3\% of total execution time -- low enough for use in a
                 deployed setting.\par

                 We introduce several kinds of GC assertions and
                 describe how they are implemented in the collector. We
                 also describe our reporting mechanism, which provides a
                 complete path through the heap to the offending
                 objects. We report results on both the performance of
                 our system and the experience of using our assertions
                 to find and repair errors in real-world programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic analysis; garbage collection; heap
                 properties",
}

@Article{Nagarakatte:2009:SHC,
  author =       "Santosh Nagarakatte and Jianzhou Zhao and Milo M. K.
                 Martin and Steve Zdancewic",
  title =        "{SoftBound}: highly compatible and complete spatial
                 memory safety for {C}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "245--258",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542504",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Mar 11 18:10:42 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The serious bugs and security vulnerabilities
                 facilitated by C/C++'s lack of bounds checking are well
                 known, yet C and C++ remain in widespread use.
                 Unfortunately, C's arbitrary pointer arithmetic,
                 conflation of pointers and arrays, and
                 programmer-visible memory layout make retrofitting
                 C/C++ with spatial safety guarantees extremely
                 challenging. Existing approaches suffer from
                 incompleteness, have high runtime overhead, or require
                 non-trivial changes to the C source code. Thus far,
                 these deficiencies have prevented widespread adoption
                 of such techniques.\par

                 This paper proposes SoftBound, a compile-time
                 transformation for enforcing spatial safety of C.
                 Inspired by HardBound, a previously proposed
                 hardware-assisted approach, SoftBound similarly records
                 base and bound information for every pointer as
                 disjoint metadata. This decoupling enables SoftBound to
                 provide spatial safety without requiring changes to C
                 source code. Unlike HardBound, SoftBound is a
                 software-only approach and performs metadata
                 manipulation only when loading or storing pointer
                 values. A formal proof shows that this is sufficient to
                 provide spatial safety even in the presence of
                 arbitrary casts. SoftBound's full checking mode
                 provides complete spatial violation detection with 67\%
                 runtime overhead on average. To further reduce
                 overheads, SoftBound has a store-only checking mode
                 that successfully detects all the security
                 vulnerabilities in a test suite at the cost of only
                 22\% runtime overhead on average.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "buffer overflows; c; spatial memory safety",
}

@Article{Oiwa:2009:IMS,
  author =       "Yutaka Oiwa",
  title =        "Implementation of the memory-safe full {ANSI-C}
                 compiler",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "259--269",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542505",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes a completely memory-safe compiler
                 for C language programs that is fully compatible with
                 the ANSI C specification.\par

                 Programs written in C often suffer from nasty errors
                 due to dangling pointers and buffer overflow. Such
                 errors in Internet server programs are often exploited
                 by malicious attackers to crack an entire system. The
                 origin of these errors is usually corruption of
                 in-memory data structures caused by out-of-bound array
                 accesses. Usual C compilers do not provide any
                 protection against such out-of-bound access, although
                 many other languages such as Java and ML do provide
                 such protection. There have been several proposals for
                 preventing such memory corruption from various aspects:
                 runtime buffer overrun detectors, designs for new
                 C-like languages, and compilers for (subsets of) the C
                 language. However, as far as we know, none of them have
                 achieved full memory protection and full compatibility
                 with the C language specification at the same
                 time.\par

                 We propose the most powerful solution to this problem
                 ever presented. We have developed {\em Fail-Safe C}, a
                 memory-safe implementation of the full ANSI C language.
                 It detects and disallows all unsafe operations, yet
                 conforms to the full ANSI C standard (including casts
                 and unions). This paper introduces several
                 techniques--both compile-time and runtime--to reduce
                 the overhead of runtime checks, while still maintaining
                 100\% memory safety. This compiler lets programmers
                 easily make their programs safe without heavy rewriting
                 or porting of their code. It also supports many of the
                 'dirty tricks' commonly used in many existing C
                 programs, which do not strictly conform to the standard
                 specification. In this paper, we demonstrate several
                 real-world server programs that can be processed by our
                 compiler and present technical details and benchmark
                 results for it.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "C language; memory safety",
}

@Article{Rubio-Gonzalez:2009:EPA,
  author =       "Cindy Rubio-Gonz{\'a}lez and Haryadi S. Gunawi and Ben
                 Liblit and Remzi H. Arpaci-Dusseau and Andrea C.
                 Arpaci-Dusseau",
  title =        "Error propagation analysis for file systems",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "270--280",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542506",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Unchecked errors are especially pernicious in
                 operating system file management code. Transient or
                 permanent hardware failures are inevitable, and
                 error-management bugs at the file system layer can
                 cause silent, unrecoverable data corruption. We propose
                 an interprocedural static analysis that tracks errors
                 as they propagate through file system code. Our
                 implementation detects overwritten, out-of-scope, and
                 unsaved unchecked errors. Analysis of four widely-used
                 Linux file system implementations (CIFS, ext3, IBM JFS
                 and ReiserFS), a relatively new file system
                 implementation (ext4), and shared virtual file system
                 (VFS) code uncovers 312 error propagation bugs. Our
                 flow- and context-sensitive approach produces more
                 precise results than related techniques while providing
                 better diagnostic information, including possible
                 execution paths that demonstrate each bug found.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binary decision diagrams; copy constant propagation;
                 interprocedural dataflow analysis; static program
                 analysis; weighted pushdown systems",
}

@Article{Qi:2009:SCB,
  author =       "Xin Qi and Andrew C. Myers",
  title =        "Sharing classes between families",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "281--292",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542508",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Class sharing is a new language mechanism for building
                 extensible software systems. Recent work has separately
                 explored two different kinds of extensibility: first,
                 family inheritance, in which an entire family of
                 related classes can be inherited, and second,
                 adaptation, in which existing objects are extended in
                 place with new behavior and state. Class sharing
                 integrates these two kinds of extensibility mechanisms.
                 With little programmer effort, objects of one family
                 can be used as members of another, while preserving
                 relationships among objects. Therefore, a family of
                 classes can be adapted in place with new functionality
                 spanning multiple classes. Object graphs can evolve
                 from one family to another, adding or removing
                 functionality even at run time.\par

                 Several new mechanisms support this flexibility while
                 ensuring type safety. Class sharing has been
                 implemented as an extension to Java, and its utility
                 for evolving and extending software is demonstrated
                 with realistic systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "family inheritance; masked types; views",
}

@Article{Rendel:2009:TSR,
  author =       "Tillman Rendel and Klaus Ostermann and Christian
                 Hofer",
  title =        "Typed self-representation",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "293--303",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542509",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Self-representation -- the ability to represent
                 programs in their own language -- has important
                 applications in reflective languages and many other
                 domains of programming language design. Although
                 approaches to designing typed program representations
                 for sublanguages of some base language have become
                 quite popular recently, the question whether a fully
                 metacircular typed self-representation is possible is
                 still open. This paper makes a big step towards this
                 aim by defining the F$_{$\omega$}$ * calculus, an
                 extension of the higher-order polymorphic lambda
                 calculus F$_{$\omega$}$ that allows typed
                 self-representations. While the usability of these
                 representations for metaprogramming is still limited,
                 we believe that our approach makes a significant step
                 towards a new generation of reflective languages that
                 are both safe and efficient.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "lambda calculus; language design; reflection; self
                 interpretation; types",
}

@Article{Kawaguchi:2009:TBD,
  author =       "Ming Kawaguchi and Patrick Rondon and Ranjit Jhala",
  title =        "Type-based data structure verification",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "304--315",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542510",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present a refinement type-based approach for the
                 static verification of complex data structure
                 invariants. Our approach is based on the observation
                 that complex data structures are typically fashioned
                 from two elements: recursion (e.g., lists and trees),
                 and maps (e.g., arrays and hash tables). We introduce
                 two novel type-based mechanisms targeted towards these
                 elements: recursive refinements and polymorphic
                 refinements. These mechanisms automate the challenging
                 work of generalizing and instantiating rich universal
                 invariants by piggybacking simple refinement predicates
                 on top of types, and carefully dividing the labor of
                 analysis between the type system and an SMT solver.
                 Further, the mechanisms permit the use of the abstract
                 interpretation framework of liquid type inference to
                 automatically synthesize complex invariants from simple
                 logical qualifiers, thereby almost completely
                 automating the verification. We have implemented our
                 approach in dsolve, which uses liquid types to verify
                 ocaml programs. We present experiments that show that
                 our type-based approach reduces the manual annotation
                 required to verify complex properties like sortedness,
                 balancedness, binary-search-ordering, and acyclicity by
                 more than an order of magnitude.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dependent types; Hindley--Milner; predicate
                 abstraction; type inference",
}

@Article{Tristan:2009:VVL,
  author =       "Jean-Baptiste Tristan and Xavier Leroy",
  title =        "Verified validation of lazy code motion",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "316--326",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542512",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Translation validation establishes {\em a
                 posteriori\/} the correctness of a run of a compilation
                 pass or other program transformation. In this paper, we
                 develop an efficient translation validation algorithm
                 for the Lazy Code Motion (LCM) optimization. LCM is an
                 interesting challenge for validation because it is a
                 global optimization that moves code across loops.
                 Consequently, care must be taken not to move
                 computations that may fail before loops that may not
                 terminate. Our validator includes a specific check for
                 anticipability to rule out such incorrect moves. We
                 present a mechanically-checked proof of correctness of
                 the validation algorithm, using the Coq proof
                 assistant. Combining our validator with an unverified
                 implementation of LCM, we obtain a LCM pass that is
                 provably semantics-preserving and was integrated in the
                 CompCert formally verified compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "lazy code motion; redundancy elimination; the coq
                 proof assistant; translation validation; verified
                 compilers",
}

@Article{Kundu:2009:POC,
  author =       "Sudipta Kundu and Zachary Tatlock and Sorin Lerner",
  title =        "Proving optimizations correct using parameterized
                 program equivalence",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "327--337",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542513",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Translation validation is a technique for checking
                 that, after an optimization has run, the input and
                 output of the optimization are equivalent.
                 Traditionally, translation validation has been used to
                 prove concrete, fully specified programs equivalent. In
                 this paper we present Parameterized Equivalence
                 Checking (PEC), a generalization of translation
                 validation that can prove the equivalence of
                 parameterized programs. A parameterized program is a
                 partially specified program that can represent multiple
                 concrete programs. For example, a parameterized program
                 may contain a section of code whose only known property
                 is that it does not modify certain variables. By
                 proving parameterized programs equivalent, PEC can
                 prove the correctness of transformation rules that
                 represent complex optimizations once and for all,
                 before they are ever run. We implemented our PEC
                 technique in a tool that can establish the equivalence
                 of two parameterized programs. To highlight the power
                 of PEC, we designed a language for implementing complex
                 optimizations using many-to-many rewrite rules, and
                 used this language to implement a variety of
                 optimizations including software pipelining, loop
                 unrolling, loop unswitching, loop interchange, and loop
                 fusion. Finally, to demonstrate the effectiveness of
                 PEC, we used our PEC implementation to verify that all
                 the optimizations we implemented in our language
                 preserve program behavior.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler optimization; correctness; translation
                 validation",
}

@Article{Zee:2009:IPL,
  author =       "Karen Zee and Viktor Kuncak and Martin C. Rinard",
  title =        "An integrated proof language for imperative programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "338--351",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542514",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present an integrated proof language for guiding
                 the actions of multiple reasoning systems as they work
                 together to prove complex correctness properties of
                 imperative programs. The language operates in the
                 context of a program verification system that uses
                 multiple reasoning systems to discharge generated proof
                 obligations. It is designed to 1) enable developers to
                 resolve key choice points in complex program
                 correctness proofs, thereby enabling automated
                 reasoning systems to successfully prove the desired
                 correctness properties; 2) allow developers to identify
                 key lemmas for the reasoning systems to prove, thereby
                 guiding the reasoning systems to find an effective
                 proof decomposition; 3) enable multiple reasoning
                 systems to work together productively to prove a single
                 correctness property by providing a mechanism that
                 developers can use to divide the property into lemmas,
                 each of which is suitable for a different reasoning
                 system; and 4) enable developers to identify specific
                 lemmas that the reasoning systems should use when
                 attempting to prove other lemmas or correctness
                 properties, thereby appropriately confining the search
                 space so that the reasoning systems can find a proof in
                 an acceptable amount of time.\par

                 The language includes a rich set of declarative proof
                 constructs that enables developers to direct the
                 reasoning systems as little or as much as they desire.
                 Because the declarative proof statements are embedded
                 into the program as specialized comments, they also
                 serve as verified documentation and are a natural
                 extension of the assertion mechanism found in most
                 program verification systems.\par

                 We have implemented our integrated proof language in
                 the context of a program verification system for Java
                 and used the resulting system to verify a collection of
                 linked data structure implementations. Our experience
                 indicates that our proof language makes it possible to
                 successfully prove complex program correctness
                 properties that are otherwise beyond the reach of
                 automated reasoning systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "proof system; theorem prover; verification",
}

@Article{Ravitch:2009:AGL,
  author =       "Tristan Ravitch and Steve Jackson and Eric Aderhold
                 and Ben Liblit",
  title =        "Automatic generation of library bindings using static
                 analysis",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "352--362",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542516",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "High-level languages are growing in popularity.
                 However, decades of C software development have
                 produced large libraries of fast, time-tested,
                 meritorious code that are impractical to recreate from
                 scratch. Cross-language bindings can expose low-level C
                 code to high-level languages. Unfortunately, writing
                 bindings by hand is tedious and error-prone, while
                 mainstream binding generators require extensive manual
                 annotation or fail to offer the language features that
                 users of modern languages have come to expect.\par

                 We present an improved binding-generation strategy
                 based on static analysis of unannotated library source
                 code. We characterize three high-level idioms that are
                 not uniquely expressible in C's low-level type system:
                 array parameters, resource managers, and multiple
                 return values. We describe a suite of interprocedural
                 analyses that recover this high-level information, and
                 we show how the results can be used in a binding
                 generator for the Python programming language. In
                 experiments with four large C libraries, we find that
                 our approach avoids the mistakes characteristic of
                 hand-written bindings while offering a level of Python
                 integration unmatched by prior automated approaches.
                 Among the thousands of functions in the public
                 interfaces of these libraries, roughly 40\% exhibit the
                 behaviors detected by our static analyses.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bindings; dataflow analysis; FFI; foreign function
                 interfaces; multi-language code reuse; static library
                 analysis",
}

@Article{Chandra:2009:SPA,
  author =       "Satish Chandra and Stephen J. Fink and Manu
                 Sridharan",
  title =        "{Snugglebug}: a powerful approach to weakest
                 preconditions",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "363--374",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542517",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Symbolic analysis shows promise as a foundation for
                 bug-finding, specification inference, verification, and
                 test generation. This paper addresses demand-driven
                 symbolic analysis for object-oriented programs and
                 frameworks. Many such codes comprise large, partial
                 programs with highly dynamic behaviors--polymorphism,
                 reflection, and so on--posing significant scalability
                 challenges for any static analysis.\par

                 We present an approach based on interprocedural
                 backwards propagation of weakest preconditions. We
                 present several novel techniques to improve the
                 efficiency of such analysis. First, we present {\em
                 directed call graph construction}, where call graph
                 construction and symbolic analysis are interleaved.
                 With this technique, call graph construction is guided
                 by constraints discovered during symbolic analysis,
                 obviating the need for exhaustively exploring a large,
                 conservative call graph. Second, we describe {\em
                 generalization}, a technique that greatly increases the
                 reusability of procedure summaries computed during
                 interprocedural analysis. Instead of tabulating how a
                 procedure transforms a symbolic state in its entirety,
                 our technique tabulates how the procedure transforms
                 only the pertinent portion of the symbolic state.
                 Additionally, we show how integrating an inexpensive,
                 custom logic simplifier with weakest precondition
                 computation dramatically improves performance.\par

                 We have implemented the analysis in a tool called
                 Snugglebug and evaluated it as a bug-report feasibility
                 checker. Our results show that the algorithmic
                 techniques were critical for successfully analyzing
                 large Java applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "interprocedural analysis; symbolic analysis; weakest
                 preconditions",
}

@Article{Gulwani:2009:CFR,
  author =       "Sumit Gulwani and Sagar Jain and Eric Koskinen",
  title =        "Control-flow refinement and progress invariants for
                 bound analysis",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "375--385",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542518",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Symbolic complexity bounds help programmers understand
                 the performance characteristics of their
                 implementations. Existing work provides techniques for
                 statically determining bounds of procedures with simple
                 control-flow. However, procedures with nested loops or
                 multiple paths through a single loop are
                 challenging.\par

                 In this paper we describe two techniques, {\em
                 control-flow refinement\/} and {\em progress
                 invariants}, that together enable estimation of precise
                 bounds for procedures with nested and multi-path loops.
                 Control-flow refinement transforms a multi-path loop
                 into a semantically equivalent code fragment with
                 simpler loops by making the structure of path
                 interleaving explicit. We show that this enables
                 non-disjunctive invariant generation tools to find a
                 bound on many procedures for which previous techniques
                 were unable to prove termination. Progress invariants
                 characterize relationships between consecutive states
                 that can arise at a program location. We further
                 present an algorithm that uses progress invariants to
                 compute precise bounds for nested loops. The utility of
                 these two techniques goes beyond our application to
                 symbolic bound analysis. In particular, we discuss
                 applications of control-flow refinement to proving
                 safety properties that otherwise require disjunctive
                 invariants.\par

                 We have applied our methodology to over 670,000 lines
                 of code of a significant Microsoft product and were
                 able to find symbolic bounds for 90\% of the loops. We
                 are not aware of any other published results that
                 report experiences running a bound analysis on a real
                 code-base.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bound analysis; control-flow refinement; formal
                 verification; program verification; progress
                 invariants; termination",
}

@Article{Inoue:2009:SMM,
  author =       "Hiroshi Inoue and Hideaki Komatsu and Toshio
                 Nakatani",
  title =        "A study of memory management for {Web}-based
                 applications on multicore processors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "386--396",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542520",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "More and more server workloads are becoming Web-based.
                 In these Web-based workloads, most of the memory
                 objects are used only during one transaction. We study
                 the effect of the memory management approaches on the
                 performance of such Web-based applications on two
                 modern multicore processors. In particular, using six
                 PHP applications, we compare a general-purpose
                 allocator (the default allocator of the PHP runtime)
                 and a region-based allocator, which can reduce the cost
                 of memory management by not supporting per-object free.
                 The region-based allocator achieves better performance
                 for all workloads on one processor core due to its
                 smaller memory management cost. However, when using
                 eight cores, the region-based allocator suffers from
                 hidden costs of increased bus traffics and the
                 performance is reduced for many workloads by as much as
                 27.2\% compared to the default allocator. This is
                 because the memory bandwidth tends to become a
                 bottleneck in systems with multicore processors.\par

                 We propose a new memory management approach, {\em
                 defrag-dodging}, to maximize the performance of the
                 Web-based workloads on multicore processors. In our
                 approach, we reduce the memory management cost by
                 avoiding defragmentation overhead in the malloc and
                 free functions during a transaction. We found that the
                 transactions in Web-based applications are short enough
                 to ignore heap fragmentation, and hence the costs of
                 the defragmentation activities in existing
                 general-purpose allocators outweigh their benefits. By
                 comparing our approach against the region-based
                 approach, we show that a per-object free capability can
                 reduce bus traffic and achieve higher performance on
                 multicore processors. We demonstrate that our
                 defrag-dodging approach improves the performance of all
                 the evaluated applications on both processors by up to
                 11.4\% and 51.5\% over the default allocator and the
                 region-based allocator, respectively.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic memory management; region-based memory
                 management; scripting language; web-based
                 applications",
}

@Article{Novark:2009:EPL,
  author =       "Gene Novark and Emery D. Berger and Benjamin G. Zorn",
  title =        "Efficiently and precisely locating memory leaks and
                 bloat",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "397--407",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542521",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Inefficient use of memory, including leaks and bloat,
                 remain a significant challenge for C and C++
                 developers. Applications with these problems become
                 slower over time as their working set grows and can
                 become unresponsive. At the same time, memory leaks and
                 bloat remain notoriously difficult to debug, and
                 comprise a large number of reported bugs in mature
                 applications. Previous tools for diagnosing memory
                 inefficiencies-based on garbage collection, binary
                 rewriting, or code sampling-impose high overheads (up
                 to 100X) or generate many false alarms.\par

                 This paper presents Hound, a runtime system that helps
                 track down the sources of memory leaks and bloat in C
                 and C++ applications. Hound employs {\em data
                 sampling}, a staleness-tracking approach based on a
                 novel heap organization, to make it both precise and
                 efficient. Hound has no false positives, and its
                 runtime and space overhead are low enough that it can
                 be used in deployed applications. We demonstrate
                 Hound's efficacy across a suite of synthetic benchmarks
                 and real applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic memory allocation; heap profiling; hound;
                 memory leak detection; virtual compaction",
}

@Article{Shacham:2009:CAS,
  author =       "Ohad Shacham and Martin Vechev and Eran Yahav",
  title =        "{Chameleon}: adaptive selection of collections",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "408--418",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542522",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Languages such as Java and C\#, as well as scripting
                 languages like Python, and Ruby, make extensive use of
                 Collection classes. A collection implementation
                 represents a fixed choice in the dimensions of
                 operation time, space utilization, and synchronization.
                 Using the collection in a manner not consistent with
                 this fixed choice can cause significant performance
                 degradation. In this paper, we present CHAMELEON, a
                 low-overhead automatic tool that assists the programmer
                 in choosing the appropriate collection implementation
                 for her application. During program execution,
                 CHAMELEON computes elaborate trace and heap-based
                 metrics on collection behavior. These metrics are
                 consumed on-the-fly by a rules engine which outputs a
                 list of suggested collection adaptation strategies. The
                 tool can apply these corrective strategies
                 automatically or present them to the programmer. We
                 have implemented CHAMELEON on top of a IBM's J9
                 production JVM, and evaluated it over a small set of
                 benchmarks. We show that for some applications, using
                 CHAMELEON leads to a significant improvement of the
                 memory footprint of the application.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bloat; collections; Java; semantic profiler",
}

@Article{Xu:2009:GFP,
  author =       "Guoqing Xu and Matthew Arnold and Nick Mitchell and
                 Atanas Rountev and Gary Sevitsky",
  title =        "Go with the flow: profiling copies to find runtime
                 bloat",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "419--430",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542523",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many large-scale Java applications suffer from runtime
                 bloat. They execute large volumes of methods, and
                 create many temporary objects, all to execute
                 relatively simple operations. There are large
                 opportunities for performance optimizations in these
                 applications, but most are being missed by existing
                 optimization and tooling technology. While JIT
                 optimizations struggle for a few percent, performance
                 experts analyze deployed applications and regularly
                 find gains of 2x or more.\par

                 Finding such big gains is difficult, for both humans
                 and compilers, because of the diffuse nature of runtime
                 bloat. Time is spread thinly across calling contexts,
                 making it difficult to judge how to improve
                 performance. Bloat results from a pile-up of seemingly
                 harmless decisions. Each adds temporary objects and
                 method calls, and often copies values between those
                 temporary objects. While data copies are not the
                 entirety of bloat, we have observed that they are
                 excellent indicators of regions of excessive activity.
                 By optimizing copies, one is likely to remove the
                 objects that carry copied values, and the method calls
                 that allocate and populate them.\par

                 We introduce {\em copy profiling}, a technique that
                 summarizes runtime activity in terms of chains of data
                 copies. A flat copy profile counts copies by method. We
                 show how flat profiles alone can be helpful. In many
                 cases, diagnosing a problem requires data flow context.
                 Tracking and making sense of raw copy chains does not
                 scale, so we introduce a summarizing abstraction called
                 the {\em copy graph}. We implement three clients
                 analyses that, using the copy graph, expose common
                 patterns of bloat, such as finding hot copy chains and
                 discovering temporary data structures. We demonstrate,
                 with examples from a large-scale commercial application
                 and several benchmarks, that copy profiling can be used
                 by a programmer to quickly find opportunities for large
                 performance gains.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "copy graph; heap analysis; memory bloat; profiling",
}

@Article{Saha:2009:PMH,
  author =       "Bratin Saha and Xiaocheng Zhou and Hu Chen and Ying
                 Gao and Shoumeng Yan and Mohan Rajagopalan and Jesse
                 Fang and Peinan Zhang and Ronny Ronen and Avi
                 Mendelson",
  title =        "Programming model for a heterogeneous x86 platform",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "431--440",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542525",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The client computing platform is moving towards a
                 heterogeneous architecture consisting of a combination
                 of cores focused on scalar performance, and a set of
                 throughput-oriented cores. The throughput oriented
                 cores (e.g. a GPU) may be connected over both coherent
                 and non-coherent interconnects, and have different
                 ISAs. This paper describes a programming model for such
                 heterogeneous platforms. We discuss the language
                 constructs, runtime implementation, and the memory
                 model for such a programming environment. We
                 implemented this programming environment in a x86
                 heterogeneous platform simulator. We ported a number of
                 workloads to our programming environment, and present
                 the performance of our programming environment on these
                 workloads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "heterogeneous platforms; programming model",
}

@Article{Tallent:2009:BAM,
  author =       "Nathan R. Tallent and John M. Mellor-Crummey and
                 Michael W. Fagan",
  title =        "Binary analysis for measurement and attribution of
                 program performance",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "441--452",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542526",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Modern programs frequently employ sophisticated
                 modular designs. As a result, performance problems
                 cannot be identified from costs attributed to routines
                 in isolation; understanding code performance requires
                 information about a routine's calling context. Existing
                 performance tools fall short in this respect. Prior
                 strategies for attributing context-sensitive
                 performance at the source level either compromise
                 measurement accuracy, remain too close to the binary,
                 or require custom compilers. To understand the
                 performance of fully optimized modular code, we
                 developed two novel binary analysis techniques: 1) {\em
                 on-the-fly\/} analysis of optimized machine code to
                 enable minimally intrusive and accurate attribution of
                 costs to dynamic calling contexts; and 2) post-mortem
                 analysis of optimized machine code and its debugging
                 sections to recover its program structure and
                 reconstruct a mapping back to its source code. By
                 combining the recovered static program structure with
                 dynamic calling context information, we can accurately
                 attribute performance metrics to calling contexts,
                 procedures, loops, and inlined instances of procedures.
                 We demonstrate that the fusion of this information
                 provides unique insight into the performance of complex
                 modular codes. This work is implemented in the
                 HPCToolkit performance tools (http://hpctoolkit.org).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binary analysis; call path profiling; HPCToolkit;
                 performance tools; static analysis",
}

@Article{Hoffman:2009:SAT,
  author =       "Kevin J. Hoffman and Patrick Eugster and Suresh
                 Jagannathan",
  title =        "Semantics-aware trace analysis",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "453--464",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542527",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "As computer systems continue to become more powerful
                 and complex, so do programs. High-level abstractions
                 introduced to deal with complexity in large programs,
                 while simplifying human reasoning, can often obfuscate
                 salient program properties gleaned from automated
                 source-level analysis through subtle (often non-local)
                 interactions. Consequently, understanding the effects
                 of program changes and whether these changes violate
                 intended protocols become difficult to infer.
                 Refactorings, and feature additions, modifications, or
                 removals can introduce hard-to-catch bugs that often go
                 undetected until many revisions later.\par

                 To address these issues, this paper presents a novel
                 dynamic program analysis that builds a {\em semantic
                 view\/} of program executions. These views reflect
                 program abstractions and aspects; however, views are
                 not simply projections of execution traces, but are
                 linked to each other to capture semantic interactions
                 among abstractions at different levels of granularity
                 in a scalable manner.\par

                 We describe our approach in the context of Java and
                 demonstrate its utility to improve {\em regression
                 analysis}. We first formalize a subset of Java and a
                 grammar for traces generated at program execution. We
                 then introduce several types of views used to analyze
                 regression bugs along with a novel, scalable technique
                 for semantic differencing of traces from different
                 versions of the same program. Benchmark results on
                 large open-source Java programs demonstrate that
                 semantic-aware trace differencing can identify precise
                 and useful details about the underlying cause for a
                 regression, even in programs that use reflection,
                 multithreading, or dynamic code generation, features
                 that typically confound other analysis techniques.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "automated debugging; debugging aids; semantic tracing;
                 testing tools; trace views; tracing",
}

@Article{Gal:2009:TBJ,
  author =       "Andreas Gal and Brendan Eich and Mike Shaver and David
                 Anderson and David Mandelin and Mohammad R. Haghighat
                 and Blake Kaplan and Graydon Hoare and Boris Zbarsky
                 and Jason Orendorff and Jesse Ruderman and Edwin W.
                 Smith and Rick Reitmaier and Michael Bebenita and Mason
                 Chang and Michael Franz",
  title =        "Trace-based just-in-time type specialization for
                 dynamic languages",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "465--478",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542528",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Dynamic languages such as JavaScript are more
                 difficult to compile than statically typed ones. Since
                 no concrete type information is available, traditional
                 compilers need to emit generic code that can handle all
                 possible type combinations at runtime. We present an
                 alternative compilation technique for dynamically-typed
                 languages that identifies frequently executed loop
                 traces at run-time and then generates machine code on
                 the fly that is specialized for the actual dynamic
                 types occurring on each path through the loop. Our
                 method provides cheap inter-procedural type
                 specialization, and an elegant and efficient way of
                 incrementally compiling lazily discovered alternative
                 paths through nested loops. We have implemented a
                 dynamic compiler for JavaScript based on our technique
                 and we have measured speedups of 10x and more for
                 certain benchmark programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamically typed languages; trace-based compilation",
}

@Article{Stotzer:2009:MSO,
  author =       "Eric J. Stotzer and Ernst L. Leiss",
  title =        "Modulo scheduling without overlapped lifetimes",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "1--10",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542454",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes complementary software- and
                 hardware-based approaches for handling overlapping
                 register lifetimes that occur in modulo scheduled
                 loops. Modulo scheduling takes the N-instructions in a
                 loop body and constructs an M-stage software pipeline.
                 The length of each stage in the software pipeline is
                 the Initiation Interval (II), which is the rate at
                 which new loop iterations are started. An overlapped
                 lifetime has a live range longer than the II, and as a
                 consequence, the current iteration writes a new value
                 to a register before a previous loop iteration has
                 finished using the old value. Hardware and software
                 solutions for dealing with overlapped lifetimes have
                 been proposed by re-searchers and also implemented in
                 commercial products. These solutions include rotating
                 register files, register queues, modulo variable
                 expansion, and post-scheduling live range splitting.
                 Each of these approaches has drawbacks for embedded
                 systems such as an increase in silicon area, power
                 consumption, and code size.\par

                 Our approach, which is an improvement to the current
                 solutions, prevents overlapped lifetimes through a
                 combination of hardware and software techniques. The
                 hardware element of our approach implements a register
                 assignment latency that allows multiple in-flight
                 writes to be pending to the same register. The software
                 element of our approach uses dependence analysis and a
                 constrained modulo scheduling algorithm to prevent
                 overlapped lifetimes. We describe how to use these
                 hardware and software techniques during modulo
                 scheduling. Finally, we present the results of using
                 our approach to compile embedded application code and
                 present results in terms of modulo schedule quality and
                 application performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "instruction level parallelism; modulo scheduling;
                 register allocation; software pipelining",
}

@Article{Caspi:2009:SOS,
  author =       "Paul Caspi and Jean-Louis Cola{\c{c}}o and L{\'e}onard
                 G{\'e}rard and Marc Pouzet and Pascal Raymond",
  title =        "Synchronous objects with scheduling policies:
                 introducing safe shared memory in {Lustre}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "11--20",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543136.1542455",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper addresses the problem of designing and
                 implementing complex control systems for real-time
                 embedded software. Typical applications involve
                 different control laws corresponding to different
                 phases or {\em modes}, e.g., take-off, full flight and
                 landing in a fly-by-wire control system. On one hand,
                 existing methods such as the combination of
                 Simulink/Stateflow provide powerful but unsafe
                 mechanisms by means of imperative updates of shared
                 variables. On the other hand, synchronous languages and
                 tools such as Esterel or SCADE/Lustre are too
                 restrictive and forbid to fully separate the
                 specification of modes from their actual instantiation
                 with a particular control automaton.\par

                 In this paper, we introduce a conservative extension of
                 a synchronous data-flow language close to Lustre, in
                 order to be able to define systems with modes in a more
                 modular way, while insuring the absence of data-races.
                 We show that such a system can be viewed as an {\em
                 object\/} where modes are {\em methods\/} acting on a
                 shared memory. The object is associated to a {\em
                 scheduling policy\/} which specifies the ways methods
                 can be called to build a valid synchronous reaction. We
                 show that the verification of the proper use of an
                 object reduces to a type inference problem using {\em
                 row types\/} introduced by Wand, R{\'e}my and Vouillon.
                 We define the semantics of the extended synchronous
                 language and the type system. The proposed extension
                 has been implemented and we illustrate its use through
                 several examples.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "block-diagrams; compilation; real-time systems;
                 semantics; synchronous languages; type systems",
}

@Article{Oh:2009:RCA,
  author =       "Taewook Oh and Bernhard Egger and Hyunchul Park and
                 Scott Mahlke",
  title =        "Recurrence cycle aware modulo scheduling for
                 coarse-grained reconfigurable architectures",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "21--30",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543136.1542456",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In high-end embedded systems, coarse-grained
                 reconfigurable architectures (CGRA) continue to replace
                 traditional ASIC designs. CGRAs offer high performance
                 at a low power consumption, yet provide flexibility
                 through programmability. In this paper we introduce a
                 recurrence cycle-aware scheduling technique for CGRAs.
                 Our modulo scheduler groups operations belonging to a
                 recurrence cycle into a clustered node and then
                 computes a scheduling order for those clustered nodes.
                 Deadlocks that arise when two or more recurrence cycles
                 depend on each other are resolved by using heuristics
                 that favor recurrence cycles with long recurrence
                 delays. While with previous work one had to sacrifice
                 either a fast compilation speed in order to get good
                 quality results, or vice versa, this is not necessary
                 anymore with the proposed recurrence cycle-aware
                 scheduling technique. We have implemented the proposed
                 method into our in-house CGRA chip and compiler
                 solution and show that the technique achieves better
                 quality schedules than schedulers based on simulated
                 annealing at a 170-fold speed increase.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "coarse-grained reconfigurable architectures; placement
                 and routing; software pipelining",
}

@Article{Zou:2009:PFT,
  author =       "Jia Zou and Joshua Auerbach and David F. Bacon and
                 Edward A. Lee",
  title =        "{PTIDES} on flexible task graph: real-time embedded
                 system building from theory to practice",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "31--40",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543136.1542457",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Flexotask system claims to enable implementation
                 of both real-time applications and real-time schedulers
                 in a Java Virtual Machine using an actors-like model.
                 The PTIDES model is an actors-like model that claims to
                 deliver precise control over end-to-end latencies in a
                 complex real-time system. The present work jointly
                 investigates both claims by (1) implementing several
                 PTIDES-based schedulers as Flexotask scheduler plugins,
                 and (2) using the resulting system to implement a new
                 reactive control program for a simulation of the
                 JAviator. We present results from the realistic
                 JAviator control application and also from synthetic
                 benchmarks designed to shed light on the differences
                 between the several PTIDES schedulers we implemented.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "flexible task graphs; jitter elimination; PTIDES;
                 real-time scheduling; real-time systems",
}

@Article{Lee:2009:COR,
  author =       "Jongeun Lee and Aviral Shrivastava",
  title =        "A compiler optimization to reduce soft errors in
                 register files",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "41--49",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543136.1542459",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Register file (RF) is extremely vulnerable to soft
                 errors, and traditional redundancy based schemes to
                 protect the RF are prohibitive not only because RF is
                 often in the timing critical path of the processor, but
                 also since it is one of the hottest blocks on the chip,
                 and therefore adding any extra circuitry to it is not
                 desirable. Pure software approaches would be ideal in
                 this case, but previous approaches that are based on
                 program duplication have very significant runtime
                 overheads, and others based on instruction scheduling
                 are only moderately effective due to local scope. We
                 show that the problem of protecting registers
                 inherently requires inter-procedural analysis, and
                 intra-procedural optimization are ineffective. This
                 paper presents a pure compiler approach, based on
                 inter-procedural code analysis to reduce the
                 vulnerability of registers by temporarily writing live
                 variables to protected memory. We formulate the problem
                 as an integer linear programming problem and also
                 present a very efficient heuristic algorithm. Our
                 experiments demonstrate that our proposed technique can
                 reduce the vulnerability of the RF by 33 ~ 37\% on
                 average and up to 66\%, with a small 2\% increase in
                 runtime. In addition, our overhead reduction
                 optimizations can effectively reduce the code size
                 overhead, by more than 40\% on average, to a mere 5 ~
                 6\%, as compared to highly optimized binaries.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "architectural vulnerability factor; compilation;
                 embedded system; link-time optimization; register file;
                 soft error; static analysis",
}

@Article{Leather:2009:RPE,
  author =       "Hugh Leather and Michael O'Boyle and Bruce Worton",
  title =        "Raced profiles: efficient selection of competing
                 compiler optimizations",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "50--59",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542460",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many problems in embedded compilation require one set
                 of optimizations to be selected over another based on
                 run time performance. Self-tuned libraries, iterative
                 compilation and machine learning techniques all compare
                 multiple compiled program versions. In each, program
                 versions are timed to determine which has the best
                 performance.\par

                 The program needs to be run multiple times for each
                 version because there is noise inherent in most
                 performance measurements. The number of runs must be
                 enough to compare different versions, despite the
                 noise, but executing more than this will waste time and
                 energy. The compiler writer must either risk taking too
                 few runs, potentially getting incorrect results, or
                 taking too many runs increasing the time for their
                 experiments or reducing the number of program versions
                 evaluated. Prior works choose constant size sampling
                 plans where each compiled version is executed a fixed
                 number of times without regard to the level of
                 noise.\par

                 In this paper we develop a sequential sampling plan
                 which can automatically adapt to the experiment so that
                 the compiler writer can have both confidence in the
                 results and also be sure that no more runs were taken
                 than were needed. We show that our system is able to
                 correctly determine the best optimization settings with
                 between 76\% and 87\% fewer runs than needed by a brute
                 force, constant sampling size approach. We also compare
                 our approach to JavaSTATS(10); we needed 77\% to 89\%
                 fewer runs than it needed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "iterative compilation; statistics",
}

@Article{Yang:2009:ECS,
  author =       "Xuejun Yang and Nathan Cooprider and John Regehr",
  title =        "Eliminating the call stack to save {RAM}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "60--69",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543136.1542461",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Most programming languages support a call stack in the
                 programming model and also in the runtime system. We
                 show that for applications targeting low-power embedded
                 microcontrollers (MCUs), RAM usage can be significantly
                 decreased by partially or completely eliminating the
                 runtime callstack. We present flattening, a
                 transformation that absorbs a function into its caller,
                 replacing function invocations and returns with jumps.
                 Unlike inlining, flattening does not duplicate the
                 bodies of functions that have multiple callsites.
                 Applied aggressively, flattening results in {\em stack
                 elimination}. Flattening is most useful in conjunction
                 with a {\em lifting\/} transformation that moves global
                 variables into a local scope.\par

                 Flattening and lifting can save RAM. However, even more
                 benefit can be obtained by adapting the compiler to
                 cope with properties of flattened code. First, we show
                 that flattening adds false paths that confuse a
                 standard live variables analysis. The resulting
                 problems can be mitigated by breaking spurious
                 live-range conflicts between variables using
                 information from the unflattened callgraph. Second, we
                 show that the impact of high register pressure due to
                 flattened and lifted code, and consequent spills out of
                 the register allocator, can be mitigated by improving a
                 compiler's stack layout optimizations. We have
                 implemented both of these improvements in GCC, and have
                 implemented flattening and lifting as source-to-source
                 transformations. On a collection of applications for
                 the AVR family of 8-bit MCUs, we show that total RAM
                 usage can be reduced by 20\% by compiling flattened and
                 lifted programs with our improved GCC.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compiler optimization; embedded software; memory
                 allocation; memory optimizations; sensor networks;
                 stack liveness",
}

@Article{Blazy:2009:LRU,
  author =       "Sandrine Blazy and Benoit Robillard",
  title =        "Live-range unsplitting for faster optimal coalescing",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "70--79",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542462",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Register allocation is often a two-phase approach:
                 spilling of registers to memory, followed by coalescing
                 of registers. Extreme live-range splitting (i.e.
                 live-range splitting after each statement) enables
                 optimal solutions based on ILP, for both spilling and
                 coalescing. However, while the solutions are easily
                 found for spilling, for coalescing they are more
                 elusive. This difficulty stems from the huge size of
                 interference graphs resulting from live-range
                 splitting.\par

                 This paper focuses on coalescing in the context of
                 extreme live-range splitting. It presents some
                 theoretical properties that give rise to an algorithm
                 for reducing interference graphs. This reduction
                 consists mainly in finding and removing useless
                 splitting points. It is followed by a graph
                 decomposition based on clique separators. The reduction
                 and decomposition are general enough, so that any
                 coalescing algorithm can be applied afterwards.\par

                 Our strategy for reducing and decomposing interference
                 graphs preserves the optimality of coalescing. When
                 used together with an optimal coalescing algorithm
                 (e.g. ILP), optimal solutions are much more easily
                 found. The strategy has been tested on a standard
                 benchmark, the optimal coalescing challenge. For this
                 benchmark, the cutting-plane algorithm for optimal
                 coalescing (the only optimal algorithm for coalescing)
                 runs 300 times faster when combined with our strategy.
                 Moreover, we provide all the optimal solutions of the
                 optimal coalescing challenge, including the three
                 instances that were previously unsolved.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "coalescing; graph reduction; register allocation",
}

@Article{Sarkar:2009:PAM,
  author =       "Abhik Sarkar and Frank Mueller and Harini Ramaprasad
                 and Sibin Mohan",
  title =        "Push-assisted migration of real-time tasks in
                 multi-core processors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "80--89",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542464",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multicores are becoming ubiquitous, not only in
                 general-purpose but also embedded computing. This trend
                 is a reflexion of contemporary embedded applications
                 posing steadily increasing demands in processing power.
                 On such platforms, prediction of timing behavior to
                 ensure that deadlines of real-time tasks can be met is
                 becoming increasingly difficult. While real-time
                 multicore scheduling approaches help to assure
                 deadlines based on firm theoretical properties, their
                 reliance on task migration poses a significant
                 challenge to timing predictability in practice. Task
                 migration actually (a) reduces timing predictability
                 for contemporary multicores due to cache warm-up
                 overheads while (b) increasing traffic on the
                 network-on-chip (NoC) interconnect.\par

                 This paper puts forth a fundamentally new approach to
                 increase the timing predictability of multicore
                 architectures aimed at task migration in embedded
                 environments. A task migration between two cores
                 imposes cache warm-up overheads on the migration
                 target, which can lead to missed deadlines for tight
                 real-time schedules. We propose novel
                 micro-architectural support to migrate cache lines. Our
                 scheme shows dramatically increased predictability in
                 the presence of cross-core migration.\par

                 Experimental results for schedules demonstrate that our
                 scheme enables real-time tasks to meet their deadlines
                 in the presence of task migration. Our results
                 illustrate that increases in execution time due to
                 migration is reduced by our scheme to levels that may
                 prevent deadline misses of real-time tasks that would
                 otherwise occur. Our mechanism imposes an overhead at a
                 fraction of the task's execution time, yet this
                 overhead can be steered to fill idle slots in the
                 schedule, {\em i.e.}, it does not contribute to the
                 execution time of the migrated task. Overall, our novel
                 migration scheme provides a unique mechanism capable of
                 significantly increasing timing predictability in the
                 wake of task migration.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "multi-core architectures; real-time systems; task
                 migration; timing analysis",
}

@Article{Mankin:2009:STM,
  author =       "Jennifer Mankin and David Kaeli and John Ardini",
  title =        "Software transactional memory for multicore embedded
                 systems",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "90--98",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543136.1542465",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Embedded systems, like general-purpose systems, can
                 benefit from parallel execution on a symmetric
                 multicore platform. Unfortunately, concurrency issues
                 present in general-purpose programming also apply to
                 embedded systems, protection from which is currently
                 only offered with performance-limiting coarse-grained
                 locking or error-prone and difficult-to-implement {\em
                 fine-grained locking}. Transactional memory offers
                 relief from these mechanisms, but has primarily been
                 investigated on general-purpose systems. In this paper,
                 we present {\em Embedded Software Transactional
                 Memory\/} (ESTM) as a novel solution to the concurrency
                 problem in parallel embedded applications. We
                 investigate common software transactional memory design
                 decisions and discuss the best decisions for an
                 embedded platform. We offer a full implementation of an
                 embedded STM and test it against both coarse-grained
                 and fine-grained locking mechanisms. We find that we
                 can meet or beat the performance of fine-grained
                 locking over a range of application characteristics,
                 including size of shared data, time spent in the
                 critical section, and contention between threads. Our
                 ESTM implementation benefits from the effective use of
                 L1 memory, a feature which is built into our STM model
                 but which cannot be directly utilized by traditional
                 locking mechanisms.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "embedded systems; locking; multicore; software
                 transactional memory (STM); synchronization;
                 transactions",
}

@Article{Udupa:2009:SES,
  author =       "Abhishek Udupa and R. Govindarajan and Matthew J.
                 Thazhuthaveetil",
  title =        "Synergistic execution of stream programs on multicores
                 with accelerators",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "99--108",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542466",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The StreamIt programming model has been proposed to
                 exploit parallelism in streaming applications on
                 general purpose multicore architectures. The StreamIt
                 graphs describe task, data and pipeline parallelism
                 which can be exploited on accelerators such as Graphics
                 Processing Units (GPUs) or CellBE which support
                 abundant parallelism in hardware.\par

                 In this paper, we describe a novel method to
                 orchestrate the execution of a StreamIt program on a
                 multicore platform equipped with an accelerator. The
                 proposed approach identifies, using profiling, the
                 relative benefits of executing a task on the
                 superscalar CPU cores and the accelerator. We formulate
                 the problem of partitioning the work between the CPU
                 cores and the GPU, taking into account the latencies
                 for data transfers and the required buffer layout
                 transformations associated with the partitioning, as an
                 integrated Integer Linear Program (ILP) which can then
                 be solved by an ILP solver. We also propose an
                 efficient heuristic algorithm for the work partitioning
                 between the CPU and the GPU, which provides solutions
                 which are within 9.05\% of the optimal solution on an
                 average across the benchmark suite. The partitioned
                 tasks are then software pipelined to execute on the
                 multiple CPU cores and the Streaming Multiprocessors
                 (SMs) of the GPU. The software pipelining algorithm
                 orchestrates the execution between CPU cores and the
                 GPU by emitting the code for the CPU and the GPU, and
                 the code for the required data transfers. Our
                 experiments on a platform with 8 CPU cores and a
                 GeForce 8800 GTS 512 GPU show a geometric mean speedup
                 of 6.84X with a maximum of 51.96X over a single
                 threaded CPU execution across the StreamIt benchmarks.
                 This is a 18.9\% improvement over a partitioning
                 strategy that maps only the filters that cannot be
                 executed on the GPU -- the filters with state that is
                 persistent across firings -- onto the CPU.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "CUDA; GPU programming; partitioning; software
                 pipelining; stream programming",
}

@Article{Heinz:2009:TDE,
  author =       "Thomas Heinz and Reinhard Wilhelm",
  title =        "Towards device emulation code generation",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "109--118",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542467",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "For non-embedded software, binary translation has
                 shown to be a successful method for retargeting legacy
                 software onto new platforms. To apply binary
                 translation to embedded software, two issues must be
                 considered. First of all, embedded software often
                 involves real-time constraints that must still be met
                 after translation. Secondly, embedded software contains
                 a significant amount of code dedicated to peripheral
                 device communication which necessitates device
                 emulation. This paper focuses on the last
                 aspect.\par

                 Usually, device emulation code is handcrafted which is
                 tedious and error-prone. This paper presents a method
                 to automatically generate device emulation code from a
                 formal specification of source and target device
                 operations. At the heart of the device operation
                 semantics lie quantifier-free formulae in the theory of
                 fixed width bit vector arithmetic which is a decidable
                 fragment of first-order logic. To the best of our
                 knowledge, this is the first attempt to generate device
                 emulation code from a formal specification.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binary translation; bit vector arithmetic; code
                 generation; device emulation; satisfiability modulo
                 theories",
}

@Article{Hines:2009:GIF,
  author =       "Stephen Roderick Hines and Yuval Peress and Peter
                 Gavin and David Whalley and Gary Tyson",
  title =        "Guaranteeing instruction fetch behavior with a
                 {Lookahead Instruction Fetch Engine (LIFE)}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "119--128",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543136.1542469",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Instruction fetch behavior has been shown to be very
                 regular and predictable, even for diverse application
                 areas. In this work, we propose the Lookahead
                 Instruction Fetch Engine (LIFE), which is designed to
                 exploit the regularity present in instruction fetch.
                 The nucleus of LIFE is the Tagless Hit Instruction
                 Cache (TH-IC), a small cache that assists the
                 instruction fetch pipeline stage as it efficiently
                 captures information about both sequential and
                 non-sequential transitions between instructions. TH-IC
                 provides a considerable savings in fetch energy without
                 incurring the performance penalty normally associated
                 with small filter instruction caches. LIFE extends
                 TH-IC by making use of advanced control flow metadata
                 to further improve utilization of fetch-associated
                 structures such as the branch predictor, branch target
                 buffer, and return address stack. These structures are
                 selectively disabled by LIFE when it can be determined
                 that they are unnecessary for the following instruction
                 to be fetched. Our results show that LIFE enables
                 further reductions in total processor energy
                 consumption with no impact on application execution
                 times even for the most aggressive power-saving
                 configuration. We also explore the use of LIFE metadata
                 on guiding decisions further down the pipeline. Next
                 sequential line prefetch for the data cache can be
                 enhanced by only prefetching when the triggering
                 instruction has been previously accessed in the TH-IC.
                 This strategy reduces the number of useless prefetches
                 and thus contributes to improving overall processor
                 efficiency. LIFE enables designers to boost instruction
                 fetch efficiency by reducing energy cost without
                 negatively affecting performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "l0/filter cache; lookahead instruction fetch engine
                 (life); tagless hit instruction cache (TH-IC)",
}

@Article{McKechnie:2009:DFB,
  author =       "Paul E. McKechnie and Michaela Blott and Wim A.
                 Vanderbauwhede",
  title =        "Debugging {FPGA}-based packet processing systems
                 through transaction-level communication-centric
                 monitoring",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "129--136",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542470",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The fine-grained parallelism inherent in FPGAs has
                 encouraged their use in packet processing systems.
                 Debugging and performance evaluation of such complex
                 designs can be significantly improved through debug
                 information that provides a system-level perspective
                 and hides the complexity of signal-level debugging. In
                 this paper we present a debugging system that permits
                 transaction-based communication-centric monitoring of
                 packet processing systems. We demonstrate, using two
                 different examples, how this system can improve the
                 debugging information and abstract lower level detail.
                 Furthermore, we demonstrate that transaction monitoring
                 systems require fewer resources than conventional RTL
                 debugging systems and can provide a system-level
                 perspective not permitted by traditional tools.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debug; FPGA; instrumentation; monitoring;
                 transaction",
}

@Article{Gracioli:2009:TIE,
  author =       "Giovani Gracioli and Sebastian Fischmeister",
  title =        "Tracing interrupts in embedded software",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "137--146",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542471",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "During the system development, developers often must
                 correct wrong behavior in the software---an activity
                 colloquially called program debugging. Debugging is a
                 complex activity, especially in real-time embedded
                 systems because such systems interact with the physical
                 world and make heavy use of interrupts for timing and
                 driving I/O devices.\par

                 Debugging interrupts is difficult, because they cause
                 non-linear control flow in programs which is hard to
                 reproduce in software. Record/replay mechanisms have
                 proven their use to debugging embedded systems, because
                 they provide means to recreate control flows offline
                 where they can be debugged.\par

                 In this work, we present the data tracing part of the
                 record/replay mechanism that is specifically targeted
                 to record interrupt behavior. To tune our tracing
                 mechanism, we use the observed principle of return
                 address clustering and a formal model for quantitative
                 reasoning about the tracing mechanism. The presented
                 heuristic and mechanisms show surprisingly good
                 results---up to an 800 percent speedup on the selector
                 function and a 300 percent reduction on duplicates for
                 non-optimal selector functions---considering the
                 leanness of the approach.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "debugging; embedded software; real-time systems;
                 tracing",
}

@Article{Moore:2009:ACD,
  author =       "Ryan W. Moore and Jos{\'e} A. Baiocchi and Bruce R.
                 Childers and Jack W. Davidson and Jason D. Hiser",
  title =        "Addressing the challenges of {DBT} for the {ARM}
                 architecture",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "147--156",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542472",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Dynamic binary translation (DBT) can provide security,
                 virtualization, resource management and other desirable
                 services to embedded systems. Although DBT has many
                 benefits, its run-time performance overhead can be
                 relatively high. The run-time overhead is important in
                 embedded systems due to their slow processor clock
                 speeds, simple microarchitectures, and small caches.
                 This paper addresses how to implement efficient DBT for
                 ARM-based embedded systems, taking into account
                 instruction set and cache/TLB nuances. We develop
                 several techniques that reduce DBT overhead for the
                 ARM. Our techniques focus on cache and TLB behavior. We
                 tested the techniques on an ARM-based embedded device
                 and found that DBT overhead was reduced by 54\% in
                 comparison to a general-purpose DBT configuration that
                 is known to perform well, thus further enabling DBT for
                 a wide range of purposes.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "arm; dynamic binary translation; virtualization",
}

@Article{Fidge:2009:IHS,
  author =       "Colin J. Fidge and Diane Corney",
  title =        "Integrating hardware and software information flow
                 analyses",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "157--166",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542452.1542474",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Security-critical communications devices must be
                 evaluated to the highest possible standards before they
                 can be deployed. This process includes tracing
                 potential information flow through the device's
                 electronic circuitry, for each of the device's
                 operating modes. Increasingly, however, security
                 functionality is being entrusted to embedded software
                 running on microprocessors within such devices, so new
                 strategies are needed for integrating information flow
                 analyses of embedded program code with hardware
                 analyses. Here we show how standard compiler principles
                 can augment high-integrity security evaluations to
                 allow seamless tracing of information flow through both
                 the hardware and software of embedded systems. This is
                 done by unifying input/output statements in embedded
                 program execution paths with the hardware pins they
                 access, and by associating significant software states
                 with corresponding operating modes of the surrounding
                 electronic circuitry.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "communications devices; embedded software; information
                 security evaluation",
}

@Article{Andre:2009:SVT,
  author =       "Charles Andr{\'e} and Fr{\'e}d{\'e}ric Mallet",
  title =        "Specification and verification of time requirements
                 with {CCSL} and {Esterel}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "7",
  pages =        "167--176",
  month =        jul,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543136.1542475",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jun 26 12:07:39 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The UML Profile for Modeling and Analysis of Real-Time
                 and Embedded (MARTE) systems has recently been adopted
                 by the OMG. Its Time Model extends the informal and
                 simplistic Simple Time package proposed by UML2 and
                 offers a broad range of capabilities required to model
                 real-time systems including discrete/dense and
                 chronometric/logical time. MARTE OMG specification
                 introduces a Time Structure inspired by Time models of
                 the concurrency theory and proposes a new clock
                 constraint specification language (CCSL) to specify,
                 within the context of UML, logical and chronometric
                 time constraints.\par

                 This paper introduces the formal semantics of a
                 fundamental subset of CCSL clock constraints and
                 proposes a process to use CCSL both as a high-level
                 specification language for UML models and as a golden
                 model to verify the conformance of implementations with
                 the specification.\par

                 A digital filtering video application is used as a
                 running example to support the discussion. The
                 application is first formally specified with CCSL and
                 the specification is refined based on feedback from our
                 CCSL-dedicated simulator. In a second phase, an Esterel
                 program of the application is considered. This program
                 is instrumented with observers derived from the CCSL
                 specification. Esterel Studio formal verification
                 facilities are then used to check the conformity of the
                 Esterel implementation with the CCSL specification. A
                 specific library of Esterel observers has been built
                 for this purpose.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "MARTE; synchronous languages; time model; UML",
}

@Article{Chaudhuri:2009:LBS,
  author =       "Avik Chaudhuri",
  title =        "Language-based security on {Android} (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "4--4",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{DeVries:2009:ABV,
  author =       "Brian W. DeVries and Gopal Gupta and Kevin W. Hamlen
                 and Scott Moore and Meera Sridhar",
  title =        "{ActionScript} bytecode verification with co-logic
                 programming (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "4--4",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jia:2009:EIFa,
  author =       "Limin Jia and Steve Zdancewic",
  title =        "Encoding information flow in {AURA} (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "4--4",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Wasserrab:2009:PBN,
  author =       "Daniel Wasserrab and Denis Lohner and Gregor
                 Snelting",
  title =        "On {PDG}-based noninterference and its modular proof
                 (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "4--5",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Askarov:2009:CMI,
  author =       "Aslan Askarov and Andrei Sabelfeld",
  title =        "Catch me if you can: permissive yet secure error
                 handling (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "5--5",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Balliu:2009:WPA,
  author =       "Musard Balliu and Isabella Mastroeni",
  title =        "A weakest precondition approach to active attacks
                 analysis (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "5--5",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Newsome:2009:MCC,
  author =       "James Newsome and Stephen McCamant and Dawn Song",
  title =        "Measuring channel capacity to distinguish undue
                 influence (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "5--5",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Austin:2009:EPDa,
  author =       "Thomas H. Austin and Cormac Flanagan",
  title =        "Efficient purely-dynamic information flow analysis
                 (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "6--6",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Birgisson:2009:IST,
  author =       "Arnar Birgisson and {\'U}lfar Erlingsson",
  title =        "An implementation and semantics for transactional
                 memory introspection in {Haskell} (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "6--6",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Broberg:2009:FSS,
  author =       "Niklas Broberg and David Sands",
  title =        "Flow-sensitive semantics for dynamic information flow
                 policies (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "6--6",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Shinnar:2009:LIF,
  author =       "Avraham Shinnar and Marco Pistoia and Anindya
                 Banerjee",
  title =        "A language for information flow: dynamic tracking in
                 multiple interdependent dimensions (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "6--6",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Jia:2009:EIFb,
  author =       "Limin Jia and Steve Zdancewic",
  title =        "Encoding information flow in {AURA}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "7--19",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Austin:2009:EPDb,
  author =       "Thomas H. Austin and Cormac Flanagan",
  title =        "Efficient purely-dynamic information flow analysis",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "8",
  pages =        "20--31",
  month =        aug,
  year =         "2009",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Mar 15 19:12:38 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Steele:2009:OFC,
  author =       "Guy L. {Steele, Jr.}",
  title =        "Organizing functional code for parallel execution or,
                 foldl and foldr considered slightly harmful",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "1--2",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596551",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596551",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Hinze:2009:FPT,
  author =       "Ralf Hinze",
  title =        "Functional pearl: la tour d'{Hano{\"\i}}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "3--10",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596555",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596555",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Fischer:2009:PFL,
  author =       "Sebastian Fischer and Oleg Kiselyov and Chung-chieh
                 Shan",
  title =        "Purely functional lazy non-deterministic programming",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "11--22",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596556",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596556",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sculthorpe:2009:SFR,
  author =       "Neil Sculthorpe and Henrik Nilsson",
  title =        "Safe functional reactive programming through dependent
                 types",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "23--34",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596558",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596558",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Liu:2009:CCA,
  author =       "Hai Liu and Eric Cheng and Paul Hudak",
  title =        "Causal commutative arrows and their optimization",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "35--46",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596559",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596559",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Felleisen:2009:FSF,
  author =       "Matthias Felleisen and Robert Bruce Findler and
                 Matthew Flatt and Shriram Krishnamurthi",
  title =        "A functional {I/O} system or, fun for freshman kids",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "47--58",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596561",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596561",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Newton:2009:ERE,
  author =       "Ryan R. Newton and Teresa Ko",
  title =        "Experience report: embedded, parallel computer-vision
                 with a functional {DSL}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "59--64",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596562",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596562",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Marlow:2009:RSM,
  author =       "Simon Marlow and Simon Peyton Jones and Satnam Singh",
  title =        "Runtime support for multicore {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "65--78",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596563",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596563",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chlipala:2009:EIP,
  author =       "Adam Chlipala and Gregory Malecha and Greg Morrisett
                 and Avraham Shinnar and Ryan Wisnesky",
  title =        "Effective interactive proofs for higher-order
                 imperative programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "79--90",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596565",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596565",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Klein:2009:ERS,
  author =       "Gerwin Klein and Philip Derrin and Kevin Elphinstone",
  title =        "Experience report: {seL4}: formally verifying a
                 high-performance microkernel",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "91--96",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596566",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596566",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Benton:2009:BSI,
  author =       "Nick Benton and Chung-Kil Hur",
  title =        "Biorthogonality, step-indexing and compiler
                 correctness",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "97--108",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596567",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596567",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Flatt:2009:SCB,
  author =       "Matthew Flatt and Eli Barzilay and Robert Bruce
                 Findler",
  title =        "{Scribble}: closing the book on ad hoc documentation
                 tools",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "109--120",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596569",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596569",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pierce:2009:LUU,
  author =       "Benjamin C. Pierce",
  title =        "{Lambda}, the ultimate {TA}: using a proof assistant
                 to teach programming language foundations",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "121--122",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596552",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596552",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Licata:2009:UBC,
  author =       "Daniel R. Licata and Robert Harper",
  title =        "A universe of binding and computation",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "123--134",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596571",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596571",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Neis:2009:NPP,
  author =       "Georg Neis and Derek Dreyer and Andreas Rossberg",
  title =        "Non-parametric parametricity",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "135--148",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596572",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596572",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Claessen:2009:FRC,
  author =       "Koen Claessen and Michal Palka and Nicholas Smallbone
                 and John Hughes and Hans Svensson and Thomas Arts and
                 Ulf Wiger",
  title =        "Finding race conditions in {Erlang} with {QuickCheck}
                 and {PULSE}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "149--160",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596574",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596574",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Ziarek:2009:PMC,
  author =       "Lukasz Ziarek and KC Sivaramakrishnan and Suresh
                 Jagannathan",
  title =        "Partial memoization of concurrency and communication",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "161--172",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596575",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596575",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{VoigtlAnder:2009:FTI,
  author =       "Janis Voigtl{\"a}nder",
  title =        "Free theorems involving type constructor classes:
                 functional pearl",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "173--184",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596577",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596577",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Sampson:2009:ERH,
  author =       "Curt J. Sampson",
  title =        "Experience report: {Haskell} in the `real world':
                 writing a commercial application in a lazy functional
                 language",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "185--190",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596578",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596578",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Elliott:2009:BD,
  author =       "Conal M. Elliott",
  title =        "Beautiful differentiation",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "191--202",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596579",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596579",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Gazagnaire:2009:OEH,
  author =       "Thomas Gazagnaire and Vincent Hanquez",
  title =        "{OXenstored}: an efficient hierarchical and
                 transactional database using functional programming
                 with reference cell comparisons",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "203--214",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596581",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596581",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Pagano:2009:ERU,
  author =       "Bruno Pagano and Olivier Andrieu and Thomas Moniot and
                 Benjamin Canou and Emmanuel Chailloux and Philippe Wang
                 and Pascal Manoury and Jean-Louis Cola{\c{c}}o",
  title =        "Experience report: using objective caml to develop
                 safety-critical embedded tools in a certification
                 framework",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "215--220",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596582",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596582",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{GenevAs:2009:IQI,
  author =       "Pierre Genev{\`e}s and Nabil Laya{\"\i}da and Vincent
                 Quint",
  title =        "Identifying query incompatibilities with evolving
                 {XML} schemas",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "221--230",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596583",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596583",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Piponi:2009:CMD,
  author =       "Dan P. Piponi",
  title =        "Commutative monads, diagrams and knots",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "231--232",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596553",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596553",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Yakushev:2009:GPF,
  author =       "Alexey Rodriguez Yakushev and Stefan Holdermans and
                 Andres L{\"o}h and Johan Jeuring",
  title =        "Generic programming with fixed points for mutually
                 recursive datatypes",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "233--244",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596585",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596585",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Viera:2009:AGF,
  author =       "Marcos Viera and S. Doaitse Swierstra and Wouter
                 Swierstra",
  title =        "Attribute grammars fly first-class: how to do aspect
                 oriented programming in {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "245--256",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596586",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596586",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Reppy:2009:PCM,
  author =       "John Reppy and Claudio V. Russo and Yingqi Xiao",
  title =        "Parallel concurrent {ML}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "257--268",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596588",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596588",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Chaudhuri:2009:CML,
  author =       "Avik Chaudhuri",
  title =        "A concurrent {ML} library in concurrent {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "269--280",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596589",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596589",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Cuoq:2009:ERO,
  author =       "Pascal Cuoq and Julien Signoles and Patrick Baudin and
                 Richard Bonichon and G{\'e}raud Canet and Lo{\"\i}c
                 Correnson and Benjamin Monate and Virgile Prevosto and
                 Armand Puccetti",
  title =        "Experience report: {OCaml} for an industrial-strength
                 static analysis framework",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "281--286",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596591",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596591",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Midtgaard:2009:CFA,
  author =       "Jan Midtgaard and Thomas P. Jensen",
  title =        "Control-flow analysis of function calls and returns by
                 abstract interpretation",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "287--298",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596592",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596592",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{McCarthy:2009:ARW,
  author =       "Jay A. McCarthy",
  title =        "Automatically {RESTful} web applications: marking
                 modular serializable continuations",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "299--310",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596594",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596594",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Balat:2009:ERO,
  author =       "Vincent Balat and J{\'e}r{\^o}me Vouillon and Boris
                 Yakobowski",
  title =        "Experience report: {\tt ocsigen}, a web programming
                 framework",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "311--316",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596595",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596595",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Rompf:2009:IFC,
  author =       "Tiark Rompf and Ingo Maier and Martin Odersky",
  title =        "Implementing first-class polymorphic delimited
                 continuations by a type-directed selective
                 {CPS}-transform",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "317--328",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596596",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596596",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Swamy:2009:TTC,
  author =       "Nikhil Swamy and Michael Hicks and Gavin M. Bierman",
  title =        "A theory of typed coercions and its applications",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "329--340",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596598",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596598",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Schrijvers:2009:CDT,
  author =       "Tom Schrijvers and Simon Peyton Jones and Martin
                 Sulzmann and Dimitrios Vytiniotis",
  title =        "Complete and decidable type inference for {GADTs}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "9",
  pages =        "341--352",
  month =        sep,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1631687.1596599",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Dec 2 07:40:09 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=1596599",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Meyerovich:2009:FPL,
  author =       "Leo A. Meyerovich and Arjun Guha and Jacob Baskin and
                 Gregory H. Cooper and Michael Greenberg and Aleks
                 Bromfield and Shriram Krishnamurthi",
  title =        "{Flapjax}: a programming language for {Ajax}
                 applications",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "1--20",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640091",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents Flapjax, a language designed for
                 contemporary Web applications. These applications
                 communicate with servers and have rich, interactive
                 interfaces. Flapjax provides two key features that
                 simplify writing these applications. First, it provides
                 {\em event streams}, a uniform abstraction for
                 communication within a program as well as with external
                 Web services. Second, the language itself is reactive:
                 it automatically tracks data dependencies and
                 propagates updates along those dataflows. This allows
                 developers to write reactive interfaces in a
                 declarative and compositional style.\par

                 Flapjax is built on top of JavaScript. It runs on
                 unmodified browsers and readily interoperates with
                 existing JavaScript code. It is usable as either a
                 programming language (that is compiled to JavaScript)
                 or as a JavaScript library, and is designed for both
                 uses. This paper presents the language, its design
                 decisions, and illustrative examples drawn from several
                 working Flapjax applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "functional reactive programming; JavaScript; web
                 programming",
}

@Article{Malayeri:2009:CMI,
  author =       "Donna Malayeri and Jonathan Aldrich",
  title =        "{CZ}: multiple inheritance without diamonds",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "21--40",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640092",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multiple inheritance has long been plagued with the
                 'diamond' inheritance problem, leading to solutions
                 that restrict expressiveness, such as mixins and
                 traits. Instead, we address the diamond problem
                 directly, considering two difficulties it causes:
                 ensuring a correct semantics for object initializers,
                 and typechecking multiple dispatch in a modular
                 fashion-the latter problem arising even with multiple
                 interface inheritance. We show that previous solutions
                 to these problems are either unsatisfactory or
                 cumbersome, and suggest a novel approach: supporting
                 multiple inheritance but forbidding diamond
                 inheritance. Expressiveness is retained through two
                 features: a 'requires' construct that provides a form
                 of subtyping without inheritance (inspired by Scala),
                 and a dynamically-dispatched 'super' call similar to
                 that found in traits. Through examples, we illustrate
                 that inheritance diamonds can be eliminated via a
                 combination of 'requires' and ordinary inheritance. We
                 provide a sound formal model for our language and
                 demonstrate its modularity and expressiveness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "diamond problem; modularity; multimethods; multiple
                 inheritance",
}

@Article{Ducournau:2009:EAO,
  author =       "Roland Ducournau and Flor{\'e}al Morandat and Jean
                 Privat",
  title =        "Empirical assessment of object-oriented
                 implementations with multiple inheritance and static
                 typing",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "41--60",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640093",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Object-oriented languages involve a threefold tradeoff
                 between runtime efficiency, expressiveness (multiple
                 inheritance), and modularity, i.e. open-world
                 assumption (OWA). Runtime efficiency is conditioned by
                 both the {\em implementation technique\/} and {\em
                 compilation scheme}. The former specifies the data
                 structures that support method invocation, attribute
                 access and subtype testing. The latter consists of the
                 production line of an executable from the source code.
                 Many implementation techniques have been proposed and
                 several compilation schemes can be considered from
                 fully global compilation under the closed-world
                 assumption (CWA) to separate compilation with dynamic
                 loading under the OWA, with midway solutions. This
                 article reviews a significant subset of possible
                 combinations and presents a systematic, empirical
                 comparison of their respective efficiencies with {\em
                 all other things being equal}. The testbed consists of
                 the Prm compiler that has been designed for this
                 purpose. The considered techniques include C++
                 subobjects, coloring, perfect hashing, binary tree
                 dispatch and caching. A variety of processors were
                 considered. Qualitatively, these first results confirm
                 the intuitive or theoretical abstract assessments of
                 the tested approaches. As expected, efficiency
                 increases as CWA strengthens. From a quantitative
                 standpoint, the results are the first to precisely
                 compare the efficiency of techniques that are closely
                 associated with specific languages like C++ and Eiffel.
                 They also confirm that perfect hashing should be
                 considered for implementing Java and .Net interfaces.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binary tree dispatch; closed-world assumption;
                 coloring; downcast; dynamic loading; interfaces; late
                 binding; method tables; multiple inheritance; multiple
                 subtyping; open-world assumption; perfect hashing;
                 single inheritance; subtype test; type analysis;
                 virtual function table",
}

@Article{Lublinerman:2009:PPO,
  author =       "Roberto Lublinerman and Swarat Chaudhuri and Pavol
                 Cerny",
  title =        "Parallel programming with object assemblies",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "61--80",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640095",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present {\em Chorus}, a high-level parallel
                 programming model suitable for irregular,
                 heap-manipulating applications like mesh refinement and
                 epidemic simulations, and {\em JChorus}, an
                 implementation of the model on top of Java. One goal of
                 Chorus is to express the {\em dynamic\/} and
                 instance-dependent patterns of memory access that are
                 common in typical irregular applications. Its other
                 focus is {\em locality of effects\/}: the property that
                 in many of the same applications, typical imperative
                 commands only affect small, local regions in the shared
                 heap.\par

                 Chorus addresses dynamism and locality through the
                 unifying abstraction of an {\em object assembly\/}: a
                 local region in a shared data structure equipped with a
                 short-lived, speculative thread of control. The thread
                 of control in an assembly can only access objects
                 within the assembly. While objects can migrate from
                 assembly to assembly, such migration is {\em local\/}
                 --i.e., objects only move from one assembly to a
                 neighboring one--and does not lead to aliasing.
                 Programming primitives include a {\em merge\/}
                 operation, by which an assembly merges with an adjacent
                 assembly, and a {\em split\/} operation, which splits
                 an assembly into smaller ones. Our abstractions are
                 race and deadlock-free, and inherently
                 data-centric.\par

                 We demonstrate that Chorus and JChorus allow natural
                 programming of several important applications
                 exhibiting irregular data-parallelism. We also present
                 an implementation of JChorus based on a many-to-one
                 mapping of assemblies to lower-level threads, and
                 report on preliminary performance numbers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "data parallelism; irregular parallelism; ownership;
                 parallel programming; programming abstractions",
}

@Article{Berger:2009:GSM,
  author =       "Emery D. Berger and Ting Yang and Tongping Liu and
                 Gene Novark",
  title =        "{Grace}: safe multithreaded programming for {C\slash
                 C++}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "81--96",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640096",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The shift from single to multiple core architectures
                 means that programmers must write concurrent,
                 multithreaded programs in order to increase application
                 performance. Unfortunately, multithreaded applications
                 are susceptible to numerous errors, including
                 deadlocks, race conditions, atomicity violations, and
                 order violations. These errors are notoriously
                 difficult for programmers to debug.\par

                 This paper presents Grace, a software-only runtime
                 system that eliminates concurrency errors for a class
                 of multithreaded programs: those based on fork-join
                 parallelism. By turning threads into processes,
                 leveraging virtual memory protection, and imposing a
                 sequential commit protocol, Grace provides programmers
                 with the appearance of deterministic, sequential
                 execution, while taking advantage of available
                 processing cores to run code concurrently and
                 efficiently. Experimental results demonstrate Grace's
                 effectiveness: with modest code changes across a suite
                 of computationally-intensive benchmarks (1-16 lines),
                 Grace can achieve high scalability and performance
                 while preventing concurrency errors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "concurrency; determinism; deterministic concurrency;
                 fork-join; sequential semantics",
}

@Article{Bocchino:2009:TES,
  author =       "Robert L. {Bocchino, Jr.} and Vikram S. Adve and Danny
                 Dig and Sarita V. Adve and Stephen Heumann and Rakesh
                 Komuravelli and Jeffrey Overbey and Patrick Simmons and
                 Hyojin Sung and Mohsen Vakilian",
  title =        "A type and effect system for deterministic parallel
                 {Java}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "97--116",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640097",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Today's shared-memory parallel programming models are
                 complex and error-prone. While many parallel programs
                 are intended to be deterministic, unanticipated thread
                 interleavings can lead to subtle bugs and
                 nondeterministic semantics. In this paper, we
                 demonstrate that a practical {\em type and effect
                 system\/} can simplify parallel programming by {\em
                 guaranteeing deterministic semantics\/} with modular,
                 compile-time type checking even in a rich, concurrent
                 object-oriented language such as Java. We describe an
                 object-oriented type and effect system that provides
                 several new capabilities over previous systems for
                 expressing deterministic parallel algorithms. We also
                 describe a language called Deterministic Parallel Java
                 (DPJ) that incorporates the new type system features,
                 and we show that a core subset of DPJ is sound. We
                 describe an experimental validation showing that DPJ
                 can express a wide range of realistic parallel
                 programs; that the new type system features are useful
                 for such programs; and that the parallel programs
                 exhibit good performance gains (coming close to or
                 beating equivalent, nondeterministic multithreaded
                 programs where those are available).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "commutativity; determinism; deterministic parallelism;
                 effect systems; effects",
}

@Article{Bloom:2009:TRC,
  author =       "Bard Bloom and John Field and Nathaniel Nystrom and
                 Johan {\"O}stlund and Gregor Richards and Rok
                 Strni{\v{s}}a and Jan Vitek and Tobias Wrigstad",
  title =        "Thorn: robust, concurrent, extensible scripting on the
                 {JVM}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "117--136",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640098",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Scripting languages enjoy great popularity due to
                 their support for rapid and exploratory development.
                 They typically have lightweight syntax, weak data
                 privacy, dynamic typing, powerful aggregate data types,
                 and allow execution of the completed parts of
                 incomplete programs. The price of these features comes
                 later in the software life cycle. Scripts are hard to
                 evolve and compose, and often slow. An additional
                 weakness of most scripting languages is lack of support
                 for concurrency --- though concurrency is required for
                 scalability and interacting with remote services. This
                 paper reports on the design and implementation of
                 Thorn, a novel programming language targeting the JVM.
                 Our principal contributions are a careful selection of
                 features that support the evolution of scripts into
                 industrial grade programs --- {\em e.g.}, an expressive
                 module system, an optional type annotation facility for
                 declarations, and support for concurrency based on
                 message passing between lightweight, isolated
                 processes. On the implementation side, Thorn has been
                 designed to accommodate the evolution of the language
                 itself through a compiler plugin mechanism and target
                 the Java virtual machine.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "actors; pattern matching; scripting",
}

@Article{Inoue:2009:HJV,
  author =       "Hiroshi Inoue and Toshio Nakatani",
  title =        "How a {Java VM} can get more from a hardware
                 performance monitor",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "137--154",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640100",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper describes our sampling-based profiler that
                 exploits a processor's HPM (Hardware Performance
                 Monitor) to collect information on running Java
                 applications for use by the Java VM. Our profiler
                 provides two novel features: Java-level event profiling
                 and lightweight context-sensitive event profiling. For
                 Java events, we propose new techniques to leverage the
                 sampling facility of the HPM to generate object
                 creation profiles and lock activity profiles. The HPM
                 sampling is the key to achieve a smaller overhead
                 compared to profilers that do not rely on hardware
                 helps. To sample the object creations with the HPM,
                 which can only sample hardware events such as executed
                 instructions or cache misses, we correlate the object
                 creations with the store instructions for Java object
                 headers. For the lock activity profile, we introduce an
                 instrumentation-based technique, called ProbeNOP, which
                 uses a special NOP instruction whose executions are
                 counted by the HPM. For the context-sensitive event
                 profiling, we propose a new technique called {\em
                 CallerChaining}, which detects the calling context of
                 HPM events based on the call stack depth (the value of
                 the stack frame pointer). We show that it can detect
                 the calling contexts in many programs including a large
                 commercial application. Our proposed techniques enable
                 both programmers and runtime systems to get more
                 valuable information from the HPM to understand and
                 optimize the programs without adding significant
                 runtime overhead.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "calling context; hardware performance monitor;
                 profiling",
}

@Article{Ha:2009:CDA,
  author =       "Jungwoo Ha and Matthew Arnold and Stephen M. Blackburn
                 and Kathryn S. McKinley",
  title =        "A concurrent dynamic analysis framework for multicore
                 hardware",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "155--174",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640101",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software has spent the bounty of Moore's law by
                 solving harder problems and exploiting abstractions,
                 such as high-level languages, virtual machine
                 technology, binary rewriting, and dynamic analysis.
                 Abstractions make programmers more productive and
                 programs more portable, but usually slow them down.
                 Since Moore's law is now delivering multiple cores
                 instead of faster processors, future systems must
                 either bear a relatively higher cost for abstractions
                 or use some cores to help tolerate abstraction
                 costs.\par

                 This paper presents the design, implementation, and
                 evaluation of a novel concurrent, configurable dynamic
                 analysis framework that efficiently utilizes multicore
                 cache architectures. It introduces Cache-friendly
                 Asymmetric Buffering (CAB), a lock-free ring-buffer
                 that implements efficient communication between
                 application and analysis threads. We guide the design
                 and implementation of our framework with a model of
                 dynamic analysis overheads. The framework implements
                 exhaustive and sampling event processing and is
                 analysis-neutral. We evaluate the framework with five
                 popular and diverse analyses, and show performance
                 improvements even for lightweight, low-overhead
                 analyses.\par

                 Efficient inter-core communication is central to high
                 performance parallel systems and we believe the CAB
                 design gives insight into the subtleties and
                 difficulties of attaining it for dynamic analysis and
                 other parallel software.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic analysis; instrumentation; multicore;
                 profiling",
}

@Article{Mytkowicz:2009:ICP,
  author =       "Todd Mytkowicz and Devin Coughlin and Amer Diwan",
  title =        "Inferred call path profiling",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "175--190",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640102",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Prior work has found call path profiles to be useful
                 for optimizers and programmer-productivity tools.
                 Unfortunately, previous approaches for collecting path
                 profiles are expensive: they need to either execute
                 additional instructions (to track calls and returns) or
                 they need to walk the stack. The state-of-the-art
                 techniques for call path profiling slow down the
                 program by 7\% (for C programs) and 20\% (for Java
                 programs). This paper describes an innovative technique
                 that collects minimal information from the running
                 program and later (offline) infers the full call paths
                 from this information.\par

                 The key insight behind our approach is that readily
                 available information during program execution --- the
                 height of the call stack and the identity of the
                 current executing function --- are good indicators of
                 calling context. We call this pair a {\em context
                 identifier}. Because more than one call path may have
                 the same context identifier, we show how to
                 disambiguate context identifiers by changing the sizes
                 of function activation records. This disambiguation has
                 no overhead in terms of executed instructions.\par

                 We evaluate our approach on the SPEC CPU 2006 C++ and C
                 benchmarks. We show that collecting context identifiers
                 slows down programs by 0.17\% (geometric mean). We can
                 map these context identifiers to the correct unique
                 call path 80\% of the time for C++ programs and 95\% of
                 the time for C programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "call path; calling context; calling context tree;
                 profiling; stack",
}

@Article{Charles:2009:ACC,
  author =       "Philippe Charles and Robert M. Fuhrer and Stanley M.
                 {Sutton, Jr.} and Evelyn Duesterwald and Jurgen Vinju",
  title =        "Accelerating the creation of customized,
                 language-Specific {IDEs} in {Eclipse}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "191--206",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640104",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Full-featured integrated development environments have
                 become critical to the adoption of new programming
                 languages. Key to the success of these IDEs is the
                 provision of services tailored to the languages.
                 However, modern IDEs are large and complex, and the
                 cost of constructing one from scratch can be
                 prohibitive. Generators that work from language
                 specifications reduce costs but produce environments
                 that do not fully reflect distinctive language
                 characteristics.\par

                 We believe that there is a practical middle ground
                 between these extremes that can be effectively
                 addressed by an open, semi-automated strategy to IDE
                 development. This strategy is to reduce the burden of
                 IDE development as much as possible, especially for
                 internal IDE details, while opening opportunities for
                 significant customizations to IDE services. To reduce
                 the effort needed for customization we provide a
                 combination of frameworks, templates, and generators.
                 We demonstrate an extensible IDE architecture that
                 embodies this strategy, and we show that this
                 architecture can be used to produce customized IDEs,
                 with a moderate amount of effort, for a variety of
                 interesting languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "eclipse; generation; IDE; meta-tooling",
}

@Article{Lee:2009:DAY,
  author =       "Byeongcheol Lee and Martin Hirzel and Robert Grimm and
                 Kathryn S. McKinley",
  title =        "Debug all your code: portable mixed-environment
                 debugging",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "207--226",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640105",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programmers build large-scale systems with multiple
                 languages to reuse legacy code and leverage languages
                 best suited to their problems. For instance, the same
                 program may use Java for ease-of-programming and C to
                 interface with the operating system. These programs
                 pose significant debugging challenges, because
                 programmers need to understand and control code across
                 languages, which may execute in different environments.
                 Unfortunately, traditional multilingual debuggers
                 require a {\em single\/} execution
                 environment.\par

                 This paper presents a novel {\em composition\/}
                 approach to building portable mixed-environment
                 debuggers, in which an intermediate agent interposes on
                 language transitions, controlling and reusing
                 single-environment debuggers. We implement debugger
                 composition in {\em Blink}, a debugger for Java, C, and
                 the Jeannie programming language. We show that Blink is
                 (1) relatively simple: it requires modest amounts of
                 new code; (2) portable: it supports multiple Java
                 Virtual Machines, C compilers, operating systems, and
                 component debuggers; and (3) powerful: composition
                 eases debugging, while supporting new mixed-language
                 expression evaluation and Java Native Interface (JNI)
                 bug diagnostics. In real-world case studies, we show
                 that language-interface errors require
                 single-environment debuggers to restart execution
                 multiple times, whereas Blink directly diagnoses them
                 with one execution. We also describe extensions for
                 other mixed-environments to show debugger composition
                 will generalize.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "composition; foreign function interface; JNI",
}

@Article{Leijen:2009:DTP,
  author =       "Daan Leijen and Wolfram Schulte and Sebastian
                 Burckhardt",
  title =        "The design of a task parallel library",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "227--242",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640106",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Task Parallel Library (TPL) is a library for .NET
                 that makes it easy to take advantage of potential
                 parallelism in a program. The library relies heavily on
                 generics and delegate expressions to provide custom
                 control structures expressing structured parallelism
                 such as map-reduce in user programs. The library
                 implementation is built around the notion of a task as
                 a finite CPU-bound computation. To capture the
                 ubiquitous apply-to-all pattern the library also
                 introduces the novel concept of a replicable task.
                 Tasks and replicable tasks are assigned to threads
                 using work stealing techniques, but unlike traditional
                 implementations based on the THE protocol, the library
                 uses a novel data structure called a 'duplicating
                 queue'. A surprising feature of duplicating queues is
                 that they have sequentially inconsistent behavior on
                 architectures with weak memory models, but capture this
                 non-determinism in a benign way by sometimes
                 duplicating elements. TPL ships as part of the
                 Microsoft Parallel Extensions for the .NET framework
                 4.0, and forms the foundation of Parallel LINQ queries
                 (however, note that the productized TPL library may
                 differ in significant ways from the basic design
                 described in this article).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "domain specific languages; duplicating queue;
                 parallelism; work stealing",
}

@Article{Bravenboer:2009:SDS,
  author =       "Martin Bravenboer and Yannis Smaragdakis",
  title =        "Strictly declarative specification of sophisticated
                 points-to analyses",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "243--262",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640108",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We present the DOOP framework for points-to analysis
                 of Java programs. DOOP builds on the idea of specifying
                 pointer analysis algorithms declaratively, using
                 Datalog: a logic-based language for defining
                 (recursive) relations. We carry the declarative
                 approach further than past work by describing the full
                 end-to-end analysis in Datalog and optimizing
                 aggressively using a novel technique specifically
                 targeting highly recursive Datalog programs.\par

                 As a result, DOOP achieves several benefits, including
                 full order-of-magnitude improvements in runtime. We
                 compare DOOP with Lhotak and Hendren's PADDLE, which
                 defines the state of the art for context-sensitive
                 analyses. For the exact same logical points-to
                 definitions (and, consequently, identical precision)
                 DOOP is more than 15x faster than PADDLE for a
                 1-call-site sensitive analysis of the DaCapo
                 benchmarks, with lower but still substantial speedups
                 for other important analyses. Additionally, DOOP scales
                 to very precise analyses that are impossible with
                 PADDLE and Whaley et al.'s bddbddb, directly addressing
                 open problems in past literature. Finally, our
                 implementation is modular and can be easily configured
                 to analyses with a wide range of characteristics,
                 largely due to its declarativeness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bdds; datalog; declarative; DOOP; points-to analysis",
}

@Article{Saito:2009:STC,
  author =       "Chieri Saito and Atsushi Igarashi",
  title =        "Self type constructors",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "263--282",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640109",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Bruce and Foster proposed the language LOOJ, an
                 extension of Java with the notion of {\em MyType},
                 which represents the type of a self reference and
                 changes its meaning along with inheritance. {\em
                 MyType\/} is useful to write extensible yet type-safe
                 classes for objects with recursive interfaces, that is,
                 ones with methods that take or return objects of the
                 same type as the receiver.\par

                 Although LOOJ has also generics, {\em MyType\/} has
                 been introduced as a feature rather orthogonal to
                 generics. As a result, LOOJ cannot express an interface
                 that refers to the same generic class recursively but
                 with different type arguments. This is a significant
                 limitation because such an interface naturally arises
                 in practice, for example, in a generic collection class
                 with method map(), which converts a collection to the
                 same kind of collection of a different element type.
                 Altherr and Cremet and Moors, Piessens, and Odersky
                 gave solutions to this problem but they used a highly
                 sophisticated combination of advanced mechanisms such
                 as abstract type members, higher-order type
                 constructors, and F-bounded polymorphism.\par

                 In this paper, we give another solution by introducing
                 {\em self type constructors}, which integrate {\em
                 MyType\/} and generics so that {\em MyType\/} can take
                 type arguments in a generic class. Self type
                 constructors are tailored to writing recursive
                 interfaces more concisely than previous solutions. We
                 demonstrate the expressive power of self type
                 constructors by means of examples, formalize a core
                 language with self type constructors, and prove its
                 type safety.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "binary methods; generics; MyType; type constructor
                 polymorphism",
}

@Article{Furr:2009:PGS,
  author =       "Michael Furr and Jong-hoon (David) An and Jeffrey S.
                 Foster",
  title =        "Profile-guided static typing for dynamic scripting
                 languages",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "283--300",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640110",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Many popular scripting languages such as Ruby, Python,
                 and Perl include highly dynamic language constructs,
                 such as an eval method that evaluates a string as
                 program text. While these constructs allow terse and
                 expressive code, they have traditionally obstructed
                 static analysis. In this paper we present PRuby, an
                 extension to Diamondback Ruby (DRuby), a static type
                 inference system for Ruby. PRuby augments DRuby with a
                 novel dynamic analysis and transformation that allows
                 us to precisely type uses of highly dynamic constructs.
                 PRuby's analysis proceeds in three steps. First, we use
                 run-time instrumentation to gather per-application
                 profiles of dynamic feature usage. Next, we replace
                 dynamic features with statically analyzable
                 alternatives based on the profile. We also add
                 instrumentation to safely handle cases when subsequent
                 runs do not match the profile. Finally, we run DRuby's
                 static type inference on the transformed code to
                 enforce type safety.\par

                 We used PRuby to gather profiles for a benchmark suite
                 of sample Ruby programs. We found that dynamic features
                 are pervasive throughout the benchmarks and the
                 libraries they include, but that most uses of these
                 features are highly constrained and hence can be
                 effectively profiled. Using the profiles to guide type
                 inference, we found that DRuby can generally statically
                 type our benchmarks modulo some refactoring, and we
                 discovered several previously unknown type errors.
                 These results suggest that profiling and transformation
                 is a lightweight but highly effective approach to bring
                 static typing to highly dynamic languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "profile guided analysis; RIL; ruby; scripting
                 languages",
}

@Article{Song:2009:ESL,
  author =       "Myoungkyu Song and Eli Tilevich",
  title =        "Enhancing source-level programming tools with an
                 awareness of transparent program transformations",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "301--320",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640112",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Programs written in managed languages are compiled to
                 a platform-independent intermediate representation,
                 such as Java bytecode. The relative high level of Java
                 bytecode has engendered a widespread practice of
                 changing the bytecode directly, without modifying the
                 maintained version of the source code. This practice,
                 called {\em bytecode engineering\/} or {\em
                 enhancement}, has become indispensable in introducing
                 various concerns, including persistence, distribution,
                 and security, transparently. For example, transparent
                 persistence architectures help avoid the entanglement
                 of business and persistence logic in the source code by
                 changing the bytecode directly to synchronize objects
                 with stable storage. With functionality added directly
                 at the bytecode level, the source code reflects only
                 partial semantics of the program. Specifically, the
                 programmer can neither ascertain the program's runtime
                 behavior by browsing its source code, nor map the
                 runtime behavior back to the original source
                 code.\par

                 This paper presents an approach that improves the
                 utility of source-level programming tools by providing
                 enhancement specifications written in a domain-specific
                 language. By interpreting the specifications, a
                 source-level programming tool can gain an awareness of
                 the bytecode enhancements and improve its precision and
                 usability. We demonstrate the applicability of our
                 approach by making a source code editor and a symbolic
                 debugger enhancements-aware.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "bytecode engineering; debugging; domain-specific
                 languages; enhancement; program transformation",
}

@Article{Abi-Antoun:2009:SEC,
  author =       "Marwan Abi-Antoun and Jonathan Aldrich",
  title =        "Static extraction and conformance analysis of
                 hierarchical runtime architectural structure using
                 annotations",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "321--340",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640113",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "An object diagram makes explicit the object structures
                 that are only implicit in a class diagram. An object
                 diagram may be missing and must extracted from the
                 code. Alternatively, an existing diagram may be
                 inconsistent with the code, and must be analyzed for
                 conformance with the implementation. One can generalize
                 the {\em global\/} object diagram of a system into a
                 runtime architecture which abstracts objects into
                 components, represents how those components interact,
                 and can decompose a component into a nested
                 sub-architecture.\par

                 A static object diagram represents all objects and
                 inter-object relations possibly created, and is
                 recovered by static analysis of a program. Existing
                 analyses extract static object diagrams that are
                 non-hierarchical, do not scale, and do not provide
                 meaningful architectural abstraction. Indeed,
                 architectural hierarchy is not readily observable in
                 arbitrary code. Previous approaches used breaking
                 language extensions to specify hierarchy and instances
                 in code, or used dynamic analyses to extract dynamic
                 object diagrams that show objects and relations for a
                 few program runs.\par

                 Typecheckable ownership domain annotations use existing
                 language support for annotations and specify in code
                 object encapsulation, logical containment and
                 architectural tiers. These annotations enable a
                 points-to static analysis to extract a sound global
                 object graph that provides architectural abstraction by
                 ownership hierarchy and by types, where architecturally
                 significant objects appear near the top of the
                 hierarchy and data structures are further
                 down.\par

                 Another analysis can abstract an object graph into a
                 built runtime architecture. Then, a third analysis can
                 compare the built architecture to a target, analyze and
                 measure their structural conformance, establish
                 traceability between the two and identify interesting
                 differences.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "architectural extraction; component-and-connector
                 view; conformance analysis; object diagram; object
                 graphs; points-to analysis; runtime architecture",
}

@Article{Nanda:2009:DMT,
  author =       "Mangala Gowri Nanda and Senthil Mani and Vibha Singhal
                 Sinha and Saurabh Sinha",
  title =        "Demystifying model transformations: an approach based
                 on automated rule inference",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "341--360",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640114",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Model-driven development (MDD) is widely used to
                 develop modern business applications. MDD involves
                 creating models at different levels of abstractions.
                 Starting with models of domain concepts, these
                 abstractions are successively refined, using
                 transforms, to design-level models and, eventually,
                 code-level artifacts. Although many tools exist that
                 support transform creation and verification, tools that
                 help users in understanding and using transforms are
                 rare. In this paper, we present an approach for
                 assisting users in understanding model transformations
                 and debugging their input models. We use automated
                 program-analysis techniques to analyze the transform
                 code and compute constraints under which a
                 transformation may fail or be incomplete. These
                 code-level constraints are mapped to the input model
                 elements to generate model-level rules. The rules can
                 be used to validate whether an input model violates
                 transform constraints, and to support general user
                 queries about a transformation. We have implemented the
                 analysis in a tool called XYLEM. We present empirical
                 results, which indicate that (1) our approach can be
                 effective in inferring useful rules, and (2) the rules
                 let users efficiently diagnose a failing transformation
                 without examining the transform source code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "model validation; model-driven development;
                 model-to-model transform; precondition analysis;
                 transformation comprehension",
}

@Article{Zhao:2009:AWL,
  author =       "Yi Zhao and Jin Shi and Kai Zheng and Haichuan Wang
                 and Haibo Lin and Ling Shao",
  title =        "Allocation wall: a limiting factor of {Java}
                 applications on emerging multi-core platforms",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "361--376",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640116",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Multi-core processors are widely used in computer
                 systems. As the performance of microprocessors greatly
                 exceeds that of memory, the memory wall becomes a
                 limiting factor. It is important to understand how the
                 large disparity of speed between processor and memory
                 influences the performance and scalability of Java
                 applications on emerging multi-core platforms.\par

                 In this paper, we studied two popular Java benchmarks,
                 SPECjbb2005 and SPECjvm2008, on multi-core platforms
                 including Intel Clovertown and AMD Phenom. We focus on
                 the 'partially scalable' benchmark programs. With
                 smaller number of CPU cores these programs scale
                 perfectly, but when more cores and software threads are
                 used, the slope of the scalability curve degrades
                 dramatically.\par

                 We identified a strong correlation between scalability,
                 object allocation rate and memory bus write traffic in
                 our experiments with our partially scalable programs.
                 We find that these applications allocate large amounts
                 of memory and consume almost all the memory write
                 bandwidth in our hardware platforms. Because the write
                 bandwidth is so limited, we propose the following
                 hypothesis: the scalability and performance is limited
                 by the object allocation on emerging multi-core
                 platforms for those objects-allocation intensive Java
                 applications, as if these applications are running into
                 an 'allocation wall'.\par

                 In order to verify this hypothesis, several experiments
                 are performed, including measuring key architecture
                 level metrics, composing a micro-benchmark program, and
                 studying the effect of modifying some of the 'partially
                 scalable' programs. All the experiments strongly
                 suggest the existence of the allocation wall.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "allocation; java; scalability",
}

@Article{Ogasawara:2009:NAM,
  author =       "Takeshi Ogasawara",
  title =        "{NUMA}-aware memory manager with dominant-thread-based
                 copying {GC}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "377--390",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640117",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We propose a novel online method of identifying the
                 preferred NUMA nodes for objects with negligible
                 overhead during the garbage collection time as well as
                 object allocation time. Since the number of CPUs (or
                 NUMA nodes) is increasing recently, it is critical for
                 the memory manager of the runtime environment of an
                 object-oriented language to exploit the low latency of
                 local memory for high performance. To locate the CPU of
                 a thread that frequently accesses an object, prior
                 research uses the runtime information about memory
                 accesses as sampled by the hardware. However, the
                 overhead of this approach is high for a garbage
                 collector.\par

                 Our approach uses the information about which thread
                 can exclusively access an object, or the {\em Dominant
                 Thread\/} (DoT). The dominant thread of an object is
                 the thread that often most accesses an object so that
                 we do not require memory access samples. Our NUMA-aware
                 GC performs DoT based object copying, which copies each
                 live object to the CPU where the dominant thread was
                 last dispatched before GC. The dominant thread
                 information is known from the thread stack and from
                 objects that are locked or reserved by threads and is
                 propagated in the object reference graph.\par

                 We demonstrate that our approach can improve the
                 performance of benchmark programs such as SPECpower
                 ssj2008, SPECjbb2005, and SPECjvm2008. We prototyped a
                 NUMA-aware memory manager on a modified version of IBM
                 Java VM and tested it on a cc-NUMA POWER6 machine with
                 eight NUMA nodes. Our NUMA-aware GC achieved
                 performance improvements up to 14.3\% and 2.0\% on
                 average over a JVM that only used the NUMA-aware
                 allocator. The total improvement using both the
                 NUMA-aware allocator and GC is up to 53.1\% and 10.8\%
                 on average.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cc-NUMA; java",
}

@Article{Pluquet:2009:ECP,
  author =       "Fr{\'e}d{\'e}ric Pluquet and Stefan Langerman and Roel
                 Wuyts",
  title =        "Executing code in the past: efficient in-memory object
                 graph versioning",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "391--408",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640118",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Object versioning refers to how an application can
                 have access to previous states of its objects.
                 Implementing this mechanism is hard because it needs to
                 be efficient in space and time, and well integrated
                 with the programming language. This paper presents
                 HistOOry, an object versioning system that uses an
                 efficient data structure to store and retrieve past
                 states. It needs only three primitives, and existing
                 code does not need to be modified to be versioned. It
                 provides fine-grained control over what parts of
                 objects are versioned and when. It stores all states,
                 past and present, in memory. Code can be executed in
                 the past of the system and will see the complete system
                 at that point in time. We have implemented our model in
                 Smalltalk and used it for three applications that need
                 versioning: checked postconditions, stateful execution
                 tracing and a planar point location implementation.
                 Benchmarks are provided to asses the practical
                 complexity of our implementation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "language design; object versioning; object-oriented
                 programming",
}

@Article{vonDincklage:2009:OPI,
  author =       "Daniel von Dincklage and Amer Diwan",
  title =        "Optimizing programs with intended semantics",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "409--424",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640120",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Modern object-oriented languages have complex features
                 that cause programmers to overspecify their programs.
                 This overspecification hinders automatic optimizers,
                 since they must preserve the overspecified semantics.
                 If an optimizer knew which semantics the programmer
                 intended, it could do a better job.\par

                 Making a programmer clarify his intentions by placing
                 assumptions into the program is rarely practical. This
                 is because the programmer does not know which parts of
                 the programs' overspecified semantics hinder the
                 optimizer. Therefore, the programmer has to guess which
                 assumption to add. Since the programmer can add many
                 different assumptions to a large program, he will need
                 to place many such assumptions before he guesses right
                 and helps the optimizer.\par

                 We present IOpt, a practical optimizer that uses a
                 specification of the programmers' intended semantics to
                 enable additional optimizations. That way, our
                 optimizer can significantly improve the performance of
                 a program. We present case studies in which we use IOpt
                 to speed up two programs by a factor of 2.\par

                 To make specifying the intended semantics practical,
                 IOpt communicates with the programmer. IOpt identifies
                 which assumptions the programmer {\em should\/} place,
                 and where he should place them. IOpt ranks each
                 assumption by (i) the likelihood that the assumption
                 conforms to the programmers' intended semantics and
                 (ii) how much the assumption will help IOpt improve the
                 programs' performance. IOpt proposes ranked assumptions
                 to the programmer, who just picks those that conform to
                 his intended semantics. With this approach, IOpt keeps
                 the programmers' specification burden low. In our case
                 studies, programmers had to add just a few assumptions
                 to realize significant performance speedups.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "intended semantics; optimization",
}

@Article{Tsafrir:2009:MDW,
  author =       "Dan Tsafrir and Robert W. Wisniewski and David F.
                 Bacon and Bjarne Stroustrup",
  title =        "Minimizing dependencies within generic classes for
                 faster and smaller programs",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "425--444",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640121",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Generic classes can be used to improve performance by
                 allowing compile-time polymorphism. But the
                 applicability of compile-time polymorphism is narrower
                 than that of runtime polymorphism, and it might bloat
                 the object code. We advocate a programming principle
                 whereby a generic class should be implemented in a way
                 that minimizes the dependencies between its members
                 (nested types, methods) and its generic type
                 parameters. Conforming to this principle (1) reduces
                 the bloat and (2) gives rise to a previously
                 unconceived manner of using the language that expands
                 the applicability of compile-time polymorphism to a
                 wider range of problems. Our contribution is thus a
                 programming technique that generates faster and smaller
                 programs. We apply our ideas to GCC's STL containers
                 and iterators, and we demonstrate notable speedups and
                 reduction in object code size (real application runs
                 1.2x to 2.1x faster and STL code is 1x to 25x smaller).
                 We conclude that standard generic APIs (like STL)
                 should be amended to reflect the proposed principle in
                 the interest of efficiency and compactness. Such
                 modifications will not break old code, simply increase
                 flexibility. Our findings apply to languages like C++,
                 C\#, and D, which realize generic programming through
                 multiple instantiations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "generalized hoisting; generics; scary assignments and
                 initializations; templates",
}

@Article{Kats:2009:PRF,
  author =       "Lennart C. L. Kats and Maartje de Jonge and Emma
                 Nilsson-Nyman and Eelco Visser",
  title =        "Providing rapid feedback in generated modular language
                 environments: adding error recovery to scannerless
                 generalized-{LR} parsing",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "445--464",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640122",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Integrated development environments (IDEs) increase
                 programmer productivity, providing rapid, interactive
                 feedback based on the syntax and semantics of a
                 language. A heavy burden lies on developers of new
                 languages to provide adequate IDE support. Code
                 generation techniques provide a viable, efficient
                 approach to semi-automatically produce IDE plugins. Key
                 components for the realization of plugins are the
                 language's grammar and parser. For embedded languages
                 and language extensions, constituent IDE plugin modules
                 and their grammars can be combined. Unlike conventional
                 parsing algorithms, scannerless generalized-LR parsing
                 supports the full set of context-free grammars, which
                 is closed under composition, and hence can parse
                 language embeddings and extensions composed from
                 separate grammar modules. To apply this algorithm in an
                 interactive environment, this paper introduces a novel
                 error recovery mechanism, which allows it to be used
                 with files with syntax errors -- common in interactive
                 editing. Error recovery is vital for providing rapid
                 feedback in case of syntax errors, as most IDE services
                 depend on the parser from syntax highlighting to
                 semantic analysis and cross-referencing. We base our
                 approach on the principles of island grammars, and
                 derive permissive grammars with error recovery
                 productions from normal SDF grammars. To cope with the
                 added complexity of these grammars, we adapt the parser
                 to support backtracking. We evaluate the recovery
                 quality and performance of our approach using a set of
                 composed languages, based on Java and Stratego.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "composable languages; embedded languages; error
                 recovery; language extensions; permissive grammars;
                 SDF; SGLR",
}

@Article{Riehle:2009:DPD,
  author =       "Dirk Riehle",
  title =        "Design pattern density defined",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "469--480",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640125",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "{\em Design pattern density\/} is a metric that
                 measures how much of an object-oriented design can be
                 understood and represented as instances of design
                 patterns. Expert developers have long believed that a
                 high design pattern density implies a high maturity of
                 the design under inspection. This paper presents a
                 quantifiable and observable definition of this metric.
                 The metric is illustrated and qualitatively validated
                 using four real-world case studies. We present several
                 hypotheses of the metric's meaning and their
                 implications, including the one about design maturity.
                 We propose that the design pattern density of a
                 maturing framework has a fixed point and we show that
                 if software design patterns make learning frameworks
                 easier, a framework's design pattern density is a
                 measure of how much easier it will become.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "collaboration-based design; design pattern density;
                 design patterns; framework maturity; inheritance
                 interface; JHot-Draw; JUnit; object-oriented case
                 study; object-oriented design; object-oriented
                 framework; role modeling",
}

@Article{Mullen:2009:WCO,
  author =       "Thomas Mullen",
  title =        "Writing code for other people: cognitive psychology
                 and the fundamentals of good software design
                 principles",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "481--492",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640126",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper demonstrates how the cognitive model of the
                 mind can explain the core fundamentals behind widely
                 accepted design principles. The conclusion is that
                 software design is largely a task of chunking analogies
                 and presents a theory that is detailed enough to be
                 accessible to even the most inexperienced programmer.
                 The corollary of which is a pedagogical approach to
                 understanding design principles rather than the
                 necessity of years of software development
                 experience.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "4 minus analogies; chunking analogies",
}

@Article{Overbey:2009:RLR,
  author =       "Jeffrey L. Overbey and Ralph E. Johnson",
  title =        "Regrowing a language: refactoring tools allow
                 programming languages to evolve",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "493--502",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640127",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Successful programming languages change as they age.
                 They tend to become more complex, and eventually some
                 features become outdated or are rarely used.
                 Programming tools for these languages become more
                 complex as well, since they have to support archaic
                 features. Old programs are hard to maintain, since
                 these archaic features are unfamiliar to modern
                 programmers. These problems can be solved by
                 refactoring tools that can transform programs to use
                 the modern form. We show that refactoring tools can
                 ease the cost of program evolution by examining the
                 evolution of two languages, Fortran and Java, and
                 showing that each change corresponds to an automatable
                 refactoring.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "Fortran; Java; language design; language evolution;
                 refactoring; restructuring",
}

@Article{Knoll:2009:PL,
  author =       "Roman Kn{\"o}ll and Mira Mezini",
  title =        "$\pi$: a pattern language",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "503--522",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640128",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Current programming languages and techniques realize
                 many features which allow their users to extend these
                 languages on a semantic basis: classes, functions,
                 interfaces, aspects and other entities can be defined.
                 However, there is a lack of modern programming
                 languages which are both semantically and syntactically
                 extensible from within the language itself, i.e., with
                 no additional tool or meta-language. In this paper we
                 present $\pi$ as an approach that aims to overcome this
                 lack. $\pi$ provides an abstraction mechanism based on
                 parameterized symbols which is capable of semantically
                 and syntactically unifying programming concepts like
                 variables, control-structures, procedures and functions
                 into one concept: the pattern. We have evaluated the
                 abstraction potential and the syntactic extensibility
                 of $\pi$ by successfully creating patterns for the
                 aforementioned programming concepts. $\pi$ could serve
                 as a tool for designing new experimental languages and
                 might generally influence the view we have on current
                 programming concepts.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "domain specific languages; extensibility; language
                 design; language extension; macros; pattern language;
                 patterns; semiotics",
}

@Article{Mahoney:2009:SEM,
  author =       "Mark Mahoney",
  title =        "Software evolution and the moving picture metaphor",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "525--528",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640130",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software systems evolve over time. Currently we do not
                 do a good job of documenting this evolution. This essay
                 discusses the need to better document software
                 evolution and introduces the {\em Moving Picture
                 Metaphor}. Source Control Management systems are more
                 like collections of still photographs than moving
                 pictures. Still photography is not ideal when trying to
                 capture evolutional changes. Moving pictures do a much
                 better job. A storyteller can use moving pictures to
                 tell compelling stories that are easier to digest than
                 traditional documentation. We can learn a great deal
                 from watching stories that document a system's
                 evolution.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "software evolution; source control management",
}

@Article{Quillien:2009:AAA,
  author =       "Jenny Quillien and Pam Rostal and Dave West",
  title =        "Agile anthropology and {Alexander}'s architecture: an
                 essay in three voices",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "529--546",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640131",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "During its formative decades the software community
                 looked twice to the theories of Christopher Alexander
                 for inspiration, both times failing to completely
                 master the architect's most useful insights. Now a
                 third opportunity presents itself with Alexander's
                 recent publication, {\em The Nature of Order}. Serious
                 apprenticeship, however, imposes a prerequisite of
                 sober self-reflection and evaluation. What, really, is
                 the nature of the developer's tasks? Under what
                 philosophical umbrella has the software community
                 matured until now? Do other philosophical traditions
                 offer alternative and perhaps more pertinent
                 epistemologies? What voices, besides Alexander's, might
                 contribute to the community's evolution? We address
                 these questions along with theory building,
                 ethnography, weak links, design heuristics, agility,
                 and complex systems, all of which combine with
                 Alexander's new theories to suggest different ways of
                 doing what we do, better.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "agile; Alexander; complexity; ethnography; patterns;
                 theory-building; unfolding",
}

@Article{Baniassad:2009:EPL,
  author =       "Elisa Baniassad and Clayton Myers",
  title =        "An exploration of program as language",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "547--556",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640132",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In this paper we explore the idea that the code that
                 constitutes a program actually forms a higher-level,
                 program specific language. The symbols of the language
                 are the abstractions of the program, and the grammar of
                 the language is the set of (generally unwritten) rules
                 about the allowable combinations of those abstractions.
                 As such, a program is both a language definition, and
                 the only use of that language. This specificity means
                 that reading a never-before encountered program
                 involves learning a new natural language, and that
                 porting code from one program to another requires
                 translation from one natural language into another. We
                 suggest that the complexity and depth of the program
                 language is affected by the gap between the program
                 semantics (what the program is meant to do) and the
                 code semantics (the way in which the machine runs). We
                 believe that in seeing that programs are languages, we
                 gain new insight into our own experience as
                 programmers, and are able to gain new perspective on
                 the intense complexity of code and its creation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "program language",
}

@Article{Cook:2009:UDA,
  author =       "William R. Cook",
  title =        "On understanding data abstraction, revisited",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "557--572",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1639949.1640133",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In 1985 Luca Cardelli and Peter Wegner, my advisor,
                 published an ACM Computing Surveys paper called 'On
                 understanding types, data abstraction, and
                 polymorphism'. Their work kicked off a flood of
                 research on semantics and type theory for
                 object-oriented programming, which continues to this
                 day. Despite 25 years of research, there is still
                 widespread confusion about the two forms of data
                 abstraction, {\em abstract data types\/} and {\em
                 objects}. This essay attempts to explain the
                 differences and also why the differences matter.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "abstract data type; ADT; class; object",
}

@Article{Allen:2009:OOP,
  author =       "Jim Allen and Zena Ariola and Pierre-Louis Curien and
                 Matthew Fluet and Jeff Foster and Dan Grossman and
                 Robert Harper and Hugo Herbelin and Yannis Smaragdakis
                 and David Walker and Steve Zdancewic",
  title =        "An overview of the {Oregon} programming languages
                 summer school",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "11",
  pages =        "1--3",
  month =        nov,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1816027.1816029",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:03:29 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "The Oregon Programming Languages Summer School (OPLSS)
                 has been held at the University of Oregon each summer
                 since 2002. We believe it has been an unqualified
                 success in providing students and instructors a unique
                 opportunity to study relevant background and
                 cutting-edge results in the field of programming
                 languages research. As the current steering committee
                 and organizers for OPLSS, we appreciate the opportunity
                 to provide an overview of the summer school. This short
                 article describes the format, history, goals, and
                 support for the OPLSS.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Danish:2009:OSD,
  author =       "Matthew Danish and Hongwei Xi",
  title =        "Operating system development with {ATS}: work in
                 progress: (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "11",
  pages =        "6--6",
  month =        nov,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1816027.1816032",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:03:29 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Typical operating system design is marked by
                 trade-offs between speed and reliability, features and
                 security. Most systems are written in a low-level
                 untyped programming language to achieve optimal
                 hardware usage and for other practical reasons. But,
                 this often results in CPU, memory, and I/O protection
                 flaws due to mistakes in unverified code. On the other
                 hand, fully verified systems are exceedingly hard to
                 construct on any industrial scale. A high-level
                 programming language, with an expressive type system
                 suitable for systems programming, can help alleviate
                 many of these problems without requiring the enormous
                 effort of full verification.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Monnier:2009:STH,
  author =       "Stefan Monnier and David Haguenauer",
  title =        "Singleton types here, singleton types there, singleton
                 types everywhere: (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "11",
  pages =        "6--6",
  month =        nov,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1816027.1816031",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:03:29 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Singleton types are often considered a poor man's
                 substitute for dependent types. But their
                 generalization in the form of GADTs has found quite a
                 following. The main advantage of singleton types and
                 GADTs is to preserve the so-called phase distinction,
                 which seems to be so important to make use of the usual
                 compilation techniques. Of course, they considerably
                 restrict the programmers, which often leads them to
                 duplicate code at both the term and type levels, so as
                 to reflect at the type level what happens at the term
                 level, in order to be able to reason about it.\par

                 In this article, we show how to automate such a
                 duplication while eliminating the problematic
                 dependencies. More specifically, we show how to compile
                 the Calculus of Constructions into ?H, a
                 non-dependently-typed language, while still preserving
                 all the typing information. Since ?H has been shown to
                 be amenable to type preserving CPS and closure
                 conversion, it shows a way to preserve types when doing
                 code extraction and more generally when using all the
                 common compiler techniques.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Balzer:2009:MRA,
  author =       "Stephanie Balzer and Thomas R. Gross",
  title =        "Modular reasoning about invariants over shared state
                 with interposed data members: (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "11",
  pages =        "6--7",
  month =        nov,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1816027.1816033",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:03:29 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Reasoning about object-oriented programs is difficult
                 since such programs usually involve aliasing, and it is
                 not easy to identify the ways objects can relate to
                 each other and thus to confine a program's heap. In
                 this paper, we address this problem in the context of a
                 relationship-based programming language. In
                 relationship-based programming languages, relationships
                 are first-class citizens and allow a precise
                 description of inter-object relationships.
                 Relationships enforce a modularization discipline that
                 is closer to the natural modularity inherent to many
                 problem domains and that yields, as a result, program
                 heaps that are DAGs. We further describe a mechanism,
                 member interposition, that leverages the new
                 modularization discipline and supports encapsulation of
                 fields of shared objects. We have implemented the
                 described modularization discipline and the mechanism
                 of member interposition in the context of Rumer, a
                 relationship-based programming language with support
                 for contract specifications. We discuss the
                 implications of member interposition for the modular
                 verification of object invariants with an example.
                 Relationships and interposed members provide an
                 alternative to ownership type systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Christiansen:2009:FTF,
  author =       "Jan Christiansen and Daniel Seidel and Janis
                 Voigtl{\"a}nder",
  title =        "Free theorems for functional logic programs: (abstract
                 only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "11",
  pages =        "7--7",
  month =        nov,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1816027.1816035",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:03:29 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Type-based reasoning is popular in functional
                 programming. In particular, parametric polymorphism
                 constrains functions in such a way that statements
                 about their behavior can be derived without consulting
                 function definitions. Is the same possible in a
                 strongly, and polymorphically, typed functional logic
                 language? This is the question we study in this paper.
                 Logical features like nondeterminism and free variables
                 cause interesting effects, which we examine based on
                 examples and address by identifying appropriate
                 conditions that guarantee standard free theorems or
                 inequational versions thereof to hold. We see this case
                 study as a stepping stone for a general theory, not
                 provided here, involving the definition of a logical
                 relation and other machinery required for parametricity
                 arguments appropriate to functional logic languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Stump:2009:RTG,
  author =       "Aaron Stump and Evan Austin",
  title =        "Resource typing in {Guru}: (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "11",
  pages =        "7--7",
  month =        nov,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1816027.1816034",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:03:29 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "This paper presents a resource typing framework for
                 the Guru verified-programming language, in which
                 abstractions for various kinds of program resources can
                 be defined. Implemented examples include
                 reference-counted data, mutable arrays, and
                 heap-allocated mutable aliased data. The approach
                 enables efficient, type-safe programming with mutable
                 and aliased data structures, with explicit deallocation
                 (not garbage collection). We evaluate performance of
                 the approach with two verified benchmarks, one
                 involving mutable arrays, and another involving FIFO
                 queues.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Weirich:2009:AGD,
  author =       "Stephanie Weirich and Chris Casinghino",
  title =        "Arity-generic datatype-generic programming: (abstract
                 only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "11",
  pages =        "7--7",
  month =        nov,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1816027.1816036",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:03:29 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Some programs are doubly-generic. For example, map is
                 datatype-generic in that many different data structures
                 support a mapping operation. A generic programming
                 language like Generic Haskell can use a single
                 definition to generate map for each type. However, map
                 is also arity-generic because it belongs to a family of
                 related operations that differ in the number of
                 arguments. For lists, this family includes repeat, map,
                 zipWith, zipWith3, zipWith4, etc. With dependent types
                 or clever programming, one can unify all of these
                 functions together in a single definition.\par

                 However, no one has explored the combination of these
                 two forms of genericity. These two axes are not
                 orthogonal because the idea of arity appears in Generic
                 Haskell: datatype-generic versions of repeat, map and
                 zipWith have different arities of kind-indexed types.
                 In this paper, we define arity-generic datatype-generic
                 programs by building a framework for Generic
                 Haskell-style generic programming in the
                 dependently-typed programming language Agda 2.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Kalibera:2009:CBV,
  author =       "Tomas Kalibera and Pavel Parizek and Ghaith Haddad and
                 Gary T. Leavens and Jan Vitek",
  title =        "Challenge benchmarks for verification of real-time
                 programs: (abstract only)",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "11",
  pages =        "7--8",
  month =        nov,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1816027.1816037",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:03:29 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Real-time systems, and in particular safety-critical
                 systems, are a rich source of challenges for the
                 program verification community as software errors can
                 have catastrophic consequences. Unfortunately, it is
                 nearly impossible to find representative
                 safety-critical programs in the public domain. This has
                 been significant impediment to research in the field,
                 as it is very difficult to validate new ideas or
                 techniques experimentally. This paper presents open
                 challenges for verification of real-time systems in the
                 context of the Real-time Specification for Java. But,
                 our main contribution is a family of programs, called
                 CDx, which we present as an open source benchmark for
                 the verification community.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Vitek:2009:SPT,
  author =       "Jan Vitek",
  title =        "Of scripts and programs: tall tales, urban legends,
                 and future prospects",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "1--2",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640134.1640136",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Scripting languages are playing an increasing role in
                 today's software landscape due to their support for
                 rapid and exploratory development. They typically have
                 lightweight syntax, weak data privacy, dynamic typing,
                 powerful aggregate data types, and allow execution of
                 the completed parts of incomplete programs. While many
                 of their uses are web-centric, scripting languages also
                 show up in non-traditional domains such as space
                 exploration and administration of the pension benefits
                 entire countries. Considering their importance to the
                 practice of computing, it is surprising to see that, in
                 academic circles, scripting is still often viewed as an
                 undisciplined and unprincipled attempt at programming.
                 In this talk, I will summarize work carried in
                 collaboration with IBM Research on bridging the divide
                 between scripting and programming. I will motivate our
                 investigations with some success stories of scripting
                 languages used in unusual places. Then I will dispel
                 some misconceptions about the nature of scripts with
                 preliminary results from a large corpus analysis of
                 programs written in a popular scripting language.
                 Finally, I will talk about the design of a new
                 language, called Thorn, that aims to ease the journey
                 from scripts to programs (and back).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "scripting",
}

@Article{Tanter:2009:BSD,
  author =       "{\'E}ric Tanter",
  title =        "Beyond static and dynamic scope",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "3--14",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1837513.1640137",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Traditional treatment of scoping in programming
                 languages considers two opposite semantics: static
                 scoping, where the scope of a binding is a block of
                 program text, and dynamic scoping, where a binding is
                 in effect during the whole reduction of an expression
                 to a value. Static scoping and dynamic scoping are
                 however but two points in the design space of scoping
                 mechanisms. As a result, most proposed language
                 mechanisms that rely on some notion of scoping, such as
                 variable bindings of course, but also more exotic ones
                 like aspects and mixin layers, adopt either one or the
                 other semantics. As it turns out, these two semantics
                 are sometimes too extreme, and a mixture of both is
                 needed. To achieve this, language designers and/or
                 programmers have to resort to ad hoc solutions. We
                 present a general scoping model that simply expresses
                 static and dynamic scoping, and that goes further by
                 allowing fine-grained exploration of the design space
                 of scoping. The model, called {\em scoping strategies},
                 gives precise control over propagation and activation
                 of language mechanisms. While we have already studied
                 it for aspects, we hereby show that the model is not
                 restricted to aspects, by treating in depth its
                 application to the most standard kind of adaptation:
                 variable bindings. We also briefly discuss its
                 application to mixin layers, and program monitoring. We
                 believe that research in programming language
                 constructs can benefit from a more flexible notion of
                 scoping that goes beyond the static/dynamic
                 dichotomy.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "adaptation; dynamic scope; lexical scope; scope;
                 variable bindings",
}

@Article{Axelsen:2009:GPT,
  author =       "Eyvind W. Axelsen and Stein Krogdahl",
  title =        "{Groovy} package templates: supporting reuse and
                 runtime adaption of class hierarchies",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "15--26",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640134.1640139",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "We show how package templates, a modularization
                 mechanism originally developed for statically typed
                 languages like Java and C\#, can be applied to and
                 implemented in a dynamic language like Groovy, by using
                 the language's capabilities for meta-programming. We
                 then consider a set of examples and discuss dynamic PT
                 from the viewpoints of code modularization and reuse,
                 and dynamic adaption of classes at runtime.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "dynamic languages; modularization; OOP; templates",
}

@Article{Strickland:2009:CFC,
  author =       "T. Stephen Strickland and Matthias Felleisen",
  title =        "Contracts for first-class modules",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "27--38",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640134.1640140",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Behavioral software contracts express properties
                 concerning the flow of values across component
                 (modules, classes, etc) interfaces. These properties
                 are often beyond the reach of theorem provers and are
                 therefore monitored at run-time. When the monitor
                 discovers a contract violation, it raises an exception
                 that simultaneously pinpoints the contract violator and
                 explains the nature of the violation.\par

                 Currently contract monitoring assumes static module
                 interfaces. Specifically, the contract compiler
                 partitions a contract into disjoint obligations for the
                 static modules that communicate to an interface. At
                 run-time, the information is used for catching and
                 explaining contract violations. While static modules
                 suffice for many situations, first-class modules ---
                 such as the units provided by PLT Scheme --- support
                 the dynamic and multiple linking that is often required
                 in open software systems. The problem is, of course,
                 that in such a world, it becomes impossible to tell
                 from the source program alone which components have
                 agreed to which contracts.\par

                 In this paper, we develop the semantic framework of
                 monitoring contracts for dynamic modules. We establish
                 the internal consistency of the semantics, and we
                 sketch an implementation based on our experience of
                 equipping PLT Scheme with such contracts.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "contracts; first-class module systems",
}

@Article{Riehl:2009:LEO,
  author =       "Jonathan Riehl",
  title =        "Language embedding and optimization in {Mython}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "39--48",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640134.1640141",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Mython is an extensible variant of the Python
                 programming language. Mython achieves extensibility by
                 adding a quotation mechanism that accepts an additional
                 parameter as well as the code being quoted. The
                 additional quotation parameter takes the form of a
                 Mython expression. Unlike other user code, Mython
                 evaluates the quotation parameter at compile-time. The
                 result of the compile-time expression is a function
                 that is used to both parse the quoted code, and extend
                 the compile-time environment. By explicitly passing the
                 compilation environment to compile-time quotation
                 functions, Mython's parameterized quotation allows
                 users to inject code into the language compiler.
                 Injected code can extend the language by modifying the
                 compilation phases, which are visible to the
                 compilation environment. The Mython language is
                 realized by the MyFront compiler, a tool for
                 translating Mython into Python byte-code modules. This
                 paper introduces the Mython language, describes the
                 implementation and usage of the MyFront tool, and shows
                 how MyFront can be used to implement domain-specific
                 optimizations using a little rewrite language.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "compile-time metaprogramming; extensible languages;
                 open compilers",
}

@Article{Khoo:2009:DJA,
  author =       "Yit Phang Khoo and Michael Hicks and Jeffrey S. Foster
                 and Vibha Sazawal",
  title =        "Directing {JavaScript} with arrows",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "49--58",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1837513.1640143",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "JavaScript programmers make extensive use of
                 event-driven programming to help build responsive web
                 applications. However, standard approaches to
                 sequencing events are messy, and often lead to code
                 that is difficult to understand and maintain. We have
                 found that {\em arrows}, a generalization of {\em
                 monads}, are an elegant solution to this problem.
                 Arrows allow us to easily write asynchronous programs
                 in small, modular units of code, and flexibly compose
                 them in many different ways, while nicely abstracting
                 the details of asynchronous program composition. In
                 this paper, we present Arrowlets, a new JavaScript
                 library that offers arrows to the everyday JavaScript
                 programmer. We show how to use Arrowlets to construct a
                 variety of state machines, including state machines
                 that branch and loop. We also demonstrate how Arrowlets
                 separate computation from composition with examples
                 such as a drag-and-drop handler and a bubblesort
                 animation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "arrowlets; arrows; events; JavaScript; Web
                 programming",
}

@Article{Costanza:2009:COS,
  author =       "Pascal Costanza and Charlotte Herzeel and Theo
                 D'Hondt",
  title =        "Context-oriented software transactional memory in
                 {Common Lisp}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "59--68",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1837513.1640144",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Software transactional memory (STM) is a promising
                 approach for coordinating concurrent threads, for which
                 many implementation strategies are currently being
                 researched. Although some first steps exist to ease
                 experimenting with different strategies, this still
                 remains a relatively complex and cumbersome task. The
                 reason is that software transactions require
                 STM-specific {\em dynamic crosscutting adaptations},
                 but this is not accounted for in current STM
                 implementations. This paper presents CSTM, an STM
                 framework based on {\em Context-oriented Programming},
                 in which transactions are modelled as dynamically
                 scoped layer activations. It enables expressing
                 transactional variable accesses as user-defined
                 crosscutting concerns, without requiring invasive
                 changes in the rest of a program. This paper presents a
                 proof-of-concept implementation based on ContextL for
                 Common Lisp, along with example STM strategies and
                 preliminary benchmarks, and introduces some of
                 ContextL's unique features for context-dependent
                 variable accesses.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "context-oriented programming; framework design;
                 software transactional memory",
}

@Article{Pluquet:2009:FTR,
  author =       "Fr{\'e}d{\'e}ric Pluquet and Antoine Marot and Roel
                 Wuyts",
  title =        "Fast type reconstruction for dynamically typed
                 programming languages",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "69--78",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1837513.1640145",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Type inference and type reconstruction derive static
                 types for program elements that have no static type
                 associated with them. They have a wide range of usage,
                 such as helping to eliminate the burden of manually
                 specifying types, verifying whether a program is
                 type-safe, helping to produce more optimized code or
                 helping to understand programs. While type inference
                 and type reconstruction is an active field of research,
                 most existing techniques are interested foremost in the
                 precision of their approaches, at the expense of
                 execution speed. As a result, existing approaches are
                 not suited to give direct feedback in development
                 environments, where interactivity dictates very fast
                 approaches. This paper presents a type reconstruction
                 algorithm for variables that is extremely fast (in the
                 order of milliseconds) and reasonably precise (75
                 percent). The system is implemented as a byte-code
                 evaluator in several Smalltalk environments, and its
                 execution speed and precision are validated on a number
                 of concrete case studies.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "development environments; dynamic programming
                 languages; type inference; type reconstruction",
}

@Article{Yermolovich:2009:ODL,
  author =       "Alexander Yermolovich and Christian Wimmer and Michael
                 Franz",
  title =        "Optimization of dynamic languages using hierarchical
                 layering of virtual machines",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "79--88",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640134.1640147",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Creating an interpreter is a simple and fast way to
                 implement a dynamic programming language. With this
                 ease also come major drawbacks. Interpreters are
                 significantly slower than compiled machine code because
                 they have a high dispatch overhead and cannot perform
                 optimizations. To overcome these limitations,
                 interpreters are commonly combined with just-in-time
                 compilers to improve the overall performance. However,
                 this means that a just-in-time compiler has to be
                 implemented for each language.\par

                 We explore the approach of taking an interpreter of a
                 dynamic language and running it on top of an optimizing
                 trace-based virtual machine, i.e., we run a {\em guest
                 VM\/} on top of a {\em host VM}. The host VM uses trace
                 recording to observe the guest VM executing the
                 application program. Each recorded trace represents a
                 sequence of guest VM bytecodes corresponding to a given
                 execution path through the application program. The
                 host VM optimizes and compiles these traces to machine
                 code, thus eliminating the need for a custom
                 just-in-time compiler for the guest VM. The guest VM
                 only needs to provide basic information about its
                 interpreter loop to the host VM.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "actionscript; dynamic languages; hierarchical virtual
                 machines; Lua; trace compilation",
}

@Article{Furr:2009:RIL,
  author =       "Michael Furr and Jong-hoon (David) An and Jeffrey S.
                 Foster and Michael Hicks",
  title =        "The {Ruby} intermediate language",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "89--98",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640134.1640148",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "Ruby is a popular, dynamic scripting language that
                 aims to 'feel natural to programmers' and give users
                 the 'freedom to choose' among many different ways of
                 doing the same thing. While this arguably makes
                 programming in Ruby easier, it makes it hard to build
                 analysis and transformation tools that operate on Ruby
                 source code. In this paper, we present the Ruby
                 Intermediate Language (RIL), a Ruby front-end and
                 intermediate representation that addresses these. RIL
                 includes an extensible GLR parser for Ruby, and an
                 automatic translation into an easy-to-analyze
                 intermediate form. This translation eliminates
                 redundant language constructs, unravels the often
                 subtle ordering among side effecting operations, and
                 makes implicit interpreter operations explicit. We also
                 describe several additional useful features of RIL,
                 such as a dynamic instrumentation library for profiling
                 source code and a dataflow analysis engine. We
                 demonstrate the usefulness of RIL by presenting a
                 static and dynamic analysis to eliminate null pointer
                 errors in Ruby programs. We hope that RIL's features
                 will enable others to more easily build analysis tools
                 for Ruby, and that our design will inspire the of
                 similar frameworks for other dynamic languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "intermediate language; profile guided analysis; RIL;
                 Ruby",
}

@Article{Ungar:2009:HOH,
  author =       "David Ungar and Sam S. Adams",
  title =        "Hosting an object heap on manycore hardware: an
                 exploration",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "99--110",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640134.1640149",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  abstract =     "In order to construct a test-bed for investigating new
                 programming paradigms for future 'manycore' systems
                 (i.e. those with at least a thousand cores), we are
                 building a Smalltalk virtual machine that attempts to
                 efficiently use a collection of 56-on-chip caches of
                 64KB each to host a multi-megabyte object heap. In
                 addition to the cost of inter-core communication, two
                 hardware characteristics influenced our design: the
                 absence of hardware-provided cache-coherence, and the
                 inability to move a single object from one core's cache
                 to another's without changing its address. Our design
                 relies on an object table, and the exploitation of a
                 user-managed caching regime for read-mostly objects. At
                 almost every stage of our process, we obtained
                 measurements in order to guide the evolution of our
                 system.\par

                 The architecture and performance characteristics of a
                 manycore platform confound old intuitions by deviating
                 from both traditional multicore systems and from
                 distributed systems. The implementor confronts a wide
                 variety of design choices, such as when to share
                 address space, when to share memory as opposed to
                 sending a message, and how to eke out the most
                 performance from a memory system that is far more
                 tightly integrated than a distributed system yet far
                 less centralized than in a several-core system. Our
                 system is far from complete, let alone optimal, but our
                 experiences have helped us develop new intuitions
                 needed to rise to the manycore software challenge.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "cache performance; manycore; object heap; object
                 table; Smalltalk; Squeak; virtual machine",
}

%%% ====================================================================
%%% Unknown volumes
@InProceedings{Griswold:2001:MSP,
  author =       "William G. Griswold",
  title =        "Making slicing practical: the final mile",
  crossref =     "ACM:2001:ASS",
  pages =        "1--1",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Invited talk.",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p1-griswold/p1-griswold.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p1-griswold/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Reiss:2001:OB,
  author =       "Steven P. Reiss",
  title =        "An overview of {BLOOM}",
  crossref =     "ACM:2001:ASS",
  pages =        "2--5",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p2-reiss/p2-reiss.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p2-reiss/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Agrawal:2001:EEC,
  author =       "Gagan Agrawal and Liang Guo",
  title =        "Evaluating explicitly context-sensitive program
                 slicing",
  crossref =     "ACM:2001:ASS",
  pages =        "6--12",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p6-agrawal/p6-agrawal.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p6-agrawal/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Souter:2001:CDU,
  author =       "Amie L. Souter and Lori L. Pollock",
  title =        "Contextual def-use associations for object
                 aggregation",
  crossref =     "ACM:2001:ASS",
  pages =        "13--19",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p13-souter/p13-souter.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p13-souter/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Palsberg:2001:TBA,
  author =       "Jens Palsberg",
  title =        "Type-based analysis and applications",
  crossref =     "ACM:2001:ASS",
  pages =        "20--27",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Invited talk.",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p20-palsberg/p20-palsberg.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p20-palsberg/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Kadayif:2001:VVE,
  author =       "I. Kadayif and T. Chinoda and M. Kandemir and N.
                 Vijaykirsnan and M. J. Irwin and A. Sivasubramaniam",
  title =        "{vEC}: virtual energy counters",
  crossref =     "ACM:2001:ASS",
  pages =        "28--31",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p28-kadayif/p28-kadayif.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p28-kadayif/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Ancourt:2001:ARS,
  author =       "Corinne Ancourt and Thi Viet Nga Nguyen",
  title =        "Array resizing for scientific code debugging,
                 maintenance and reuse",
  crossref =     "ACM:2001:ASS",
  pages =        "32--37",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p32-ancourt/p32-ancourt.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p32-ancourt/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Braband:2001:SVD,
  author =       "Claus Braband and Anders M{\o}ller and Michael
                 Schwartzbach",
  title =        "Static validation of dynamically generated {HTML}",
  crossref =     "ACM:2001:ASS",
  pages =        "38--45",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/soft/379605/p38-braband/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Ryder:2001:CIA,
  author =       "Barbara G. Ryder and Frank Tip",
  title =        "Change impact analysis for object-oriented programs",
  crossref =     "ACM:2001:ASS",
  pages =        "46--53",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p46-ryder/p46-ryder.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p46-ryder/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Hind:2001:PAH,
  author =       "Michael Hind",
  title =        "Pointer analysis: haven't we solved this problem
                 yet?",
  crossref =     "ACM:2001:ASS",
  pages =        "54--61",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Invited talk.",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p54-hind/p54-hind.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p54-hind/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Maessen:2001:PAS,
  author =       "Jan-Willem Maessen and Vivek Sarkar and David Grove",
  title =        "Program analysis for safety guarantees in a {Java}
                 virtual machine written in {Java}",
  crossref =     "ACM:2001:ASS",
  pages =        "62--65",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p62-maessen/p62-maessen.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p62-maessen/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Mock:2001:DPS,
  author =       "Markus Mock and Manuvir Das and Craig Chambers and
                 Susan J. Eggers",
  title =        "Dynamic points-to sets: a comparison with static
                 analyses and potential applications in program
                 understanding and optimization",
  crossref =     "ACM:2001:ASS",
  pages =        "66--72",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p66-mock/p66-mock.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p66-mock/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Liang:2001:EEF,
  author =       "Donglin Liang and Maikel Pennings and Mary Jean
                 Harrold",
  title =        "Extending and evaluating flow-insensitive and
                 context-insensitive points-to analyses for {Java}",
  crossref =     "ACM:2001:ASS",
  pages =        "73--79",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p73-liang/p73-liang.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p73-liang/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Holzmann:2001:ESV,
  author =       "Gerard J. Holzmann",
  title =        "Economics of software verification",
  crossref =     "ACM:2001:ASS",
  pages =        "80--89",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Invited talk.",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p80-holzmann/p80-holzmann.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p80-holzmann/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Webber:2001:WCI,
  author =       "Adam Brooks Webber",
  title =        "What is a class invariant?",
  crossref =     "ACM:2001:ASS",
  pages =        "86--89",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p86-webber/p86-webber.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p86-webber/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Flanagan:2001:DRC,
  author =       "Cormac Flanagan and Stephen N. Freund",
  title =        "Detecting race conditions in large programs",
  crossref =     "ACM:2001:ASS",
  pages =        "90--96",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p90-flanagan/p90-flanagan.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p90-flanagan/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Ball:2001:BPS,
  author =       "Thomas Ball and Sriram K. Rajamani",
  title =        "{Bebop}: a path-sensitive interprocedural dataflow
                 engine",
  crossref =     "ACM:2001:ASS",
  pages =        "97--103",
  year =         "2001",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/soft/379605/p97-ball/p97-ball.pdf;
                 http://www.acm.org/pubs/citations/proceedings/soft/379605/p97-ball/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Anonymous:2001:AIb,
  author =       "Anonymous",
  title =        "Author Index",
  crossref =     "ACM:2001:ASS",
  pages =        "104--104",
  year =         "2001",
  bibdate =      "Sat Nov 24 08:13:55 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  acknowledgement = ack-nhfb,
}

%%% ====================================================================
%%% Cross-referenced entries must come last:
@Proceedings{ACM:2000:AIP,
  editor =       "{ACM}",
  booktitle =    "ASPLOS-IX Proceedings: The Ninth International
                 Conference on Architectural Support for Programming
                 Languages and Operating Systems, Cambridge, MA,
                 November 12--15, 2000",
  title =        "{ASPLOS}-{IX} Proceedings: The Ninth International
                 Conference on Architectural Support for Programming
                 Languages and Operating Systems, Cambridge, {MA},
                 November 12--15, 2000",
  volume =       "35(11)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 271",
  month =        nov,
  year =         "2000",
  ISBN =         "1-58113-317-0",
  ISBN-13 =      "978-1-58113-317-2",
  LCCN =         "",
  bibdate =      "Tue Jan 09 12:39:11 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  series =       j-SIGPLAN,
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:2000:COO,
  editor =       "{ACM}",
  booktitle =    "Conference on Object-oriented programming, systems,
                 languages, and applications: October 15--19, 2000,
                 Minneapolis, MN, USA",
  title =        "Conference on Object-oriented programming, systems,
                 languages, and applications: October 15--19, 2000,
                 Minneapolis, {MN}, {USA}",
  volume =       "35(10)",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "x + 402",
  year =         "2000",
  CODEN =        "SINODQ",
  ISBN =         "0-201-48565-6",
  ISBN-13 =      "978-0-201-48565-3",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  LCCN =         "????",
  bibdate =      "Tue Nov 7 16:57:37 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/oops/353171/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  series =       ser-SIGPLAN,
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:2000:PAS,
  editor =       "{ACM}",
  booktitle =    "Proceedings of the ACM SIGPLAN '00 conference on
                 Programming language design and implementation: June
                 18--21, 2000, Vancouver, BC, Canada",
  title =        "Proceedings of the {ACM} {SIGPLAN} '00 conference on
                 Programming language design and implementation: June
                 18--21, 2000, Vancouver, {BC}, Canada",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "??--??",
  year =         "2000",
  CODEN =        "SINODQ",
  ISBN =         "1-58113-199-2",
  ISBN-13 =      "978-1-58113-199-4",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  LCCN =         "????",
  bibdate =      "Tue Nov 7 17:22:50 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pldi/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "ACM order number 548000.",
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:2000:PFA,
  editor =       "{ACM}",
  booktitle =    "Proceedings of the fifth ACM SIGPLAN international
                 conference on Functional programming: September 18--21,
                 2000, Montr{\'e}al, Canada",
  title =        "Proceedings of the fifth {ACM} {SIGPLAN} international
                 conference on Functional programming: September 18--21,
                 2000, Montr{\'e}al, Canada",
  volume =       "35(9)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 292",
  year =         "2000",
  CODEN =        "SINODQ",
  ISBN =         "1-58113-202-6",
  ISBN-13 =      "978-1-58113-202-1",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  LCCN =         "????",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/fp/351240/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "ACM order number 565000.",
  series =       ser-SIGPLAN,
  acknowledgement = ack-nhfb,
}

@Proceedings{Sreedhar:2000:PAS,
  editor =       "Vugranam C. Sreedhar and Jong-Deok Choi",
  booktitle =    "Proceedings of the {ACM SIGPLAN Workshop on {\em
                 Dyn\/}amic and {\em A\/}daptive Co{\em m\/}pilation and
                 {\em O\/}ptimization (Dynamo '00). January 18, 2000,
                 Boston, Massachusetts}",
  title =        "Proceedings of the {ACM SIGPLAN Workshop on {\em
                 Dyn\/}amic and {\em A\/}daptive Co{\em m\/}pilation and
                 {\em O\/}ptimization (Dynamo '00). January 18, 2000,
                 Boston, Massachusetts}",
  volume =       "35(7)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "81",
  year =         "2000",
  ISBN =         "1-58113-241-7",
  ISBN-13 =      "978-1-58113-241-0",
  LCCN =         "",
  bibdate =      "Tue Nov 07 18:22:56 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "ACM order number 549000.",
  series =       ser-SIGPLAN,
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:2001:ASS,
  editor =       "{ACM}",
  booktitle =    "ACM SIGPLAN--SIGSOFT workshop on Program analysis for
                 software tools and engineering: June 18--19, 2001,
                 Snowbird, Utah, USA: PASTE'01",
  title =        "{ACM} {SIGPLAN}--{SIGSOFT} workshop on Program
                 analysis for software tools and engineering: June
                 18--19, 2001, Snowbird, Utah, {USA}: {PASTE}'01",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 104",
  year =         "2001",
  ISBN =         "1-58113-413-4",
  ISBN-13 =      "978-1-58113-413-1",
  LCCN =         "????",
  bibdate =      "Thu Aug 30 08:01:24 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/paste/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "Supplement to ACM SIGPLAN Notices.",
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:2001:PAS,
  editor =       "{ACM}",
  booktitle =    "POPL 2001: The 28th ACM SIGPLAN-SIGACT Symposium on
                 Principles of Programming Languages: January 17--19,
                 2001, The Royal Society, London, United Kingdom",
  title =        "{POPL} 2001: The 28th {ACM} {SIGPLAN}-{SIGACT}
                 Symposium on Principles of Programming Languages:
                 January 17--19, 2001, The Royal Society, London, United
                 Kingdom",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 304",
  year =         "2001",
  ISBN =         "1-58113-336-7",
  ISBN-13 =      "978-1-58113-336-3",
  LCCN =         "????",
  bibdate =      "Tue Apr 17 18:26:27 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "ACM order number 549011.",
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:2001:PEA,
  editor =       "{ACM}",
  booktitle =    "Proceedings of the Eighth ACM SIGPLAN Symposium on
                 Principles and Practices of Parallel Programming: June
                 18--20, 2001, Snowbird, Utah, USA (PPoPP'01)",
  title =        "Proceedings of the Eighth {ACM} {SIGPLAN} Symposium on
                 Principles and Practices of Parallel Programming: June
                 18--20, 2001, Snowbird, Utah, {USA} ({PP}o{PP}'01)",
  volume =       "36(7)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "vii + 144",
  month =        jul,
  year =         "2001",
  ISBN =         "1-58113-346-4",
  ISBN-13 =      "978-1-58113-346-2",
  LCCN =         "????",
  bibdate =      "Thu Aug 30 08:07:37 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/ppopp/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  series =       j-SIGPLAN,
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:2002:PAS,
  editor =       "{ACM}",
  booktitle =    "Proceedings of the 2002 ACM SIGPLAN Workshop Partial
                 Evaluation and Semantics-Based Program Manipulation
                 (PEPM'02)",
  title =        "Proceedings of the 2002 {ACM} {SIGPLAN} Workshop
                 Partial Evaluation and Semantics-Based Program
                 Manipulation ({PEPM}'02)",
  volume =       "37(3)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "iv + 143",
  month =        mar,
  year =         "2002",
  ISBN =         "1-58113-455-X",
  ISBN-13 =      "978-1-58113-455-1",
  LCCN =         "????",
  bibdate =      "Tue Apr 09 14:42:08 2002",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/pepm/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  note =         "ACM order number 551021.",
  series =       j-SIGPLAN,
  acknowledgement = ack-nhfb,
}

@Proceedings{McKinley:2003:YAS,
  editor =       "Kathryn S. McKinley",
  booktitle =    "20 Years of the {ACM\slash SIGPLAN Conference on
                 Programming Language Design and Implementation}
                 (1979--1999): {A} Selection",
  title =        "20 Years of the {ACM\slash SIGPLAN Conference on
                 Programming Language Design and Implementation}
                 (1979--1999): {A} Selection",
  volume =       "39(4)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  year =         "2003",
  ISBN =         "1-58113-623-4",
  ISBN-13 =      "978-1-58113-623-4",
  LCCN =         "????",
  bibdate =      "Sat Nov 29 11:38:05 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib",
  series =       j-SIGPLAN,
  acknowledgement = ack-nhfb,
}