@Preamble{
"\input bibnames.sty " #
"\input path.sty " #
"\def \TM {${}^{\sc TM}$} " #
"\hyphenation{ }"
}
@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/|"}
@String{j-SIGPLAN = "ACM SIG{\-}PLAN Notices"}
@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"}
@String{ser-SIGPLAN = "ACM SIG{\-}PLAN Notices"}
@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)",
}
@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",
}
@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",
}
@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",
}
@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",
}
@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",
}
@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",
}
@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",
}
@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>",
}
@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",
}
@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,
}
@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,
}