@Preamble{"\input bibnames.sty" #
"\def \TM {${}^{\sc TM}$}" #
"\ifx \undefined \bioname \def \bioname #1{{{\em #1\/}}} \fi" #
"\ifx \undefined \Dbar \def \Dbar {\leavevmode\raise0.2ex\hbox{--}\kern-0.5emD} \fi" #
"\ifx \undefined \dbar \def \dbar {\leavevmode\raise0.2ex\hbox{--}\kern-0.5emd} \fi"
}
@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|http://www.math.utah.edu/~beebe/|"}
@String{j-PACMPL = "Proceedings of the ACM on Programming
Languages (PACMPL)"}
@Article{Wadler:2017:EM,
author = "Philip Wadler",
title = "Editorial message",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "1:1--1:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3139957",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "1e",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{St-Amour:2017:HRS,
author = "Vincent St-Amour and Daniel Feltey and Spencer P.
Florence and Shu-Hung You and Robert Bruce Findler",
title = "\bioname{Herbarium Racketensis}: a stroll through the
woods (functional pearl)",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "1:1--1:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110245",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "1",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Perez:2017:TDF,
author = "Ivan Perez and Henrik Nilsson",
title = "Testing and debugging functional reactive
programming",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "2:1--2:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110246",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "2",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Breitner:2017:LSS,
author = "Joachim Breitner and Chris Smith",
title = "Lock-step simulation is child's play (experience
report)",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "3:1--3:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110247",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "3",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Canou:2017:SFP,
author = "Benjamin Canou and Roberto {Di Cosmo} and Gr{\'e}goire
Henry",
title = "Scaling up functional programming education: under the
hood of the {OCaml} {MOOC}",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "4:1--4:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110248",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Spivey:2017:FCP,
author = "Michael Spivey",
title = "Faster coroutine pipelines",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "5:1--5:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110249",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "5",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bernardy:2017:PGP,
author = "Jean-Philippe Bernardy",
title = "A pretty but not greedy printer (functional pearl)",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "6:1--6:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110250",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "6",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Elliott:2017:GFP,
author = "Conal Elliott",
title = "Generic functional parallel algorithms: scan and
{FFT}",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "7:1--7:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110251",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "7",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Byrd:2017:UAS,
author = "William E. Byrd and Michael Ballantyne and Gregory
Rosenblatt and Matthew Might",
title = "A unified approach to solving seven programming
problems (functional pearl)",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "8:1--8:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110252",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "8",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Auerbach:2017:PQC,
author = "Joshua S. Auerbach and Martin Hirzel and Louis Mandel
and Avraham Shinnar and J{\'e}r{\^o}me Sim{\'e}on",
title = "Prototyping a query compiler using {Coq} (experience
report)",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "9:1--9:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110253",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "9",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Winograd-Cort:2017:FAD,
author = "Daniel Winograd-Cort and Andreas Haeberlen and Aaron
Roth and Benjamin C. Pierce",
title = "A framework for adaptive differential privacy",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "10:1--10:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110254",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "10",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Narayanan:2017:SCA,
author = "Praveen Narayanan and Chung-chieh Shan",
title = "Symbolic conditioning of arrays in probabilistic
programs",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "11:1--11:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110255",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "11",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Darais:2017:ADI,
author = "David Darais and Nicholas Labich and Ph{\'u}c C.
Nguyen and David {Van Horn}",
title = "Abstracting definitional interpreters (functional
pearl)",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "12:1--12:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110256",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "12",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Forster:2017:EPU,
author = "Yannick Forster and Ohad Kammar and Sam Lindley and
Matija Pretnar",
title = "On the expressive power of user-defined effects:
effect handlers, monadic reflection, delimited
control",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "13:1--13:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110257",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "13",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ricciotti:2017:IFP,
author = "Wilmer Ricciotti and Jan Stolarek and Roly Perera and
James Cheney",
title = "Imperative functional programs that explain their
work",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "14:1--14:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110258",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "14",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Midtgaard:2017:EDQ,
author = "Jan Midtgaard and Mathias Nygaard Justesen and Patrick
Kasting and Flemming Nielson and Hanne Riis Nielson",
title = "Effect-driven {QuickChecking} of compilers",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "15:1--15:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110259",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "15",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Puente:2017:PMR,
author = "Juan Pedro Bol{\'\i}var Puente",
title = "Persistence for the masses: {RRB}-vectors in a systems
language",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "16:1--16:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110260",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "16",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Protzenko:2017:VLL,
author = "Jonathan Protzenko and Jean-Karim Zinzindohou{\'e} and
Aseem Rastogi and Tahina Ramananandro and Peng Wang and
Santiago Zanella-B{\'e}guelin and Antoine
Delignat-Lavaud and Catalin Hritcu and Karthikeyan
Bhargavan and C{\'e}dric Fournet and Nikhil Swamy",
title = "Verified low-level programming embedded in {F*}",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "17:1--17:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110261",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "17",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Owens:2017:VEF,
author = "Scott Owens and Michael Norrish and Ramana Kumar and
Magnus O. Myreen and Yong Kiam Tan",
title = "Verifying efficient function calls in {CakeML}",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "18:1--18:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110262",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "18",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mainland:2017:BLT,
author = "Geoffrey Mainland",
title = "Better living through operational semantics: an
optimizing compiler for radio protocols",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "19:1--19:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110263",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "19",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Balabonski:2017:FSC,
author = "Thibaut Balabonski and Pablo Barenbaum and Eduardo
Bonelli and Delia Kesner",
title = "Foundations of strong call by need",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "20:1--20:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110264",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "20",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Aguirre:2017:RLH,
author = "Alejandro Aguirre and Gilles Barthe and Marco Gaboardi
and Deepak Garg and Pierre-Yves Strub",
title = "A relational logic for higher-order programs",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "21:1--21:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110265",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "21",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hamana:2017:HPY,
author = "Makoto Hamana",
title = "How to prove your calculus is decidable: practical
applications of second-order algebraic theories and
computation",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "22:1--22:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110266",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "22",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Davis:2017:NBC,
author = "Milo Davis and William Meehan and Olin Shivers",
title = "No-brainer {CPS} conversion (functional pearl)",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "23:1--23:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110267",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "23",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Choi:2017:KPH,
author = "Joonwon Choi and Muralidaran Vijayaraghavan and
Benjamin Sherman and Adam Chlipala and Arvind",
title = "{Kami}: a platform for high-level parametric hardware
specification and its modular verification",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "24:1--24:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110268",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "24",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Weitz:2017:SLB,
author = "Konstantin Weitz and Steven Lyubomirsky and Stefan
Heule and Emina Torlak and Michael D. Ernst and Zachary
Tatlock",
title = "{SpaceSearch}: a library for building and verifying
solver-aided tools",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "25:1--25:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110269",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "25",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cosman:2017:LRT,
author = "Benjamin Cosman and Ranjit Jhala",
title = "Local refinement typing",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "26:1--26:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110270",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "26",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Elliott:2017:CC,
author = "Conal Elliott",
title = "Compiling to categories",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "27:1--27:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110271",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "27",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pottier:2017:VU,
author = "Fran{\c{c}}ois Pottier",
title = "Visitors unchained",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "28:1--28:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110272",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "28",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yallop:2017:SGP,
author = "Jeremy Yallop",
title = "Staged generic programming",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "29:1--29:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110273",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "29",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Andersen:2017:SLM,
author = "Leif Andersen and Stephen Chang and Matthias
Felleisen",
title = "Super 8 languages for making movies (functional
pearl)",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "30:1--30:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110274",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "30",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Weirich:2017:SDT,
author = "Stephanie Weirich and Antoine Voizard and Pedro
Henrique Azevedo de Amorim and Richard A. Eisenberg",
title = "A specification for dependent types in {Haskell}",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "31:1--31:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110275",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "31",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Nuyts:2017:PQD,
author = "Andreas Nuyts and Andrea Vezzosi and Dominique
Devriese",
title = "Parametric quantifiers for dependent type theory",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "32:1--32:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110276",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "32",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Abel:2017:NES,
author = "Andreas Abel and Andrea Vezzosi and Theo
Winterhalter",
title = "Normalization by evaluation for sized dependent
types",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "33:1--33:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110277",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "33",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ebner:2017:MFF,
author = "Gabriel Ebner and Sebastian Ullrich and Jared Roesch
and Jeremy Avigad and Leonardo de Moura",
title = "A metaprogramming framework for formal verification",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "34:1--34:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110278",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "34",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Melgratti:2017:CCH,
author = "Hern{\'a}n Melgratti and Luca Padovani",
title = "Chaperone contracts for higher-order sessions",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "35:1--35:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110279",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "35",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Waye:2017:WHO,
author = "Lucas Waye and Stephen Chong and Christos Dimoulas",
title = "{Whip}: higher-order contracts for modern services",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "36:1--36:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110280",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "36",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Balzer:2017:MSS,
author = "Stephanie Balzer and Frank Pfenning",
title = "Manifest sharing with session types",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "37:1--37:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110281",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "37",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Igarashi:2017:GST,
author = "Atsushi Igarashi and Peter Thiemann and Vasco T.
Vasconcelos and Philip Wadler",
title = "Gradual session types",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "38:1--38:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110282",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "38",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ahmed:2017:TFF,
author = "Amal Ahmed and Dustin Jamner and Jeremy G. Siek and
Philip Wadler",
title = "Theorems for free for free: parametricity, with and
without types",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "39:1--39:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110283",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "39",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Igarashi:2017:PGT,
author = "Yuu Igarashi and Taro Sekiyama and Atsushi Igarashi",
title = "On polymorphic gradual typing",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "40:1--40:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110284",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "40",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Castagna:2017:GTU,
author = "Giuseppe Castagna and Victor Lanvin",
title = "Gradual typing with union and intersection types",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "41:1--41:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110285",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "41",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Morris:2017:CTF,
author = "J. Garrett Morris and Richard A. Eisenberg",
title = "Constrained type families",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "42:1--42:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110286",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "42",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Avanzini:2017:AST,
author = "Martin Avanzini and Ugo {Dal Lago}",
title = "Automating sized-type inference for complexity
analysis",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "43:1--43:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110287",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "43",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pombrio:2017:IST,
author = "Justin Pombrio and Shriram Krishnamurthi and Mitchell
Wand",
title = "Inferring scope through syntactic sugar",
journal = j-PACMPL,
volume = "1",
number = "ICFP",
pages = "44:1--44:??",
month = sep,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3110288",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "44",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{ElHajj:2017:SOS,
author = "Izzat {El Hajj} and Thomas B. Jablin and Dejan
Milojicic and Wen-mei Hwu",
title = "{SAVI} objects: sharing and virtuality incorporated",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "45:1--45:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133869",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "45",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Rapoport:2017:SSP,
author = "Marianna Rapoport and Ifaz Kabir and Paul He and
Ondrej Lhot{\'a}k",
title = "A simple soundness proof for dependent object types",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "46:1--46:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133870",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "46",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yang:2017:UTS,
author = "Yanpeng Yang and Bruno C. d. S. Oliveira",
title = "Unifying typing and subtyping",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "47:1--47:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133871",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "47",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chaudhuri:2017:FPT,
author = "Avik Chaudhuri and Panagiotis Vekris and Sam Goldman
and Marshall Roch and Gabriel Levi",
title = "Fast and precise type checking for {JavaScript}",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "48:1--48:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133872",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "48",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Liu:2017:VDJ,
author = "Lun Liu and Todd Millstein and Madanlal Musuvathi",
title = "A volatile-by-default {JVM} for server applications",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "49:1--49:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133873",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "49",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Poesia:2017:SPC,
author = "Gabriel Poesia and Breno Guimar{\~a}es and
Fabr{\'\i}cio Ferracioli and Fernando Magno Quint{\~a}o
Pereira",
title = "Static placement of computation on heterogeneous
devices",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "50:1--50:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133874",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "50",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chasins:2017:SBR,
author = "Sarah Chasins and Rastislav Bodik",
title = "Skip blocks: reusing execution history to accelerate
web scripts",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "51:1--51:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133875",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "51",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barrett:2017:VMW,
author = "Edd Barrett and Carl Friedrich Bolz-Tereick and
Rebecca Killick and Sarah Mount and Laurence Tratt",
title = "Virtual machine warmup blows hot and cold",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "52:1--52:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133876",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
acknowledgement = ack-nhfb,
articleno = "52",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ugawa:2017:MCC,
author = "Tomoharu Ugawa and Tatsuya Abe and Toshiyuki Maeda",
title = "Model checking copy phases of concurrent copying
garbage collection with various memory models",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "53:1--53:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133877",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "53",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bauman:2017:SGT,
author = "Spenser Bauman and Carl Friedrich Bolz-Tereick and
Jeremy Siek and Sam Tobin-Hochstadt",
title = "Sound gradual typing: only mostly dead",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "54:1--54:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133878",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "54",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Richards:2017:VAK,
author = "Gregor Richards and Ellen Arteca and Alexi Turcotte",
title = "The {VM} already knew that: leveraging compile-time
knowledge to optimize gradual typing",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "55:1--55:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133879",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
acknowledgement = ack-nhfb,
articleno = "55",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Muehlboeck:2017:SGT,
author = "Fabian Muehlboeck and Ross Tate",
title = "Sound gradual typing is nominally alive and well",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "56:1--56:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133880",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "56",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhang:2017:EIR,
author = "Xin Zhang and Radu Grigore and Xujie Si and Mayur
Naik",
title = "Effective interactive resolution of static analysis
alarms",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "57:1--57:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133881",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "57",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yuan:2017:ASC,
author = "Binhang Yuan and Vijayaraghavan Murali and Christopher
Jermaine",
title = "Abridging source code",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "58:1--58:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133882",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "58",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cavalcanti:2017:EIS,
author = "Guilherme Cavalcanti and Paulo Borba and Paola
Accioly",
title = "Evaluating and improving semistructured merge",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "59:1--59:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133883",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "59",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Seidel:2017:LBL,
author = "Eric L. Seidel and Huma Sibghat and Kamalika Chaudhuri
and Westley Weimer and Ranjit Jhala",
title = "Learning to blame: localizing novice type errors with
data-driven diagnosis",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "60:1--60:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3138818",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "60",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Srinivasan:2017:MAM,
author = "Venkatesh Srinivasan and Ara Vartanian and Thomas
Reps",
title = "Model-assisted machine-code synthesis",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "61:1--61:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133885",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "61",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2017:SDC,
author = "Xinyu Wang and Isil Dillig and Rishabh Singh",
title = "Synthesis of data completion scripts using finite tree
automata",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "62:1--62:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133886",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "62",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yaghmazadeh:2017:SQS,
author = "Navid Yaghmazadeh and Yuepeng Wang and Isil Dillig and
Thomas Dillig",
title = "{SQLizer}: query synthesis from natural language",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "63:1--63:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133887",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "63",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Santolucito:2017:SCF,
author = "Mark Santolucito and Ennan Zhai and Rahul Dhodapkar
and Aaron Shim and Ruzica Piskac",
title = "Synthesizing configuration file specifications with
association rule learning",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "64:1--64:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133888",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "64",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Qiu:2017:NSP,
author = "Xiaokang Qiu and Armando Solar-Lezama",
title = "Natural synthesis of provably-correct data-structure
manipulations",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "65:1--65:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133889",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "65",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Adamsen:2017:PIR,
author = "Christoffer Quist Adamsen and Anders M{\o}ller and
Frank Tip",
title = "Practical initialization race detection for
{JavaScript} web applications",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "66:1--66:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133890",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "66",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cohen:2017:ELN,
author = "Nachshon Cohen and Michal Friedman and James R.
Larus",
title = "Efficient logging in non-volatile memory by exploiting
coherency protocols",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "67:1--67:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133891",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "67",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Grech:2017:HDL,
author = "Neville Grech and George Fourtounis and Adrian
Francalanza and Yannis Smaragdakis",
title = "Heaps don't lie: countering unsoundness with heap
snapshots",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "68:1--68:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133892",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "68",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wood:2017:IBD,
author = "Benjamin P. Wood and Man Cao and Michael D. Bond and
Dan Grossman",
title = "Instrumentation bias for dynamic data race detection",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "69:1--69:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133893",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "69",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhang:2017:FUI,
author = "Yizhou Zhang and Andrew C. Myers",
title = "{Familia}: unifying interfaces, type classes, and
family polymorphism",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "70:1--70:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133894",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "70",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sampson:2017:SSH,
author = "Adrian Sampson and Kathryn S. McKinley and Todd
Mytkowicz",
title = "Static stages for heterogeneous programming",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "71:1--71:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133895",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "71",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Clebsch:2017:OGT,
author = "Sylvan Clebsch and Juliana Franco and Sophia
Drossopoulou and Albert Mingkun Yang and Tobias
Wrigstad and Jan Vitek",
title = "{Orca}: {GC} and type system co-design for actor
languages",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "72:1--72:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133896",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "72",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Scott:2017:MCD,
author = "Ryan G. Scott and Omar S. Navarro Leija and Joseph
Devietti and Ryan R. Newton",
title = "Monadic composition for deterministic, parallel batch
processing",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "73:1--73:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133897",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "73",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ding:2017:GGL,
author = "Yufei Ding and Xipeng Shen",
title = "{GLORE}: generalized loop redundancy elimination upon
{LER}-notation",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "74:1--74:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133898",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "74",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Orchard:2017:VSP,
author = "Dominic Orchard and Mistral Contrastin and Matthew
Danish and Andrew Rice",
title = "Verifying spatial properties of array computations",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "75:1--75:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133899",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "75",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sakka:2017:TFA,
author = "Laith Sakka and Kirshanthan Sundararajah and Milind
Kulkarni",
title = "{TreeFuser}: a framework for analyzing and fusing
general recursive tree traversals",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "76:1--76:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133900",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "76",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kjolstad:2017:TAC,
author = "Fredrik Kjolstad and Shoaib Kamil and Stephen Chou and
David Lugato and Saman Amarasinghe",
title = "The tensor algebra compiler",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "77:1--77:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133901",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "77",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Papadakis:2017:SPS,
author = "Manolis Papadakis and Gilbert Louis Bernstein and
Rahul Sharma and Alex Aiken and Pat Hanrahan",
title = "{Seam}: provably safe local edits on graphs",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "78:1--78:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133902",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "78",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2017:TFL,
author = "Peng Wang and Di Wang and Adam Chlipala",
title = "{TiML}: a functional language for practical complexity
analysis with invariants",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "79:1--79:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133903",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "79",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Albarghouthi:2017:FPV,
author = "Aws Albarghouthi and Loris D'Antoni and Samuel Drews
and Aditya V. Nori",
title = "{FairSquare}: probabilistic verification of program
fairness",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "80:1--80:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133904",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "80",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ancona:2017:RDC,
author = "Davide Ancona and Francesco Dagnino and Elena Zucca",
title = "Reasoning on divergent computations with coaxioms",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "81:1--81:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133905",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "81",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Adams:2017:RGT,
author = "Michael D. Adams and Matthew Might",
title = "Restricting grammars with tree automata",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "82:1--82:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133906",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "82",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Khairunnesa:2017:EIB,
author = "Samantha Syeda Khairunnesa and Hoan Anh Nguyen and
Tien N. Nguyen and Hridesh Rajan",
title = "Exploiting implicit beliefs to resolve sparse usage
problem in usage-based specification mining",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "83:1--83:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133907",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "83",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lopes:2017:DMC,
author = "Cristina V. Lopes and Petr Maj and Pedro Martins and
Vaibhav Saini and Di Yang and Jakub Zitny and Hitesh
Sajnani and Jan Vitek",
title = "{D{\'e}j{\`a}Vu}: a map of code duplicates on
{GitHub}",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "84:1--84:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133908",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "84",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mazinanian:2017:UUL,
author = "Davood Mazinanian and Ameya Ketkar and Nikolaos
Tsantalis and Danny Dig",
title = "Understanding the use of lambda expressions in
{Java}",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "85:1--85:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133909",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "85",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Madsen:2017:MRA,
author = "Magnus Madsen and Ondrej Lhot{\'a}k and Frank Tip",
title = "A model for reasoning about {JavaScript} promises",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "86:1--86:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133910",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "86",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mansky:2017:VMS,
author = "William Mansky and Andrew W. Appel and Aleksey
Nogin",
title = "A verified messaging system",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "87:1--87:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133911",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "87",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Reid:2017:WGG,
author = "Alastair Reid",
title = "Who guards the guards? {Formal} validation of the {ARM
v8-m} architecture specification",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "88:1--88:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133912",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "88",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Swasey:2017:RCV,
author = "David Swasey and Deepak Garg and Derek Dreyer",
title = "Robust and compositional verification of object
capability patterns",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "89:1--89:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133913",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "89",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kristensen:2017:TTS,
author = "Erik Krogh Kristensen and Anders M{\o}ller",
title = "Type test scripts for {TypeScript} testing",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "90:1--90:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133914",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "90",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ringer:2017:SAL,
author = "Talia Ringer and Dan Grossman and Daniel
Schwartz-Narbonne and Serdar Tasiran",
title = "A solver-aided language for test input generation",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "91:1--91:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133915",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "91",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Li:2017:TPT,
author = "Xia Li and Lingming Zhang",
title = "Transforming programs and tests in tandem for fault
localization",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "92:1--92:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133916",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "92",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Donaldson:2017:ATG,
author = "Alastair F. Donaldson and Hugues Evrard and Andrei
Lascu and Paul Thomson",
title = "Automated testing of graphics shader compilers",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "93:1--93:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133917",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "93",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Celik:2017:BET,
author = "Ahmet Celik and Sreepathi Pai and Sarfraz Khurshid and
Milos Gligoric",
title = "Bounded exhaustive test-input generation on {GPUs}",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "94:1--94:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133918",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/pvm.bib",
acknowledgement = ack-nhfb,
articleno = "94",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Parkinson:2017:PSN,
author = "Matthew Parkinson and Dimitrios Vytiniotis and Kapil
Vaswani and Manuel Costa and Pantazis Deligiannis and
Dylan McDermott and Aaron Blankstein and Jonathan
Balkind",
title = "{Project snowflake}: non-blocking safe manual memory
management in {.NET}",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "95:1--95:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3141879",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "95",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Maeng:2017:AIE,
author = "Kiwan Maeng and Alexei Colin and Brandon Lucia",
title = "{Alpaca}: intermittent execution without checkpoints",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "96:1--96:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133920",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "96",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhai:2017:ALP,
author = "Ennan Zhai and Ruzica Piskac and Ronghui Gu and Xun
Lao and Xi Wang",
title = "An auditing language for preventing correlated
failures in the cloud",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "97:1--97:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133921",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "97",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kaminski:2017:RAC,
author = "Ted Kaminski and Lucas Kramer and Travis Carlson and
Eric {Van Wyk}",
title = "Reliable and automatic composition of language
extensions to {C}: the {ableC} extensible language
framework",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "98:1--98:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3138224",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "98",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Spath:2017:IEP,
author = "Johannes Sp{\"a}th and Karim Ali and Eric Bodden",
title = "{IDEal}: efficient and precise alias-aware dataflow
analysis",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "99:1--99:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133923",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "99",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jeong:2017:DDC,
author = "Sehun Jeong and Minseok Jeon and Sungdeok Cha and
Hakjoo Oh",
title = "Data-driven context-sensitivity for points-to
analysis",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "100:1--100:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133924",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "100",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chae:2017:AGF,
author = "Kwonsoo Chae and Hakjoo Oh and Kihong Heo and Hongseok
Yang",
title = "Automatically generating features for learning program
analysis heuristics for {C}-like languages",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "101:1--101:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133925",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "101",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Grech:2017:PTU,
author = "Neville Grech and Yannis Smaragdakis",
title = "{P/Taint}: unified points-to and taint analysis",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "102:1--102:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133926",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "102",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cogumbreiro:2017:DAP,
author = "Tiago Cogumbreiro and Rishi Surendran and Francisco
Martins and Vivek Sarkar and Vasco T. Vasconcelos and
Max Grossman",
title = "Deadlock avoidance in parallel programs with futures:
why parallel tasks should not wait for strangers",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "103:1--103:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3143359",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "103",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Rice:2017:DAS,
author = "Andrew Rice and Edward Aftandilian and Ciera Jaspan
and Emily Johnston and Michael Pradel and Yulissa
Arroyo-Paredes",
title = "Detecting argument selection defects",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "104:1--104:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133928",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "104",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wu:2017:HTE,
author = "Baijun Wu and Sheng Chen",
title = "How type errors were fixed and what students did?",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "105:1--105:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133929",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "105",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wu:2017:LUF,
author = "Baijun Wu and John Peter {Campora III} and Sheng
Chen",
title = "Learning user friendly type-error messages",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "106:1--106:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133930",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "106",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bernstein:2017:GDA,
author = "Philip A. Bernstein and Sebastian Burckhardt and
Sergey Bykov and Natacha Crooks and Jose M. Faleiro and
Gabriel Kliot and Alok Kumbhare and Muntasir Raihan
Rahman and Vivek Shah and Adriana Szekeres and Jorgen
Thelin",
title = "Geo-distribution of actor-based services",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "107:1--107:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133931",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "107",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Padon:2017:PME,
author = "Oded Padon and Giuliano Losa and Mooly Sagiv and
Sharon Shoham",
title = "{Paxos} made {EPR}: decidable reasoning about
distributed protocols",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "108:1--108:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3140568",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/bitcoin.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "108",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gomes:2017:VSE,
author = "Victor B. F. Gomes and Martin Kleppmann and Dominic P.
Mulligan and Alastair R. Beresford",
title = "Verifying strong eventual consistency in distributed
systems",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "109:1--109:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133933",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "109",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bakst:2017:VDP,
author = "Alexander Bakst and Klaus v. Gleissenthall and Rami
G{\"o}khan Kici and Ranjit Jhala",
title = "Verifying distributed programs via canonical
sequentialization",
journal = j-PACMPL,
volume = "1",
number = "OOPSLA",
pages = "110:1--110:??",
month = oct,
year = "2017",
CODEN = "????",
DOI = "https://doi.org/10.1145/3133934",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "110",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Miltner:2018:SBL,
author = "Anders Miltner and Kathleen Fisher and Benjamin C.
Pierce and David Walker and Steve Zdancewic",
title = "Synthesizing bijective lenses",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "1:1--1:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158089",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "1",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Inala:2018:WIW,
author = "Jeevana Priya Inala and Rishabh Singh",
title = "{WebRelate}: integrating web data with spreadsheets
using examples",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "2:1--2:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158090",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "2",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chen:2018:WDA,
author = "Taolue Chen and Yan Chen and Matthew Hague and Anthony
W. Lin and Zhilin Wu",
title = "What is decidable about string constraints with the
{ReplaceAll} function",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "3:1--3:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158091",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "3",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Holk:2018:SCC,
author = "Luk{\'a}{\v{s}} Holk and Petr Jank{\r{u}} and Anthony
W. Lin and Philipp R{\"u}mmer and Tom{\'a}{\v{s}}
Vojnar",
title = "String constraints with concatenation and transducers
solved efficiently",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "4:1--4:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158092",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bernardy:2018:LHP,
author = "Jean-Philippe Bernardy and Mathieu Boespflug and Ryan
R. Newton and Simon Peyton Jones and Arnaud Spiwack",
title = "{Linear Haskell}: practical linearity in a
higher-order polymorphic language",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "5:1--5:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158093",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "5",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mazza:2018:PAF,
author = "Damiano Mazza and Luc Pellissier and Pierre Vial",
title = "Polyadic approximations, fibrations and intersection
types",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "6:1--6:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158094",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "6",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ahman:2018:HFA,
author = "Danel Ahman",
title = "Handling fibred algebraic effects",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "7:1--7:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158095",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "7",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Biernacki:2018:HCR,
author = "Dariusz Biernacki and Maciej Pir{\'o}g and Piotr
Polesiuk and Filip Sieczkowski",
title = "Handle with care: relational interpretation of
algebraic effects and handlers",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "8:1--8:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158096",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "8",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ta:2018:ALS,
author = "Quang-Trung Ta and Ton Chanh Le and Siau-Cheng Khoo
and Wei-Ngan Chin",
title = "Automated lemma synthesis in symbolic-heap separation
logic",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "9:1--9:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158097",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "9",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Loding:2018:FNP,
author = "Christof L{\"o}ding and P. Madhusudan and Lucas
Pe{\~n}a",
title = "Foundations for natural proofs and quantifier
instantiation",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "10:1--10:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158098",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "10",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Burn:2018:HOC,
author = "Toby Cathcart Burn and C.-H. Luke Ong and Steven J.
Ramsay",
title = "Higher-order constrained Horn clauses for
verification",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "11:1--11:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158099",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "11",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Unno:2018:RCR,
author = "Hiroshi Unno and Yuki Satake and Tachio Terauchi",
title = "Relatively complete refinement type system for
verification of higher-order non-deterministic
programs",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "12:1--12:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158100",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "12",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Parreaux:2018:UAS,
author = "Lionel Parreaux and Antoine Voizard and Amir Shaikhha
and Christoph E. Koch",
title = "Unifying analytic and statically-typed quasiquotes",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "13:1--13:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158101",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "13",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Brown:2018:JOP,
author = "Matt Brown and Jens Palsberg",
title = "{Jones}-optimal partial evaluation by
specialization-safe normalization",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "14:1--14:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158102",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "14",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Campora:2018:MGT,
author = "John Peter Campora and Sheng Chen and Martin Erwig and
Eric Walkingshaw",
title = "Migrating gradual types",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "15:1--15:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158103",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "15",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Poulsen:2018:ITD,
author = "Casper Bach Poulsen and Arjen Rouvoet and Andrew
Tolmach and Robbert Krebbers and Eelco Visser",
title = "Intrinsically-typed definitional interpreters for
imperative languages",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "16:1--16:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158104",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "16",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kokologiannakis:2018:ESM,
author = "Michalis Kokologiannakis and Ori Lahav and
Konstantinos Sagonas and Viktor Vafeiadis",
title = "Effective stateless model checking for {C/C++}
concurrency",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "17:1--17:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158105",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "17",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Dongol:2018:TRM,
author = "Brijesh Dongol and Radha Jagadeesan and James Riely",
title = "Transactions in relaxed memory architectures",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "18:1--18:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158106",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "18",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pulte:2018:SAC,
author = "Christopher Pulte and Shaked Flur and Will Deacon and
Jon French and Susmit Sarkar and Peter Sewell",
title = "Simplifying {ARM} concurrency: multicopy-atomic
axiomatic and operational models for {ARMv8}",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "19:1--19:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158107",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "19",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Liang:2018:PCO,
author = "Hongjin Liang and Xinyu Feng",
title = "Progress of concurrent objects with partial methods",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "20:1--20:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158108",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "20",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Williams:2018:PAO,
author = "Thomas Williams and Didier R{\'e}my",
title = "A principled approach to ornamentation in {ML}",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "21:1--21:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158109",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "21",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bowman:2018:TPC,
author = "William J. Bowman and Youyou Cong and Nick Rioux and
Amal Ahmed",
title = "Type-preserving {CPS} translation of {$ \Sigma $} and
{$ \Pi $} types is {\em not\/} not possible",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "22:1--22:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158110",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "22",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Abel:2018:DCT,
author = "Andreas Abel and Joakim {\"O}hman and Andrea
Vezzosi",
title = "Decidability of conversion for type theory in type
theory",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "23:1--23:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158111",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "23",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kuncar:2018:SCD,
author = "Ond{\v{r}}ej Kun{\v{c}}ar and Andrei Popescu",
title = "Safety and conservativity of definitions in {HOL} and
{Isabelle\slash HOL}",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "24:1--24:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158112",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "24",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Emmi:2018:SCT,
author = "Michael Emmi and Constantin Enea",
title = "Sound, complete, and tractable linearizability
monitoring for concurrent collections",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "25:1--25:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158113",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "25",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Padon:2018:RLS,
author = "Oded Padon and Jochen Hoenicke and Giuliano Losa and
Andreas Podelski and Mooly Sagiv and Sharon Shoham",
title = "Reducing liveness to safety in first-order logic",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "26:1--26:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158114",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "26",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kaki:2018:ATC,
author = "Gowtham Kaki and Kartik Nagar and Mahsa Najafzadeh and
Suresh Jagannathan",
title = "Alone together: compositional reasoning and inference
for weak isolation",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "27:1--27:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158115",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "27",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sergey:2018:PPD,
author = "Ilya Sergey and James R. Wilcox and Zachary Tatlock",
title = "Programming and proving with distributed protocols",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "28:1--28:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158116",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "28",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Melo:2018:ISS,
author = "Leandro T. C. Melo and Rodrigo G. Ribeiro and Marcus
R. de Ara{\'u}jo and Fernando Magno Quint{\~a}o Pereira",
title = "Inference of static semantics for incomplete {C}
programs",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "29:1--29:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158117",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "29",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chatterjee:2018:ODR,
author = "Krishnendu Chatterjee and Bhavya Choudhary and Andreas
Pavlogiannis",
title = "Optimal {Dyck} reachability for data-dependence and
alias analysis",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "30:1--30:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158118",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "30",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chalupa:2018:DCD,
author = "Marek Chalupa and Krishnendu Chatterjee and Andreas
Pavlogiannis and Nishant Sinha and Kapil Vaidya",
title = "Data-centric dynamic partial order reduction",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "31:1--31:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158119",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "31",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bao:2018:AMC,
author = "Wenlei Bao and Sriram Krishnamoorthy and Louis-Noel
Pouchet and P. Sadayappan",
title = "Analytical modeling of cache behavior for affine
programs",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "32:1--32:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158120",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "32",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{McIver:2018:NPR,
author = "Annabelle McIver and Carroll Morgan and Benjamin
Lucien Kaminski and Joost-Pieter Katoen",
title = "A new proof rule for almost-sure termination",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "33:1--33:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158121",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "33",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Agrawal:2018:LRS,
author = "Sheshansh Agrawal and Krishnendu Chatterjee and Petr
Novotn{\'y}",
title = "Lexicographic ranking supermartingales: an efficient
approach to termination of probabilistic programs",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "34:1--34:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158122",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "34",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Li:2018:AAT,
author = "Yangjia Li and Mingsheng Ying",
title = "Algorithmic analysis of termination problems for
quantum programs",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "35:1--35:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158123",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "35",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Radicek:2018:MRR,
author = "Ivan Radi{\v{c}}ek and Gilles Barthe and Marco
Gaboardi and Deepak Garg and Florian Zuleger",
title = "Monadic refinements for relational cost analysis",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "36:1--36:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158124",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "36",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Krishna:2018:GFC,
author = "Siddharth Krishna and Dennis Shasha and Thomas Wies",
title = "Go with the flow: compositional abstractions for
concurrent data structures",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "37:1--37:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158125",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "37",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Devriese:2018:PVU,
author = "Dominique Devriese and Marco Patrignani and Frank
Piessens",
title = "Parametricity versus the universal type",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "38:1--38:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158126",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "38",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Clairambault:2018:LHO,
author = "Pierre Clairambault and Charles Grellois and Andrzej
S. Murawski",
title = "Linearity in higher-order recursion schemes",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "39:1--39:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158127",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "39",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chang:2018:STL,
author = "Stephen Chang and Alex Knauth and Emina Torlak",
title = "Symbolic types for lenient symbolic execution",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "40:1--40:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158128",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "40",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ko:2018:ABB,
author = "Hsiang-Shang Ko and Zhenjiang Hu",
title = "An axiomatic basis for bidirectional programming",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "41:1--41:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158129",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "41",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Odersky:2018:SFA,
author = "Martin Odersky and Olivier Blanvillain and Fengyun Liu
and Aggelos Biboudis and Heather Miller and Sandro
Stucki",
title = "Simplicitly: foundations and applications of implicit
function types",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "42:1--42:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158130",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "42",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Danielsson:2018:TUS,
author = "Nils Anders Danielsson",
title = "Up-to techniques using sized types",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "43:1--43:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158131",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "43",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Capriotti:2018:UHC,
author = "Paolo Capriotti and Nicolai Kraus",
title = "Univalent higher categories via complete {Semi-Segal}
types",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "44:1--44:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158132",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "44",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lampropoulos:2018:GGG,
author = "Leonidas Lampropoulos and Zoe Paraskevopoulou and
Benjamin C. Pierce",
title = "Generating good generators for inductive relations",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "45:1--45:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158133",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "45",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Majumdar:2018:WRT,
author = "Rupak Majumdar and Filip Niksic",
title = "Why is random testing effective for partition
tolerance bugs?",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "46:1--46:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158134",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "46",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lee:2018:APC,
author = "Wonyeol Lee and Rahul Sharma and Alex Aiken",
title = "On automatically proving the correctness of {\tt
math.h} implementations",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "47:1--47:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158135",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/fparith.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
abstract = "Industry standard implementations of {\tt math.h}
claim (often without formal proof) tight bounds on
floating-point errors. We demonstrate a novel static
analysis that proves these bounds and verifies the
correctness of these implementations. Our key insight
is a reduction of this verification task to a set of
mathematical optimization problems that can be solved
by off-the-shelf computer algebra systems. We use this
analysis to prove the correctness of implementations in
Intel's math library automatically. Prior to this work,
these implementations could only be verified with
significant manual effort.",
acknowledgement = ack-nhfb,
articleno = "47",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Grossman:2018:ODE,
author = "Shelly Grossman and Ittai Abraham and Guy Golan-Gueta
and Yan Michalevsky and Noam Rinetzky and Mooly Sagiv
and Yoni Zohar",
title = "Online detection of effectively callback free objects
with applications to smart contracts",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "48:1--48:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158136",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "48",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Fluckiger:2018:CSO,
author = "Olivier Fl{\"u}ckiger and Gabriel Scherer and Ming-Ho
Yee and Aviral Goel and Amal Ahmed and Jan Vitek",
title = "Correctness of speculative optimizations with dynamic
deoptimization",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "49:1--49:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158137",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "49",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Santos:2018:JJV,
author = "Jos{\'e} Fragoso Santos and Petar Maksimovi{\'c} and
Daiva Naud{\v{z}}i{\=u}nien{\.e} and Thomas Wood and
Philippa Gardner",
title = "{JaVerT}: {JavaScript} verification toolchain",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "50:1--50:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158138",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "50",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Nguyen:2018:SCV,
author = "Ph{\'u}c C. Nguy{\~{\^e}}n and Thomas Gilray and Sam
Tobin-Hochstadt and David {Van Horn}",
title = "Soft contract verification for higher-order stateful
programs",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "51:1--51:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158139",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "51",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Amin:2018:CTI,
author = "Nada Amin and Tiark Rompf",
title = "Collapsing towers of interpreters",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "52:1--52:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158140",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "52",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Vazou:2018:RRC,
author = "Niki Vazou and Anish Tondwalkar and Vikraman Choudhury
and Ryan G. Scott and Ryan R. Newton and Philip Wadler
and Ranjit Jhala",
title = "Refinement reflection: complete verification with
{SMT}",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "53:1--53:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158141",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "53",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kincaid:2018:NLR,
author = "Zachary Kincaid and John Cyphert and Jason Breck and
Thomas Reps",
title = "Non-linear reasoning for invariant synthesis",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "54:1--54:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158142",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "54",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Singh:2018:PCD,
author = "Gagandeep Singh and Markus P{\"u}schel and Martin
Vechev",
title = "A practical construction for decomposing numerical
abstract domains",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "55:1--55:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158143",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "55",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2018:VED,
author = "Yuepeng Wang and Isil Dillig and Shuvendu K. Lahiri
and William R. Cook",
title = "Verifying equivalence of database-driven
applications",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "56:1--56:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158144",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "56",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barthe:2018:PES,
author = "Gilles Barthe and Thomas Espitau and Benjamin
Gr{\'e}goire and Justin Hsu and Pierre-Yves Strub",
title = "Proving expected sensitivity of probabilistic
programs",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "57:1--57:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158145",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "57",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Albarghouthi:2018:SCP,
author = "Aws Albarghouthi and Justin Hsu",
title = "Synthesizing coupling proofs of differential privacy",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "58:1--58:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158146",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "58",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ehrhard:2018:MCS,
author = "Thomas Ehrhard and Michele Pagani and Christine
Tasson",
title = "Measurable cones and stable, measurable functions: a
model for probabilistic higher-order programming",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "59:1--59:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158147",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "59",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Scibior:2018:DVH,
author = "Adam {\'S}cibior and Ohad Kammar and Matthijs
V{\'a}k{\'a}r and Sam Staton and Hongseok Yang and
Yufei Cai and Klaus Ostermann and Sean K. Moss and
Chris Heunen and Zoubin Ghahramani",
title = "Denotational validation of higher-order {Bayesian}
inference",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "60:1--60:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158148",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "60",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Farzan:2018:SSL,
author = "Azadeh Farzan and Zachary Kincaid",
title = "Strategy synthesis for linear arithmetic games",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "61:1--61:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158149",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "61",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chandra:2018:BSB,
author = "Kartik Chandra and Rastislav Bodik",
title = "{Bonsai}: synthesis-based reasoning for type systems",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "62:1--62:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158150",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "62",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2018:PSU,
author = "Xinyu Wang and Isil Dillig and Rishabh Singh",
title = "Program synthesis using abstraction refinement",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "63:1--63:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158151",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "63",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Timany:2018:LRM,
author = "Amin Timany and L{\'e}o Stefanesco and Morten
Krogh-Jespersen and Lars Birkedal",
title = "A logical relation for monadic encapsulation of state:
proving contextual equivalences in the presence of
{runST}",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "64:1--64:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158152",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "64",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ahman:2018:RWF,
author = "Danel Ahman and C{\'e}dric Fournet and
C{\u{a}}t{\u{a}}lin Hri{\c{t}}cu and Kenji Maillard and
Aseem Rastogi and Nikhil Swamy",
title = "Recalling a witness: foundations and applications of
monotonic state",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "65:1--65:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158153",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
acknowledgement = ack-nhfb,
articleno = "65",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jung:2018:RSF,
author = "Ralf Jung and Jacques-Henri Jourdan and Robbert
Krebbers and Derek Dreyer",
title = "{RustBelt}: securing the foundations of the {Rust}
programming language",
journal = j-PACMPL,
volume = "2",
number = "POPL",
pages = "66:1--66:??",
month = jan,
year = "2018",
CODEN = "????",
DOI = "https://doi.org/10.1145/3158154",
ISSN = "2475-1421",
bibdate = "Wed Jan 10 09:45:26 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/rust.bib",
abstract = "Rust is a new systems programming language that
promises to overcome the seemingly fundamental tradeoff
between high-level safety guarantees and low-level
control over resource management. Unfortunately, none
of Rust's safety claims have been formally proven, and
there is good reason to question whether they actually
hold. Specifically, Rust employs a strong,
ownership-based type system, but then extends the
expressive power of this core type system through
libraries that internally use unsafe features. In this
paper, we give the first formal (and machine-checked)
safety proof for a language representing a realistic
subset of Rust. Our proof is extensible in the sense
that, for each new Rust library that uses unsafe
features, we can say what verification condition it
must satisfy in order for it to be deemed a safe
extension to the language. We have carried out this
verification for some of the most important libraries
that are used throughout the Rust ecosystem.",
acknowledgement = ack-nhfb,
articleno = "66",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bracevac:2018:VEC,
author = "Oliver Bracevac and Nada Amin and Guido Salvaneschi
and Sebastian Erdweg and Patrick Eugster and Mira
Mezini",
title = "Versatile event correlation with algebraic effects",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "67:1--67:31",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236762",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236762",
abstract = "We present the first language design to uniformly
express variants of $n$-way joins over asynchronous
event streams from different domains, e.g.,
stream-relational algebra, event processing, reactive
and concurrent programming. We model asynchronous
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "67",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hackett:2018:PPO,
author = "Jennifer Hackett and Graham Hutton",
title = "Parametric polymorphism and operational improvement",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "68:1--68:24",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236763",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236763",
abstract = "Parametricity, in both operational and denotational
forms, has long been a useful tool for reasoning about
program correctness. However, there is as yet no
comparable technique for reasoning about program
improvement, that is, when one program uses \ldots{}",
acknowledgement = ack-nhfb,
articleno = "68",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cong:2018:HDC,
author = "Youyou Cong and Kenichi Asai",
title = "Handling delimited continuations with dependent
types",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "69:1--69:31",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236764",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236764",
abstract = "Dependent types are a powerful tool for maintaining
program invariants. To take advantage of this aspect in
real-world programming, efforts have been put into
enriching dependently typed languages with missing
constructs, most notably, effects. This \ldots{}",
acknowledgement = ack-nhfb,
articleno = "69",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Elliott:2018:SEA,
author = "Conal Elliott",
title = "The simple essence of automatic differentiation",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "70:1--70:29",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236765",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236765",
abstract = "Automatic differentiation (AD) in reverse mode (RAD)
is a central component of deep learning and other uses
of large-scale optimization. Commonly used RAD
algorithms such as backpropagation, however, are
complex and stateful, hindering deep \ldots{}",
acknowledgement = ack-nhfb,
articleno = "70",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Greenman:2018:STS,
author = "Ben Greenman and Matthias Felleisen",
title = "A spectrum of type soundness and performance",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "71:1--71:32",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236766",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236766",
abstract = "The literature on gradual typing presents three
fundamentally different ways of thinking about the
integrity of programs that combine statically typed and
dynamically typed code. This paper presents a uniform
semantic framework that explains all three \ldots{}",
acknowledgement = ack-nhfb,
articleno = "71",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Keidel:2018:CSP,
author = "Sven Keidel and Casper Bach Poulsen and Sebastian
Erdweg",
title = "Compositional soundness proofs of abstract
interpreters",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "72:1--72:26",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236767",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236767",
abstract = "Abstract interpretation is a technique for developing
static analyses. Yet, proving abstract interpreters
sound is challenging for interesting analyses, because
of the high proof complexity and proof effort. To
reduce complexity and effort, we propose a \ldots{}",
acknowledgement = ack-nhfb,
articleno = "72",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{New:2018:GEP,
author = "Max S. New and Amal Ahmed",
title = "Graduality from embedding-projection pairs",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "73:1--73:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236768",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236768",
abstract = "Gradually typed languages allow statically typed and
dynamically typed code to interact while maintaining
benefits of both styles. The key to reasoning about
these mixed programs is Siek-Vitousek-Cimini-Boyland's
(dynamic) gradual guarantee, which says \ldots{}",
acknowledgement = ack-nhfb,
articleno = "73",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Horn:2018:IRL,
author = "Rudi Horn and Roly Perera and James Cheney",
title = "Incremental relational lenses",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "74:1--74:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236769",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236769",
abstract = "Lenses are a popular approach to bidirectional
transformations, a generalisation of the view update
problem in databases, in which we wish to make changes
to source tables to effect a desired change on a view.
However, perhaps surprisingly, lenses have \ldots{}",
acknowledgement = ack-nhfb,
articleno = "74",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cockx:2018:EDC,
author = "Jesper Cockx and Andreas Abel",
title = "Elaborating dependent (co)pattern matching",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "75:1--75:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236770",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236770",
abstract = "In a dependently typed language, we can guarantee
correctness of our programs by providing formal proofs.
To check them, the typechecker elaborates these
programs and proofs into a low level core language.
However, this core language is by nature hard
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "75",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Koppel:2018:CFR,
author = "James Koppel and Gabriel Scherer and Armando
Solar-Lezama",
title = "Capturing the future by replaying the past (functional
pearl)",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "76:1--76:29",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236771",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236771",
abstract = "Delimited continuations are the mother of all monads!
So goes the slogan inspired by Filinski's 1994 paper,
which showed that delimited continuations can implement
any monadic effect, letting the programmer use an
effect as easily as if it was built \ldots{}",
acknowledgement = ack-nhfb,
articleno = "76",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Krebbers:2018:MGE,
author = "Robbert Krebbers and Jacques-Henri Jourdan and Ralf
Jung and Joseph Tassarotti and Jan-Oliver Kaiser and
Amin Timany and Arthur Chargu{\'e}raud and Derek Dreyer",
title = "{MoSeL}: a general, extensible modal framework for
interactive proofs in separation logic",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "77:1--77:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236772",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236772",
abstract = "A number of tools have been developed for carrying out
separation-logic proofs mechanically using an
interactive proof assistant. One of the most advanced
such tools is the Iris Proof Mode (IPM) for Coq, which
offers a rich set of tactics for making \ldots{}",
acknowledgement = ack-nhfb,
articleno = "77",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kaiser:2018:MTT,
author = "Jan-Oliver Kaiser and Beta Ziliani and Robbert
Krebbers and Yann R{\'e}gis-Gianas and Derek Dreyer",
title = "{Mtac2}: typed tactics for backward reasoning in
{Coq}",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "78:1--78:31",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236773",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236773",
abstract = "Coq supports a range of built-in tactics, which are
engineered primarily to support backward reasoning.
Starting from a desired goal, the Coq programmer can
use these tactics to manipulate the proof state
interactively, applying axioms or lemmas to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "78",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mokhov:2018:BSC,
author = "Andrey Mokhov and Neil Mitchell and Simon Peyton
Jones",
title = "Build systems {\`a} la carte",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "79:1--79:29",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236774",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236774",
abstract = "Build systems are awesome, terrifying --- and unloved.
They are used by every developer around the world, but
are rarely the object of study. In this paper we offer
a systematic, and executable, framework for developing
and comparing build systems, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "79",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Maina:2018:SQL,
author = "Solomon Maina and Anders Miltner and Kathleen Fisher
and Benjamin C. Pierce and David Walker and Steve
Zdancewic",
title = "Synthesizing quotient lenses",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "80:1--80:29",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236775",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236775",
abstract = "Quotient lenses are bidirectional transformations
whose correctness laws are ``loosened'' by specified
equivalence relations, allowing inessential details in
concrete data formats to be suppressed. For example, a
programmer could use a quotient lens to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "80",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ohori:2018:FPO,
author = "Atsushi Ohori and Katsuhiro Ueno and Hisayuki Mima",
title = "Finitary polymorphism for optimizing type-directed
compilation",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "81:1--81:29",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236776",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236776",
abstract = "We develop a type-theoretical method for optimizing
type directed compilation of polymorphic languages,
implement the method in SML\#, which is a full-scale
compiler of Standard ML extended with several advanced
features that require type-passing \ldots{}",
acknowledgement = ack-nhfb,
articleno = "81",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Almeida:2018:THP,
author = "Jos{\'e} Bacelar Almeida and Alcino Cunha and Nuno
Macedo and Hugo Pacheco and Jos{\'e} Proen{\c{c}}a",
title = "Teaching how to program using automated assessment and
functional glossy games (experience report)",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "82:1--82:17",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236777",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236777",
abstract = "Our department has long been an advocate of the
functional-first school of programming and has been
teaching Haskell as a first language in introductory
programming course units for 20 years. Although the
functional style is largely beneficial, it needs
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "82",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Scibior:2018:FPM,
author = "Adam {\'S}cibior and Ohad Kammar and Zoubin
Ghahramani",
title = "Functional programming for modular {Bayesian}
inference",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "83:1--83:29",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236778",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236778",
abstract = "We present an architectural design of a library for
Bayesian modelling and inference in modern functional
programming languages. The novel aspect of our approach
are modular implementations of existing
state-of-the-art inference algorithms. Our design
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "83",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Boisseau:2018:WYN,
author = "Guillaume Boisseau and Jeremy Gibbons",
title = "What you needa know about {Yoneda}: profunctor optics
and the {Yoneda} lemma (functional pearl)",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "84:1--84:27",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236779",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236779",
abstract = "Profunctor optics are a neat and composable
representation of bidirectional data accessors,
including lenses, and their dual, prisms. The
profunctor representation exploits higher-order
functions and higher-kinded type constructor classes,
but the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "84",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kiss:2018:GDG,
author = "Csongor Kiss and Matthew Pickering and Nicolas Wu",
title = "Generic deriving of generic traversals",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "85:1--85:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236780",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236780",
abstract = "Functional programmers have an established tradition
of using traversals as a design pattern to work with
recursive data structures. The technique is so prolific
that a whole host of libraries have been designed to
help in the task of automatically \ldots{}",
acknowledgement = ack-nhfb,
articleno = "85",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gibbons:2018:RAW,
author = "Jeremy Gibbons and Fritz Henglein and Ralf Hinze and
Nicolas Wu",
title = "Relational algebra by way of adjunctions",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "86:1--86:28",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236781",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236781",
abstract = "Bulk types such as sets, bags, and lists are monads,
and therefore support a notation for database queries
based on comprehensions. This fact is the basis of much
work on database query languages. The monadic structure
easily explains most of standard \ldots{}",
acknowledgement = ack-nhfb,
articleno = "86",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wand:2018:CEP,
author = "Mitchell Wand and Ryan Culpepper and Theophilos
Giannakopoulos and Andrew Cobb",
title = "Contextual equivalence for a probabilistic language
with continuous random variables and recursion",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "87:1--87:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236782",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236782",
abstract = "We present a complete reasoning principle for
contextual equivalence in an untyped probabilistic
language. The language includes continuous
(real-valued) random variables, conditionals, and
scoring. It also includes recursion, since the standard
call-by-\ldots{}",
acknowledgement = ack-nhfb,
articleno = "87",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hirsch:2018:SLS,
author = "Andrew K. Hirsch and Ross Tate",
title = "Strict and lazy semantics for effects: layering monads
and comonads",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "88:1--88:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236783",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236783",
abstract = "Two particularly important classes of effects are
those that can be given semantics using a monad and
those that can be given semantics using a comonad.
Currently, programs with both kinds of effects are
usually given semantics using a technique that
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "88",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Breitner:2018:RSV,
author = "Joachim Breitner and Antal Spector-Zabusky and Yao Li
and Christine Rizkallah and John Wiegley and Stephanie
Weirich",
title = "Ready, set, verify! applying hs-to-coq to real-world
{Haskell} code (experience report)",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "89:1--89:16",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236784",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236784",
abstract = "Good tools can bring mechanical verification to
programs written in mainstream functional languages. We
use {$<$ pre$>$ hs}-to-{coq$<$}/{pre$>$} to translate
significant portions of Haskell's {$<$ pre$>$
containers$<$}/{pre$>$} library into Coq, and verify it
against specifications \ldots{}",
acknowledgement = ack-nhfb,
articleno = "89",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Allais:2018:TSS,
author = "Guillaume Allais and Robert Atkey and James Chapman
and Conor McBride and James McKinna",
title = "A type and scope safe universe of syntaxes with
binding: their semantics and proofs",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "90:1--90:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236785",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236785",
abstract = "Almost every programming language's syntax includes a
notion of binder and corresponding bound occurrences,
along with the accompanying notions of $ \alpha
$-equivalence, capture avoiding substitution, typing
contexts, runtime environments, and so on. In the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "90",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Das:2018:PCA,
author = "Ankush Das and Jan Hoffmann and Frank Pfenning",
title = "Parallel complexity analysis with temporal session
types",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "91:1--91:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236786",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236786",
abstract = "We study the problem of parametric parallel complexity
analysis of concurrent, message-passing programs. To
make the analysis local and compositional, it is based
on a conservative extension of binary session types,
which structure the type and \ldots{}",
acknowledgement = ack-nhfb,
articleno = "91",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Tabareau:2018:EFU,
author = "Nicolas Tabareau and {\'E}ric Tanter and Matthieu
Sozeau",
title = "Equivalences for free: univalent parametricity for
effective transport",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "92:1--92:29",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236787",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236787",
abstract = "Homotopy Type Theory promises a unification of the
concepts of equality and equivalence in Type Theory,
through the introduction of the univalence principle.
However, existing proof assistants based on type theory
treat this principle as an axiom, and \ldots{}",
acknowledgement = ack-nhfb,
articleno = "92",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Stampoulis:2018:PFL,
author = "Antonis Stampoulis and Adam Chlipala",
title = "Prototyping a functional language using higher-order
logic programming: a functional pearl on learning the
ways of $ \lambda $ {Prolog Makam}",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "93:1--93:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236788",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236788",
abstract = "We demonstrate how the framework of higher-order logic
programming, as exemplified in the $ \lambda $ Prolog
language design, is a prime vehicle for rapid
prototyping of implementations for programming
languages with sophisticated type systems. We present
the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "93",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Accattoli:2018:TTS,
author = "Beniamino Accattoli and St{\'e}phane Graham-Lengrand
and Delia Kesner",
title = "Tight typings and split bounds",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "94:1--94:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236789",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236789",
abstract = "Multi types-aka non-idempotent intersection types-have
been used to obtain quantitative bounds on higher-order
programs, as pioneered by de Carvalho. Notably, they
bound at the same time the number of evaluation steps
and the size of the result. Recent \ldots{}",
acknowledgement = ack-nhfb,
articleno = "94",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Muller:2018:CPG,
author = "Stefan K. Muller and Umut A. Acar and Robert Harper",
title = "Competitive parallelism: getting your priorities
right",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "95:1--95:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236790",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236790",
abstract = "Multi-threaded programs have traditionally fallen into
one of two domains: cooperative and competitive. These
two domains have traditionally remained mostly
disjoint, with cooperative threading used for
increasing throughput in compute-intensive \ldots{}",
acknowledgement = ack-nhfb,
articleno = "95",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Perez:2018:FTF,
author = "Ivan Perez",
title = "Fault tolerant functional reactive programming
(functional pearl)",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "96:1--96:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236791",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236791",
abstract = "Highly critical application domains, like medicine and
aerospace, require the use of strict design,
implementation and validation techniques. Functional
languages have been used in these domains to develop
synchronous dataflow programming languages for
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "96",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Elsman:2018:SIH,
author = "Martin Elsman and Troels Henriksen and Danil Annenkov
and Cosmin E. Oancea",
title = "Static interpretation of higher-order modules in
{Futhark}: functional {GPU} programming in the large",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "97:1--97:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236792",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236792",
abstract = "We present a higher-order module system for the purely
functional data-parallel array language Futhark. The
module language has the property that it is completely
eliminated at compile time, yet it serves as a powerful
tool for organizing libraries and \ldots{}",
acknowledgement = ack-nhfb,
articleno = "97",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Campora:2018:CCH,
author = "John Peter Campora and Sheng Chen and Eric
Walkingshaw",
title = "Casts and costs: harmonizing safety and performance in
gradual typing",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "98:1--98:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236793",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236793",
abstract = "Gradual typing allows programmers to use both static
and dynamic typing in a single program. However, a
well-known problem with sound gradual typing is that
the interactions between static and dynamic code can
cause significant performance degradation. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "98",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Nandi:2018:FPC,
author = "Chandrakana Nandi and James R. Wilcox and Pavel
Panchekha and Taylor Blau and Dan Grossman and Zachary
Tatlock",
title = "Functional programming for compiling and decompiling
computer-aided design",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "99:1--99:31",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236794",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236794",
abstract = "Desktop-manufacturing techniques like 3D printing are
increasingly popular because they reduce the cost and
complexity of producing customized objects on demand.
Unfortunately, the vibrant communities of early
adopters, often referred to as ``makers,'' \ldots{}",
acknowledgement = ack-nhfb,
articleno = "99",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yallop:2018:PSD,
author = "Jeremy Yallop and Tamara von Glehn and Ohad Kammar",
title = "Partially-static data as free extension of algebras",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "100:1--100:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236795",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236795",
abstract = "Partially-static data structures are a well-known
technique for improving binding times. However, they
are often defined in an ad-hoc manner, without a
unifying framework to ensure full use of the equations
associated with each operation. We present a \ldots{}",
acknowledgement = ack-nhfb,
articleno = "100",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yorgey:2018:WDF,
author = "Brent A. Yorgey and Kenneth Foner",
title = "What's the difference? {A} functional pearl on
subtracting bijections",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "101:1--101:21",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236796",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236796",
abstract = "It is a straightforward exercise to write a program to
``add'' two bijections---resulting in a bijection
between two sum types, which runs the first bijection
on elements from the left summand and the second
bijection on the right. It is much less obvious
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "101",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Foner:2018:KYL,
author = "Kenneth Foner and Hengchu Zhang and Leonidas
Lampropoulos",
title = "Keep your laziness in check",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "102:1--102:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236797",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236797",
abstract = "We introduce StrictCheck: a property-based random
testing framework for observing, specifying, and
testing the strictness of Haskell functions. Strictness
is traditionally considered a non-functional property;
StrictCheck allows it to be tested as if it \ldots{}",
acknowledgement = ack-nhfb,
articleno = "102",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bour:2018:MLS,
author = "Fr{\'e}d{\'e}ric Bour and Thomas Refis and Gabriel
Scherer",
title = "{Merlin}: a language server for {OCaml} (experience
report)",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "103:1--103:15",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236798",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236798",
abstract = "We report on the experience of developing Merlin, a
language server for the OCaml programming language in
development since 2013. Merlin is a daemon that
connects to your favourite text editor and provides
services that require a fine-grained \ldots{}",
acknowledgement = ack-nhfb,
articleno = "103",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Diehl:2018:GZC,
author = "Larry Diehl and Denis Firsov and Aaron Stump",
title = "Generic zero-cost reuse for dependent types",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "104:1--104:30",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236799",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236799",
abstract = "Dependently typed languages are well known for having
a problem with code reuse. Traditional non-indexed
algebraic datatypes (e.g. lists) appear alongside a
plethora of indexed variations (e.g. vectors).
Functions are often rewritten for both non-. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "104",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wei:2018:RAA,
author = "Guannan Wei and James Decker and Tiark Rompf",
title = "Refunctionalization of abstract abstract machines:
bridging the gap between abstract abstract machines and
abstract definitional interpreters (functional pearl)",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "105:1--105:28",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236800",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236800",
abstract = "Abstracting abstract machines is a systematic
methodology for constructing sound static analyses for
higher-order languages, by deriving small-step abstract
abstract machines (AAMs) that perform abstract
interpretation from abstract machines that \ldots{}",
acknowledgement = ack-nhfb,
articleno = "105",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Omar:2018:RPL,
author = "Cyrus Omar and Jonathan Aldrich",
title = "Reasonably programmable literal notation",
journal = j-PACMPL,
volume = "2",
number = "ICFP",
pages = "106:1--106:32",
month = jul,
year = "2018",
DOI = "https://doi.org/10.1145/3236801",
bibdate = "Fri Aug 7 17:44:42 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3236801",
abstract = "General-purpose programming languages typically define
literal notation for only a small number of common data
structures, like lists. This is unsatisfying because
there are many other data structures for which literal
notation might be useful, e.g. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "106",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Drechsler:2018:TSR,
author = "Joscha Drechsler and Ragnar Mogk and Guido Salvaneschi
and Mira Mezini",
title = "Thread-safe reactive programming",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "107:1--107:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276477",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276477",
abstract = "The execution of an application written in a reactive
language involves transfer of data and control flow
between imperative and reactive abstractions at
well-defined points. In a multi-threaded environment,
multiple such interactions may execute \ldots{}",
acknowledgement = ack-nhfb,
articleno = "107",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Daloze:2018:PDL,
author = "Benoit Daloze and Arie Tal and Stefan Marr and
Hanspeter M{\"o}ssenb{\"o}ck and Erez Petrank",
title = "Parallelization of dynamic languages: synchronizing
built-in collections",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "108:1--108:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276478",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/hash.bib;
http://www.math.utah.edu/pub/tex/bib/java2010;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/python.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276478",
abstract = "Dynamic programming languages such as Python and Ruby
are widely used, and much effort is spent on making
them efficient. One substantial research effort in this
direction is the enabling of parallel code execution.
While there has been significant progress, making
dynamic collections efficient, scalable, and
thread-safe is an open issue. Typical programs in
dynamic languages use few but versatile collection
types. Such collections are an important ingredient of
dynamic environments, but are difficult to make safe,
efficient, and scalable.\par
In this paper, we propose an approach for efficient and
concurrent collections by gradually increasing
synchronization levels according to the dynamic needs
of each collection instance. Collections reachable only
by a single thread have no synchronization, arrays
accessed in bounds have minimal synchronization, and
for the general case, we adopt the Layout Lock paradigm
and extend its design with a lightweight version that
fits the setting of dynamic languages. We apply our
approach to Ruby's Array and Hash collections. Our
experiments show that our approach has no overhead on
single-threaded benchmarks, scales linearly for Array
and Hash accesses, achieves the same scalability as
Fortran and Java for classic parallel algorithms, and
scales better than other Ruby implementations on Ruby
workloads",
acknowledgement = ack-nhfb,
articleno = "108",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Meier:2018:VMD,
author = "Remigius Meier and Armin Rigo and Thomas R. Gross",
title = "Virtual machine design for parallel dynamic
programming languages",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "109:1--109:25",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276479",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/python.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276479",
abstract = "To leverage the benefits of modern hardware, dynamic
languages must support parallelism, and parallelism
requires a virtual machine (VM) capable of parallel
execution --- a parallel VM. However, unrestricted
concurrency and the dynamism of dynamic languages pose
great challenges to the implementation of parallel VMs.
In a dynamic language, a program changing itself is
part of the language model. To help the VM, languages
often choose memory models (MM) that weaken consistency
guarantees. With lesser guarantees, local program state
cannot be affected by every concurrent state change.
And less interference allows a VM to make local
assumptions about the program state which are not
immediately violated. These local assumptions are
essential for a VM's just-in-time compiler for
delivering state-of-the-art VM
performance.\par
Unfortunately, some dynamic languages employ MMs that
give exceedingly strong consistency guarantees and
thereby hinder the development of parallel VMs. Such is
the case in particular for languages that depend on a
global interpreter lock, which mandates a MM with
sequential consistency and instruction
atomicity.\par
In this paper, we reflect on a first implementation of
the Parallel RPython execution model, which facilitates
the development of parallel VMs by decoupling language
semantics from the synchronization mechanism used
within the VM. The implementation addresses the
challenges imposed by strong MMs through strict
isolation of concurrent computations. This isolation
builds on transactional parallel worlds, which are
implemented with a novel combination of software
techniques and the capabilities of modern
hardware.\par
We evaluate a set of parallel Python programs on a
parallel VM that relies on Parallel RPython's
implementation. Compared with a serial baseline VM that
relies on a global interpreter lock, the parallel VM
achieves speedups of up to $ 7.5 \times $ on 8 CPU
cores. The evaluation shows that our realization of
Parallel RPython meets the challenges of dynamic
languages, and that it can serve as a solid foundation
for the construction of parallel dynamic language
VMs.",
acknowledgement = ack-nhfb,
articleno = "109",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mendis:2018:GGO,
author = "Charith Mendis and Saman Amarasinghe",
title = "{goSLP}: globally optimized superword level
parallelism framework",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "110:1--110:28",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276480",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276480",
abstract = "Modern microprocessors are equipped with single
instruction multiple data (SIMD) or vector instruction
sets which allow compilers to exploit superword level
parallelism (SLP), a type of fine-grained parallelism.
Current SLP auto-vectorization techniques \ldots{}",
acknowledgement = ack-nhfb,
articleno = "110",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Brachthauser:2018:EHM,
author = "Jonathan Immanuel Brachth{\"a}user and Philipp
Schuster and Klaus Ostermann",
title = "Effect handlers for the masses",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "111:1--111:27",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276481",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276481",
abstract = "Effect handlers are a program structuring paradigm
with rising popularity in the functional programming
language community and can express many advanced
control flow abstractions. We present the first
implementation of effect handlers for Java --- an
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "111",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Muehlboeck:2018:EUI,
author = "Fabian Muehlboeck and Ross Tate",
title = "Empowering union and intersection types with
integrated subtyping",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "112:1--112:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276482",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276482",
abstract = "Union and intersection types are both simple and
powerful but have seen limited adoption. The problem is
that, so far, subtyping algorithms for type systems
extended with union and intersections have typically
been either unreliable or insufficiently \ldots{}",
acknowledgement = ack-nhfb,
articleno = "112",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Nardelli:2018:JSR,
author = "Francesco Zappa Nardelli and Julia Belyakova and Artem
Pelenitsyn and Benjamin Chung and Jeff Bezanson and Jan
Vitek",
title = "{Julia} subtyping: a rational reconstruction",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "113:1--113:27",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276483",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/julia.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276483",
abstract = "Programming languages that support multiple dispatch
rely on an expressive notion of subtyping to specify
method applicability. In these languages, type
annotations on method declarations are used to select,
out of a potentially large set of methods, the one that
is most appropriate for a particular tuple of
arguments. Julia is a language for scientific computing
built around multiple dispatch and an expressive
subtyping relation. This paper provides the first
formal definition of Julia's subtype relation and
motivates its design. We validate our specification
empirically with an implementation of our definition
that we compare against the existing Julia
implementation on a collection of real-world programs.
Our subtype implementation differs on 122 subtype tests
out of 6,014,476. The first 120 differences are due to
a bug in Julia that was fixed once reported; the
remaining 2 are under discussion.",
acknowledgement = ack-nhfb,
articleno = "113",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{vanAntwerpen:2018:ST,
author = "Hendrik van Antwerpen and Casper Bach Poulsen and
Arjen Rouvoet and Eelco Visser",
title = "Scopes as types",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "114:1--114:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276484",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276484",
abstract = "Scope graphs are a promising generic framework to
model the binding structures of programming languages,
bridging formalization and implementation, supporting
the definition of type checkers and the automation of
type safety proofs. However, previous \ldots{}",
acknowledgement = ack-nhfb,
articleno = "114",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Li:2018:DFD,
author = "Peixuan Li and Danfeng Zhang",
title = "A derivation framework for dependent security label
inference",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "115:1--115:26",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276485",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276485",
abstract = "Dependent security labels (security labels that depend
on program states) in various forms have been
introduced to express rich information flow policies.
They are shown to be essential in the verification of
real-world software and hardware systems \ldots{}",
acknowledgement = ack-nhfb,
articleno = "115",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Grech:2018:MSG,
author = "Neville Grech and Michael Kong and Anton Jurisevic and
Lexi Brent and Bernhard Scholz and Yannis Smaragdakis",
title = "{MadMax}: surviving out-of-gas conditions in
{Ethereum} smart contracts",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "116:1--116:27",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276486",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/bitcoin.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276486",
abstract = "Ethereum is a distributed blockchain platform, serving
as an ecosystem for smart contracts: full-fledged
inter-communicating programs that capture the
transaction logic of an account. Unlike programs in
mainstream languages, a gas limit restricts the
execution of an Ethereum smart contract: execution
proceeds as long as gas is available. Thus, gas is a
valuable resource that can be manipulated by an
attacker to provoke unwanted behavior in a victim's
smart contract (e.g., wasting or blocking funds of said
victim). Gas-focused vulnerabilities exploit undesired
behavior when a contract (directly or through other
interacting contracts) runs out of gas. Such
vulnerabilities are among the hardest for programmers
to protect against, as out-of-gas behavior may be
uncommon in non-attack scenarios and reasoning about it
is far from trivial.
In this paper, we classify and identify gas-focused
vulnerabilities, and present MadMax: a static program
analysis technique to automatically detect gas-focused
vulnerabilities with very high confidence. Our approach
combines a control-flow-analysis-based decompiler and
declarative program-structure queries. The combined
analysis captures high-level domain-specific concepts
(such as ``dynamic data structure storage'' and
``safely resumable loops'') and achieves high precision
and scalability. MadMax analyzes the entirety of smart
contracts in the Ethereum blockchain in just 10 hours
(with decompilation timeouts in 8\% of the cases) and
flags contracts with a (highly volatile) monetary value
of over \$2.8B as vulnerable. Manual inspection of a
sample of flagged contracts shows that 81\% of the
sampled warnings do indeed lead to vulnerabilities,
which we report on in our experiment.",
acknowledgement = ack-nhfb,
articleno = "116",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wong:2018:FVE,
author = "Chu-Pan Wong and Jens Meinicke and Lukas Lazarek and
Christian K{\"a}stner",
title = "Faster variational execution with transparent bytecode
transformation",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "117:1--117:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276487",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276487",
abstract = "Variational execution is a novel dynamic analysis
technique for exploring highly configurable systems and
accurately tracking information flow. It is able to
efficiently analyze many configurations by aggressively
sharing redundancies of program \ldots{}",
acknowledgement = ack-nhfb,
articleno = "117",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Alpernas:2018:SSC,
author = "Kalev Alpernas and Cormac Flanagan and Sadjad Fouladi
and Leonid Ryzhyk and Mooly Sagiv and Thomas Schmitz
and Keith Winstein",
title = "Secure serverless computing using dynamic information
flow control",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "118:1--118:26",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276488",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276488",
abstract = "The rise of serverless computing provides an
opportunity to rethink cloud security. We present an
approach for securing serverless systems using a novel
form of dynamic information flow control (IFC). We show
that in serverless applications, the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "118",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Leissa:2018:APE,
author = "Roland Lei{\ss}a and Klaas Boesche and Sebastian Hack
and Ars{\`e}ne P{\'e}rard-Gayot and Richard Membarth
and Philipp Slusallek and Andr{\'e} M{\"u}ller and
Bertil Schmidt",
title = "{AnyDSL}: a partial evaluation framework for
programming high-performance libraries",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "119:1--119:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276489",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276489",
abstract = "This paper advocates programming high-performance code
using partial evaluation. We present a clean-slate
programming system with a simple, annotation-based,
online partial evaluator that operates on a CPS-style
intermediate representation. Our system \ldots{}",
acknowledgement = ack-nhfb,
articleno = "119",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bezanson:2018:JDP,
author = "Jeff Bezanson and Jiahao Chen and Benjamin Chung and
Stefan Karpinski and Viral B. Shah and Jan Vitek and
Lionel Zoubritzky",
title = "{Julia}: dynamism and performance reconciled by
design",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "120:1--120:23",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276490",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/julia.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/python.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276490",
abstract = "Julia is a programming language for the scientific
community that combines features of productivity
languages, such as Python or MATLAB, with
characteristics of performance-oriented languages, such
as C++ or Fortran. Julia's productivity features
include: dynamic typing, automatic memory management,
rich type annotations, and multiple dispatch. At the
same time, Julia allows programmers to control memory
layout and leverages a specializing just-in-time
compiler to eliminate much of the overhead of those
features. This paper details the design choices made by
the creators of Julia and reflects on the implications
of those choices for performance and usability.",
acknowledgement = ack-nhfb,
articleno = "120",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhang:2018:GHP,
author = "Yunming Zhang and Mengjiao Yang and Riyadh Baghdadi
and Shoaib Kamil and Julian Shun and Saman Amarasinghe",
title = "{GraphIt}: a high-performance graph {DSL}",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "121:1--121:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276491",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276491",
abstract = "The performance bottlenecks of graph applications
depend not only on the algorithm and the underlying
hardware, but also on the size and structure of the
input graph. As a result, programmers must try
different combinations of a large set of techniques,
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "121",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Koppel:2018:OTM,
author = "James Koppel and Varot Premtoon and Armando
Solar-Lezama",
title = "One tool, many languages: language-parametric
transformation with incremental parametric syntax",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "122:1--122:28",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276492",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276492",
abstract = "We present a new approach for building
source-to-source transformations that can run on
multiple programming languages, based on a new way of
representing programs called incremental parametric
syntax. We implement this approach in Haskell in our
Cubix \ldots{}",
acknowledgement = ack-nhfb,
articleno = "122",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chou:2018:FAS,
author = "Stephen Chou and Fredrik Kjolstad and Saman
Amarasinghe",
title = "Format abstraction for sparse tensor algebra
compilers",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "123:1--123:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276493",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276493",
abstract = "This paper shows how to build a sparse tensor algebra
compiler that is agnostic to tensor formats (data
layouts). We develop an interface that describes
formats in terms of their capabilities and properties,
and show how to build a modular code \ldots{}",
acknowledgement = ack-nhfb,
articleno = "123",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Xu:2018:SJC,
author = "Xiaoran Xu and Keith Cooper and Jacob Brock and Yan
Zhang and Handong Ye",
title = "{ShareJIT}: {JIT} code cache sharing across processes
and its practical implementation",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "124:1--124:23",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276494",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276494",
abstract = "Just-in-time (JIT) compilation coupled with code
caching are widely used to improve performance in
dynamic programming language implementations. These
code caches, along with the associated profiling data
for the hot code, however, consume significant
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "124",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lee:2018:RHL,
author = "Juneyoung Lee and Chung-Kil Hur and Ralf Jung and
Zhengyang Liu and John Regehr and Nuno P. Lopes",
title = "Reconciling high-level optimizations and low-level
code in {LLVM}",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "125:1--125:28",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276495",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/rust.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276495",
abstract = "LLVM miscompiles certain programs in C, C++, and Rust
that use low-level language features such as raw
pointers in Rust or conversion between integers and
pointers in C or C++. The problem is that it is
difficult for the compiler to implement aggressive,
high-level memory optimizations while also respecting
the guarantees made by the programming languages to
low-level programs. A deeper problem is that the memory
model for LLVM's intermediate representation (IR) is
informal and the semantics of corner cases are not
always clear to all compiler developers. We developed a
novel memory model for LLVM IR and formalized it. The
new model requires a handful of problematic IR-level
optimizations to be removed, but it also supports the
addition of new optimizations that were not previously
legal. We have implemented the new model and shown that
it fixes known memory-model-related miscompilations
without impacting the quality of generated code.",
acknowledgement = ack-nhfb,
articleno = "125",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gong:2018:ESE,
author = "Zhangxiaowen Gong and Zhi Chen and Justin Szaday and
David Wong and Zehra Sura and Neftali Watkinson and
Saeed Maleki and David Padua and Alexander Veidenbaum
and Alexandru Nicolau and Josep Torrellas",
title = "An empirical study of the effect of source-level loop
transformations on compiler stability",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "126:1--126:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276496",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276496",
abstract = "Modern compiler optimization is a complex process that
offers no guarantees to deliver the fastest, most
efficient target code. For this reason, compilers
struggle to produce a stable performance from versions
of code that carry out the same computation \ldots{}",
acknowledgement = ack-nhfb,
articleno = "126",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mayer:2018:BED,
author = "Mika{\"e}l Mayer and Viktor Kuncak and Ravi Chugh",
title = "Bidirectional evaluation with direct manipulation",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "127:1--127:28",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276497",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276497",
abstract = "We present an evaluation update (or simply, update)
algorithm for a full-featured functional programming
language, which synthesizes program changes based on
output changes. Intuitively, the update algorithm
retraces the steps of the original evaluation,.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "127",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ott:2018:BPS,
author = "Jason Ott and Tyson Loveless and Chris Curtis and
Mohsen Lesani and Philip Brisk",
title = "{BioScript}: programming safe chemistry on
laboratories-on-a-chip",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "128:1--128:31",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276498",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276498",
abstract = "This paper introduces BioScript, a domain-specific
language (DSL) for programmable biochemistry which
executes on emerging microfluidic platforms. The goal
of this research is to provide a simple, intuitive, and
type-safe DSL that is accessible to life \ldots{}",
acknowledgement = ack-nhfb,
articleno = "128",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Weisenburger:2018:DSD,
author = "Pascal Weisenburger and Mirko K{\"o}hler and Guido
Salvaneschi",
title = "Distributed system development with {ScalaLoci}",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "129:1--129:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276499",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276499",
abstract = "Distributed applications are traditionally developed
as separate modules, often in different languages,
which react to events, like user input, and in turn
produce new events for the other modules. Separation
into components requires time-consuming \ldots{}",
acknowledgement = ack-nhfb,
articleno = "129",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Faes:2018:CAO,
author = "Michael Faes and Thomas R. Gross",
title = "Concurrency-aware object-oriented programming with
roles",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "130:1--130:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276500",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276500",
abstract = "Object-oriented Programming has been effective in
reducing code complexity in sequential programs, but in
current practice, concurrent programs still present a
number of challenges. We present here a model of
object-oriented programming that identifies \ldots{}",
acknowledgement = ack-nhfb,
articleno = "130",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ezudheen:2018:HIL,
author = "P. Ezudheen and Daniel Neider and Deepak D'Souza and
Pranav Garg and P. Madhusudan",
title = "{Horn-ICE} learning for synthesizing invariants and
contracts",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "131:1--131:25",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276501",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276501",
abstract = "We design learning algorithms for synthesizing
invariants using Horn implication counterexamples
(Horn-ICE), extending the ICE-learning model. In
particular, we describe a decision-tree learning
algorithm that learns from nonlinear Horn-ICE samples,
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "131",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Vazou:2018:GLT,
author = "Niki Vazou and {\'E}ric Tanter and David {Van Horn}",
title = "Gradual liquid type inference",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "132:1--132:25",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276502",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276502",
abstract = "Refinement types allow for lightweight program
verification by enriching types with logical
predicates. Liquid typing provides a decidable
refinement inference mechanism that is convenient but
subject to two major issues: (1) inference is global
and \ldots{}",
acknowledgement = ack-nhfb,
articleno = "132",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Feltey:2018:CCF,
author = "Daniel Feltey and Ben Greenman and Christophe
Scholliers and Robert Bruce Findler and Vincent
St-Amour",
title = "Collapsible contracts: fixing a pathology of gradual
typing",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "133:1--133:27",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276503",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276503",
abstract = "The promise of gradual typing is that programmers
should get the best of both worlds: the static
guarantees of static types, and the dynamic flexibility
of untyped programming. This is an enticing benefit,
but one that, in practice, may carry \ldots{}",
acknowledgement = ack-nhfb,
articleno = "133",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Williams:2018:RCB,
author = "Jack Williams and J. Garrett Morris and Philip
Wadler",
title = "The root cause of blame: contracts for intersection
and union types",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "134:1--134:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276504",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276504",
abstract = "Gradual typing has emerged as the tonic for
programmers with a thirst for a blend of static and
dynamic typing. Contracts provide a lightweight form of
gradual typing as they can be implemented as a library,
rather than requiring a gradual type system. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "134",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Abdulla:2018:OSM,
author = "Parosh Aziz Abdulla and Mohamed Faouzi Atig and Bengt
Jonsson and Tuan Phong Ngo",
title = "Optimal stateless model checking under the
release-acquire semantics",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "135:1--135:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276505",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276505",
abstract = "We present a framework for the efficient application
of stateless model checking (SMC) to concurrent
programs running under the Release-Acquire (RA)
fragment of the C/C++11 memory model. Our approach is
based on exploring the possible program orders,
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "135",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ou:2018:TUC,
author = "Peizhao Ou and Brian Demsky",
title = "Towards understanding the costs of avoiding
out-of-thin-air results",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "136:1--136:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276506",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276506",
abstract = "Eliminating so-called ``out-of-thin-air'' (OOTA)
results is an open problem with many existing
programming language memory models including Java, C,
and C++. OOTA behaviors are problematic in that they
break both formal and informal modular reasoning
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "136",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Raad:2018:PSW,
author = "Azalea Raad and Viktor Vafeiadis",
title = "Persistence semantics for weak memory: integrating
epoch persistency with the {TSO} memory model",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "137:1--137:27",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276507",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276507",
abstract = "Emerging non-volatile memory (NVM) technologies
promise the durability of disks with the performance of
volatile memory (RAM). To describe the persistency
guarantees of NVM, several memory persistency models
have been proposed in the literature. However,.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "137",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Vedurada:2018:IRO,
author = "Jyothi Vedurada and V. Krishna Nandivada",
title = "Identifying refactoring opportunities for replacing
type code with subclass and state",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "138:1--138:28",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276508",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276508",
abstract = "Refactoring is a program transformation that
restructures existing code without altering its
behaviour and is a key practice in popular software
design movements, such as Agile. Identification of
potential refactoring opportunities is an important
step \ldots{}",
acknowledgement = ack-nhfb,
articleno = "138",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Szabo:2018:ILB,
author = "Tam{\'a}s Szab{\'o} and G{\'a}bor Bergmann and
Sebastian Erdweg and Markus Voelter",
title = "Incrementalizing lattice-based program analyses in
{Datalog}",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "139:1--139:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276509",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276509",
abstract = "Program analyses detect errors in code, but when code
changes frequently as in an IDE, repeated re-analysis
from-scratch is unnecessary: It leads to poor
performance unless we give up on precision and recall.
Incremental program analysis promises to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "139",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jeon:2018:PSP,
author = "Minseok Jeon and Sehun Jeong and Hakjoo Oh",
title = "Precise and scalable points-to analysis via
data-driven context tunneling",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "140:1--140:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276510",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276510",
abstract = "We present context tunneling, a new approach for
making k -limited context-sensitive points-to analysis
precise and scalable. As context-sensitivity holds the
key to the development of precise and scalable
points-to analysis, a variety of techniques for
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "140",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Li:2018:PGC,
author = "Yue Li and Tian Tan and Anders M{\o}ller and Yannis
Smaragdakis",
title = "Precision-guided context sensitivity for pointer
analysis",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "141:1--141:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276511",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276511",
abstract = "Context sensitivity is an essential technique for
ensuring high precision in Java pointer analyses. It
has been observed that applying context sensitivity
partially, only on a select subset of the methods, can
improve the balance between analysis \ldots{}",
acknowledgement = ack-nhfb,
articleno = "141",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Rama:2018:ROS,
author = "Girish Maskeri Rama and Raghavan Komondoor and
Himanshu Sharma",
title = "Refinement in object-sensitivity points-to analysis
via slicing",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "142:1--142:27",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276512",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276512",
abstract = "Object sensitivity analysis is a well-known form of
context-sensitive points-to analysis. This analysis is
parameterized by a bound on the names of symbolic
objects associated with each allocation site. In this
paper, we propose a novel approach based \ldots{}",
acknowledgement = ack-nhfb,
articleno = "142",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cohen:2018:EDS,
author = "Nachshon Cohen",
title = "Every data structure deserves lock-free memory
reclamation",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "143:1--143:24",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276513",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276513",
abstract = "Memory-management support for lock-free data
structures is well known to be a tough problem. Recent
work has successfully reduced the overhead of such
schemes. However, applying memory-management support to
a data structure remains complex and, in many
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "143",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Blackshear:2018:RCS,
author = "Sam Blackshear and Nikos Gorogiannis and Peter W.
O'Hearn and Ilya Sergey",
title = "{RacerD}: compositional static race detection",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "144:1--144:28",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276514",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276514",
abstract = "Automatic static detection of data races is one of the
most basic problems in reasoning about concurrency. We
present RacerD-a static program analysis for detecting
data races in Java programs which is fast, can scale to
large code, and has proven \ldots{}",
acknowledgement = ack-nhfb,
articleno = "144",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mathur:2018:WHA,
author = "Umang Mathur and Dileep Kini and Mahesh Viswanathan",
title = "What happens --- after the first race? {Enhancing} the
predictive power of happens-before based dynamic race
detection",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "145:1--145:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276515",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276515",
abstract = "Dynamic race detection is the problem of determining
if an observed program execution reveals the presence
of a data race in a program. The classical approach to
solving this problem is to detect if there is a pair of
conflicting memory accesses that \ldots{}",
acknowledgement = ack-nhfb,
articleno = "145",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kalhauge:2018:SDP,
author = "Christian Gram Kalhauge and Jens Palsberg",
title = "Sound deadlock prediction",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "146:1--146:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276516",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276516",
abstract = "For a concurrent program, a prediction tool maps the
history of a single run to a prediction of bugs in an
exponential number of other runs. If all those bugs can
occur, then the tool is sound. This is the case for
some data race tools like RVPredict, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "146",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pradel:2018:DLA,
author = "Michael Pradel and Koushik Sen",
title = "{DeepBugs}: a learning approach to name-based bug
detection",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "147:1--147:25",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276517",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276517",
abstract = "Natural language elements in source code, e.g., the
names of variables and functions, convey useful
information. However, most existing bug detection tools
ignore this information and therefore miss some classes
of bugs. The few existing name-based bug \ldots{}",
acknowledgement = ack-nhfb,
articleno = "147",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barowy:2018:EAF,
author = "Daniel W. Barowy and Emery D. Berger and Benjamin
Zorn",
title = "{ExceLint}: automatically finding spreadsheet formula
errors",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "148:1--148:26",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276518",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276518",
abstract = "Spreadsheets are one of the most widely used
programming environments, and are widely deployed in
domains like finance where errors can have catastrophic
consequences. We present a static analysis specifically
designed to find spreadsheet formula \ldots{}",
acknowledgement = ack-nhfb,
articleno = "148",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bornholt:2018:FCE,
author = "James Bornholt and Emina Torlak",
title = "Finding code that explodes under symbolic evaluation",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "149:1--149:26",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276519",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276519",
abstract = "Solver-aided tools rely on symbolic evaluation to
reduce programming tasks, such as verification and
synthesis, to satisfiability queries. Many reusable
symbolic evaluation engines are now available as part
of solver-aided languages and frameworks, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "149",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Padhi:2018:FFS,
author = "Saswat Padhi and Prateek Jain and Daniel Perelman and
Oleksandr Polozov and Sumit Gulwani and Todd Millstein",
title = "{FlashProfile}: a framework for synthesizing data
profiles",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "150:1--150:28",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276520",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276520",
abstract = "We address the problem of learning a syntactic profile
for a collection of strings, i.e. a set of regex-like
patterns that succinctly describe the syntactic
variations in the strings. Real-world datasets,
typically curated from multiple sources, often
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "150",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Degenbaev:2018:CCG,
author = "Ulan Degenbaev and Jochen Eisinger and Kentaro Hara
and Marcel Hlopko and Michael Lippautz and Hannes Payer",
title = "Cross-component garbage collection",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "151:1--151:24",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276521",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276521",
abstract = "Embedding a modern language runtime as a component in
a larger software system is popular these days.
Communication between these systems often requires
keeping references to each others' objects. In this
paper we present and discuss the problem of \ldots{}",
acknowledgement = ack-nhfb,
articleno = "151",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Burckhardt:2018:RCC,
author = "Sebastian Burckhardt and Tim Coppieters",
title = "Reactive caching for composed services: polling at the
speed of push",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "152:1--152:28",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276522",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276522",
abstract = "Sometimes, service clients repeat requests in a
polling loop in order to refresh their view. However,
such polling may be slow to pick up changes, or may
increase the load unacceptably, in particular for
composed services that disperse over many \ldots{}",
acknowledgement = ack-nhfb,
articleno = "152",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cohen:2018:OOR,
author = "Nachshon Cohen and David T. Aksun and James R.
Larus",
title = "Object-oriented recovery for non-volatile memory",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "153:1--153:22",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276523",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276523",
abstract = "New non-volatile memory (NVM) technologies enable
direct, durable storage of data in an application's
heap. Durable, randomly accessible memory facilitates
the construction of applications that do not lose data
at system shutdown or power failure. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "153",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Dietz:2018:SMS,
author = "Will Dietz and Vikram Adve",
title = "Software multiplexing: share your libraries and
statically link them too",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "154:1--154:26",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276524",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276524",
abstract = "We describe a compiler strategy we call `` Software
Multiplexing '' that achieves many benefits of both
statically linked and dynamically linked libraries, and
adds some additional advantages. Specifically, it
achieves the code size benefits of dynamically
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "154",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2018:RPS,
author = "Yuepeng Wang and Xinyu Wang and Isil Dillig",
title = "Relational program synthesis",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "155:1--155:27",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276525",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276525",
abstract = "This paper proposes relational program synthesis, a
new problem that concerns synthesizing one or more
programs that collectively satisfy a relational
specification. As a dual of relational program
verification, relational program synthesis is an
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "155",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bielik:2018:RRL,
author = "Pavol Bielik and Marc Fischer and Martin Vechev",
title = "Robust relational layout synthesis from examples for
{Android}",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "156:1--156:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276526",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276526",
abstract = "We present a novel approach for synthesizing robust
relational layouts from examples. Given an application
design consisting of a set of views and their location
on the screen, we synthesize a relational layout that
when rendered, places the components \ldots{}",
acknowledgement = ack-nhfb,
articleno = "156",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2018:SSR,
author = "Chenglong Wang and Alvin Cheung and Rastislav Bodik",
title = "Speeding up symbolic reasoning for relational
queries",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "157:1--157:25",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276527",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276527",
abstract = "The ability to reason about relational queries plays
an important role across many types of database
applications, such as test data generation, query
equivalence checking, and computer-assisted query
authoring. Unfortunately, symbolic reasoning about
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "157",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lee:2018:ADC,
author = "Junho Lee and Dowon Song and Sunbeom So and Hakjoo
Oh",
title = "Automatic diagnosis and correction of logical errors
for functional programming assignments",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "158:1--158:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276528",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276528",
abstract = "We present FixML, a system for automatically
generating feedback on logical errors in functional
programming assignments. As functional languages have
been gaining popularity, the number of students
enrolling functional programming courses has increased
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "158",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Desai:2018:CPT,
author = "Ankush Desai and Amar Phanishayee and Shaz Qadeer and
Sanjit A. Seshia",
title = "Compositional programming and testing of dynamic
distributed systems",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "159:1--159:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276529",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276529",
abstract = "A real-world distributed system is rarely implemented
as a standalone monolithic system. Instead, it is
composed of multiple independent interacting components
that together ensure the desired system-level
specification. One can scale systematic testing
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "159",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ozkan:2018:RTD,
author = "Burcu Kulahcioglu Ozkan and Rupak Majumdar and Filip
Niksic and Mitra Tabaei Befrouei and Georg
Weissenbacher",
title = "Randomized testing of distributed systems with
probabilistic guarantees",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "160:1--160:28",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276530",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276530",
abstract = "Several recently proposed randomized testing tools for
concurrent and distributed systems come with
theoretical guarantees on their success. The key to
these guarantees is a notion of bug depth-the minimum
length of a sequence of events sufficient to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "160",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Selakovic:2018:TGH,
author = "Marija Selakovic and Michael Pradel and Rezwana Karim
and Frank Tip",
title = "Test generation for higher-order functions in dynamic
languages",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "161:1--161:27",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276531",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276531",
abstract = "Test generation has proven to provide an effective way
of identifying programming errors. Unfortunately,
current test generation techniques are challenged by
higher-order functions in dynamic languages, such as
JavaScript functions that receive \ldots{}",
acknowledgement = ack-nhfb,
articleno = "161",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Alimadadi:2018:FBP,
author = "Saba Alimadadi and Di Zhong and Magnus Madsen and
Frank Tip",
title = "Finding broken promises in asynchronous {JavaScript}
programs",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "162:1--162:26",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276532",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276532",
abstract = "Recently, promises were added to ECMAScript 6, the
JavaScript standard, in order to provide better support
for the asynchrony that arises in user interfaces,
network communication, and non-blocking I/O. Using
promises, programmers can avoid common pitfalls of
event-driven programming such as event races and the
deeply nested counterintuitive control ow referred to
as ``callback hell''. Unfortunately, promises have
complex semantics and the intricate control- and
data-flow present in promise-based code hinders program
comprehension and can easily lead to bugs. The promise
graph was proposed as a graphical aid for understanding
and debugging promise-based code. However, it did not
cover all promise-related features in ECMAScript 6, and
did not present or evaluate any technique for
constructing the promise graphs. In this paper, we
extend the notion of promise graphs to include all
promise-related features in ECMAScript 6, including
default reactions, exceptions, and the synchronization
operations race and all. Furthermore, we report on the
construction and evaluation of PromiseKeeper, which
performs a dynamic analysis to create promise graphs
and infer common promise anti-patterns. We evaluate
PromiseKeeper by applying it to 12 open source
promise-based Node.js applications. Our results suggest
that the promise graphs constructed by PromiseKeeper
can provide developers with valuable information about
occurrences of common anti-patterns in their
promise-based code, and that promise graphs can be
constructed with acceptable run-time overhead.",
acknowledgement = ack-nhfb,
articleno = "162",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Boston:2018:LVA,
author = "Brett Boston and Zoe Gong and Michael Carbin",
title = "{Leto}: verifying application-specific hardware fault
tolerance with programmable execution models",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "163:1--163:30",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276533",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276533",
abstract = "Researchers have recently designed a number of
application-specific fault tolerance mechanisms that
enable applications to either be naturally resilient to
errors or include additional detection and correction
steps that can bring the overall execution \ldots{}",
acknowledgement = ack-nhfb,
articleno = "163",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kaki:2018:SRT,
author = "Gowtham Kaki and Kapil Earanky and KC Sivaramakrishnan
and Suresh Jagannathan",
title = "Safe replication through bounded concurrency
verification",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "164:1--164:27",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276534",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276534",
abstract = "High-level data types are often associated with
semantic invariants that must be preserved by any
correct implementation. While having implementations
enforce strong guarantees such as linearizability or
serializability can often be used to prevent \ldots{}",
acknowledgement = ack-nhfb,
articleno = "164",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sousa:2018:VTW,
author = "Marcelo Sousa and Isil Dillig and Shuvendu K.
Lahiri",
title = "Verified three-way program merge",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "165:1--165:29",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276535",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276535",
abstract = "Even though many programmers rely on 3-way merge tools
to integrate changes from different branches, such
tools can introduce subtle bugs in the integration
process. This paper aims to mitigate this problem by
defining a semantic notion of conflict-. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "165",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhu:2018:CRS,
author = "Fengmin Zhu and Fei He",
title = "Conflict resolution for structured merge via version
space algebra",
journal = j-PACMPL,
volume = "2",
number = "OOPSLA",
pages = "166:1--166:25",
month = oct,
year = "2018",
DOI = "https://doi.org/10.1145/3276536",
bibdate = "Sat Aug 8 07:56:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3276536",
abstract = "Resolving conflicts is the main challenge for software
merging. The existing merge tools usually rely on the
developer to manually resolve conflicts. This is of
course inefficient. We propose an interactive approach
for resolving merge conflicts. To the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "166",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cavallo:2019:HIT,
author = "Evan Cavallo and Robert Harper",
title = "Higher inductive types in cubical computational type
theory",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "1:1--1:27",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290314",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290314",
abstract = "Homotopy type theory proposes higher inductive types
(HITs) as a means of defining and reasoning about
inductively-generated objects with higher-dimensional
structure. As with the univalence axiom, however,
homotopy type theory does not specify the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "1",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kaposi:2019:CQI,
author = "Ambrus Kaposi and Andr{\'a}s Kov{\'a}cs and Thorsten
Altenkirch",
title = "Constructing quotient inductive-inductive types",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "2:1--2:24",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290315",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290315",
abstract = "Quotient inductive-inductive types (QIITs) generalise
inductive types in two ways: a QIIT can have more than
one sort and the later sorts can be indexed over the
previous ones. In addition, equality constructors are
also allowed. We work in a setting \ldots{}",
acknowledgement = ack-nhfb,
articleno = "2",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gilbert:2019:DPI,
author = "Ga{\"e}tan Gilbert and Jesper Cockx and Matthieu
Sozeau and Nicolas Tabareau",
title = "Definitional proof-irrelevance without {K}",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "3:1--3:28",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290316",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290316",
abstract = "Definitional equality-or conversion-for a type theory
with a decidable type checking is the simplest tool to
prove that two objects are the same, letting the system
decide just using computation. Therefore, the more
things are equal by conversion, the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "3",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mogelberg:2019:BPT,
author = "Rasmus Ejlers M{\o}gelberg and Niccol{\`o} Veltri",
title = "Bisimulation as path type for guarded recursive
types",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "4:1--4:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290317",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290317",
abstract = "In type theory, coinductive types are used to
represent processes, and are thus crucial for the
formal verification of non-terminating reactive
programs in proof assistants based on type theory, such
as Coq and Agda. Currently, programming and reasoning
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhang:2019:ASE,
author = "Yizhou Zhang and Andrew C. Myers",
title = "Abstraction-safe effect handlers via tunneling",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "5:1--5:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290318",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290318",
abstract = "Algebraic effect handlers offer a unified approach to
expressing control-flow transfer idioms such as
exceptions, iteration, and async/await. Unfortunately,
previous attempts to make these handlers type-safe have
failed to support the fundamental \ldots{}",
acknowledgement = ack-nhfb,
articleno = "5",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Biernacki:2019:AAE,
author = "Dariusz Biernacki and Maciej Pir{\'o}g and Piotr
Polesiuk and Filip Sieczkowski",
title = "Abstracting algebraic effects",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "6:1--6:28",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290319",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290319",
abstract = "Proposed originally by Plotkin and Pretnar, algebraic
effects and their handlers are a leading-edge approach
to computational effects: exceptions, mutable state,
nondeterminism, and such. Appreciated for their
elegance and expressiveness, they are now \ldots{}",
acknowledgement = ack-nhfb,
articleno = "6",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{DalLago:2019:ITR,
author = "Ugo {Dal Lago} and Marc de Visme and Damiano Mazza and
Akira Yoshimizu",
title = "Intersection types and runtime errors in the
pi-calculus",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "7:1--7:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290320",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290320",
abstract = "We introduce a type system for the $ \pi $ -calculus
which is designed to guarantee that typable processes
are well-behaved, namely they never produce a run-time
error and, even if they may diverge, there is always a
chance for them to ``finish their work'', \ldots{}",
acknowledgement = ack-nhfb,
articleno = "7",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Dudenhefner:2019:PAU,
author = "Andrej Dudenhefner and Jakob Rehof",
title = "Principality and approximation under dimensional
bound",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "8:1--8:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290321",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290321",
abstract = "We develop an algebraic and algorithmic theory of
principality for the recently introduced framework of
intersection type calculi with dimensional bound. The
theory enables inference of principal type information
under dimensional bound, it provides an \ldots{}",
acknowledgement = ack-nhfb,
articleno = "8",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Dunfield:2019:SCB,
author = "Joshua Dunfield and Neelakantan R. Krishnaswami",
title = "Sound and complete bidirectional typechecking for
higher-rank polymorphism with existentials and indexed
types",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "9:1--9:28",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290322",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290322",
abstract = "Bidirectional typechecking, in which terms either
synthesize a type or are checked against a known type,
has become popular for its applicability to a variety
of type systems, its error reporting, and its ease of
implementation. Following principles \ldots{}",
acknowledgement = ack-nhfb,
articleno = "9",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Crary:2019:FAM,
author = "Karl Crary",
title = "Fully abstract module compilation",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "10:1--10:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290323",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290323",
abstract = "We give a translation suitable for compilation of
modern module calculi supporting sealing, generativity,
translucent signatures, applicative functors,
higher-order functors and/or first-class modules. Ours
is the first module-compilation translation \ldots{}",
acknowledgement = ack-nhfb,
articleno = "10",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Park:2019:PSM,
author = "Gyunghee Park and Jaemin Hong and Guy L. {Steele Jr.}
and Sukyoung Ryu",
title = "Polymorphic symmetric multiple dispatch with
variance",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "11:1--11:28",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290324",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290324",
abstract = "Many object-oriented languages provide method
overloading, which allows multiple method declarations
with the same name. For a given method invocation, in
order to choose what method declaration to invoke,
multiple dispatch considers the run-time types
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "11",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Morris:2019:AED,
author = "J. Garrett Morris and James McKinna",
title = "Abstracting extensible data types: or, rows by any
other name",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "12:1--12:28",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290325",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290325",
abstract = "We present a novel typed language for extensible data
types, generalizing and abstracting existing systems of
row types and row polymorphism. Extensible data types
are a powerful addition to traditional functional
programming languages, capturing ideas \ldots{}",
acknowledgement = ack-nhfb,
articleno = "12",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2019:TGW,
author = "Di Wang and Jan Hoffmann",
title = "Type-guided worst-case input generation",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "13:1--13:30",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290326",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290326",
abstract = "This paper presents a novel technique for type-guided
worst-case input generation for functional programs.
The technique builds on automatic amortized resource
analysis (AARA), a type-based technique for deriving
symbolic bounds on the resource usage of \ldots{}",
acknowledgement = ack-nhfb,
articleno = "13",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Omar:2019:LFP,
author = "Cyrus Omar and Ian Voysey and Ravi Chugh and Matthew
A. Hammer",
title = "Live functional programming with typed holes",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "14:1--14:32",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290327",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290327",
abstract = "Live programming environments aim to provide
programmers (and sometimes audiences) with continuous
feedback about a program's dynamic behavior as it is
being edited. The problem is that programming languages
typically assign dynamic meaning only to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "14",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{New:2019:GTT,
author = "Max S. New and Daniel R. Licata and Amal Ahmed",
title = "Gradual type theory",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "15:1--15:31",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290328",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290328",
abstract = "Gradually typed languages are designed to support both
dynamically typed and statically typed programming
styles while preserving the benefits of each. While
existing gradual type soundness theorems for these
languages aim to show that type-based \ldots{}",
acknowledgement = ack-nhfb,
articleno = "15",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Castagna:2019:GTN,
author = "Giuseppe Castagna and Victor Lanvin and Tommaso
Petrucciani and Jeremy G. Siek",
title = "Gradual typing: a new perspective",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "16:1--16:32",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290329",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290329",
abstract = "We define a new, more semantic interpretation of
gradual types and use it to ``gradualize'' two forms of
polymorphism: subtyping polymorphism and implicit
parametric polymorphism. In particular, we use the new
interpretation to define three gradual type \ldots{}",
acknowledgement = ack-nhfb,
articleno = "16",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Toro:2019:GPR,
author = "Mat{\'\i}as Toro and Elizabeth Labrada and {\'E}ric
Tanter",
title = "Gradual parametricity, revisited",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "17:1--17:30",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290330",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290330",
abstract = "Bringing the benefits of gradual typing to a language
with parametric polymorphism like System F, while
preserving relational parametricity, has proven
extremely challenging: first attempts were formulated a
decade ago, and several designs were recently
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "17",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Miyazaki:2019:DTI,
author = "Yusuke Miyazaki and Taro Sekiyama and Atsushi
Igarashi",
title = "Dynamic type inference for gradual {Hindley--Milner}
typing",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "18:1--18:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290331",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290331",
abstract = "Garcia and Cimini study a type inference problem for
the ITGL, an implicitly and gradually typed language
with let-polymorphism, and develop a sound and complete
inference algorithm for it. Soundness and completeness
mean that, if the algorithm succeeds, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "18",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Skorstengaard:2019:SEW,
author = "Lau Skorstengaard and Dominique Devriese and Lars
Birkedal",
title = "{StkTokens}: enforcing well-bracketed control flow and
stack encapsulation using linear capabilities",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "19:1--19:28",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290332",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290332",
abstract = "We propose and study StkTokens: a new calling
convention that provably enforces well-bracketed
control flow and local state encapsulation on a
capability machine. The calling convention is based on
linear capabilities: a type of capabilities that are
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "19",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kavvos:2019:MCI,
author = "G. A. Kavvos",
title = "Modalities, cohesion, and information flow",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "20:1--20:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290333",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290333",
abstract = "It is informally understood that the purpose of modal
type constructors in programming calculi is to control
the flow of information between types. In order to lend
rigorous support to this idea, we study the category of
classified sets, a variant of a \ldots{}",
acknowledgement = ack-nhfb,
articleno = "20",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hirschowitz:2019:FMS,
author = "Tom Hirschowitz",
title = "Familial monads and structural operational semantics",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "21:1--21:28",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290334",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290334",
abstract = "We propose a categorical framework for structural
operational semantics, in which we prove that under
suitable hypotheses bisimilarity is a congruence. We
then refine the framework to prove soundness of
bisimulation up to context, an efficient method
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "21",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Blanchette:2019:BBN,
author = "Jasmin Christian Blanchette and Lorenzo Gheri and
Andrei Popescu and Dmitriy Traytel",
title = "Bindings as bounded natural functors",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "22:1--22:34",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290335",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290335",
abstract = "We present a general framework for specifying and
reasoning about syntax with bindings. Abstract binder
types are modeled using a universe of functors on sets,
subject to a number of operations that can be used to
construct complex binding patterns and \ldots{}",
acknowledgement = ack-nhfb,
articleno = "22",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mellies:2019:CCS,
author = "Paul-Andr{\'e} Mellies",
title = "Categorical combinatorics of scheduling and
synchronization in game semantics",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "23:1--23:30",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290336",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290336",
abstract = "Game semantics is the art of interpreting types as
games and programs as strategies interacting in space
and time with their environment. In order to reflect
the interactive behavior of programs, strategies are
required to follow specific scheduling \ldots{}",
acknowledgement = ack-nhfb,
articleno = "23",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kokke:2019:BLT,
author = "Wen Kokke and Fabrizio Montesi and Marco Peressotti",
title = "Better late than never: a fully-abstract semantics for
classical processes",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "24:1--24:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290337",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290337",
abstract = "We present Hypersequent Classical Processes (HCP), a
revised interpretation of the ``Proofs as Processes''
correspondence between linear logic and the $ \pi
$-calculus initially proposed by Abramsky [1994], and
later developed by Bellin and Scott [1994], Caires
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "24",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bonchi:2019:DAL,
author = "Filippo Bonchi and Joshua Holland and Robin Piedeleu
and Pawe{\l} Soboci{\'n}ski and Fabio Zanasi",
title = "Diagrammatic algebra: from linear to concurrent
systems",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "25:1--25:28",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290338",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290338",
abstract = "We introduce the resource calculus, a string
diagrammatic language for concurrent systems.
Significantly, it uses the same syntax and operational
semantics as the signal flow calculus --- an algebraic
formalism for signal flow graphs, which is a \ldots{}",
acknowledgement = ack-nhfb,
articleno = "25",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Baldan:2019:FGC,
author = "Paolo Baldan and Barbara K{\"o}nig and Christina
Mika-Michalski and Tommaso Padoan",
title = "Fixpoint games on continuous lattices",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "26:1--26:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290339",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290339",
abstract = "Many analysis and verifications tasks, such as static
program analyses and model-checking for temporal
logics, reduce to the solution of systems of equations
over suitable lattices. Inspired by recent work on
lattice-theoretic progress measures, we \ldots{}",
acknowledgement = ack-nhfb,
articleno = "26",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Castellan:2019:TSS,
author = "Simon Castellan and Nobuko Yoshida",
title = "Two sides of the same coin: session types and game
semantics: a synchronous side and an asynchronous
side",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "27:1--27:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290340",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290340",
abstract = "Game semantics and session types are two
formalisations of the same concept: message-passing
open programs following certain protocols. Game
semantics represents protocols as games, and programs
as strategies; while session types specify protocols,
and \ldots{}",
acknowledgement = ack-nhfb,
articleno = "27",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Fowler:2019:EAS,
author = "Simon Fowler and Sam Lindley and J. Garrett Morris and
S{\'a}ra Decova",
title = "Exceptional asynchronous session types: session types
without tiers",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "28:1--28:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290341",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290341",
abstract = "Session types statically guarantee that communication
complies with a protocol. However, most accounts of
session typing do not account for failure, which means
they are of limited use in real
applications---especially distributed
applications---where \ldots{}",
acknowledgement = ack-nhfb,
articleno = "28",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Castro:2019:DPU,
author = "David Castro and Raymond Hu and Sung-Shik Jongmans and
Nicholas Ng and Nobuko Yoshida",
title = "Distributed programming using role-parametric session
types in {Go}: statically-typed endpoint {APIs} for
dynamically-instantiated communication structures",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "29:1--29:30",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290342",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290342",
abstract = "This paper presents a framework for the static
specification and safe programming of message passing
protocols where the number and kinds of participants
are dynamically instantiated. We develop the first
theory of distributed multiparty session types (MPST)
to support parameterised protocols with indexed roles
our framework statically infers the different kinds of
participants induced by a protocol definition as role
variants, and produces decoupled endpoint projections
of the protocol onto each variant. This enables safe
MPST-based programming of the parameterised endpoints
in distributed settings: each endpoint can be
implemented separately by different programmers, using
different techniques (or languages). We prove the
decidability of role variant inference and
well-formedness checking, and the correctness of
projection.\par
We implement our theory as a toolchain for programming
such role-parametric MPST protocols in Go. Our approach
is to generate API families of lightweight, protocol-
and variant-specific type wrappers for I/O. The APIs
ensure a well-typed Go endpoint program (by native Go
type checking) will perform only compliant I/O actions
w.r.t. the source protocol. We leverage the
abstractions of MPST to support the specification and
implementation of Go applications involving multiple
channels, possibly over mixed transports (e.g., Go
channels, TCP), and channel passing via a unified
programming interface. We evaluate the applicability
and run-time performance of our generated APIs using
microbenchmarks and real-world applications.",
acknowledgement = ack-nhfb,
articleno = "29",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Scalas:2019:LMM,
author = "Alceste Scalas and Nobuko Yoshida",
title = "Less is more: multiparty session types revisited",
journal = j-PACMPL,
volume = "3",
number = "POPL",
pages = "30:1--30:29",
month = jan,
year = "2019",
DOI = "https://doi.org/10.1145/3290343",
bibdate = "Fri Aug 7 17:39:12 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3290343",
abstract = "Multiparty Session Types (MPST) are a typing
discipline ensuring that a message-passing process
implements a multiparty session protocol, without
errors. In this paper, we propose a new, generalised
MPST theory. Our contribution is fourfold. (1) We
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "30",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Flatt:2019:RRC,
author = "Matthew Flatt and Caner Derici and R. Kent Dybvig and
Andrew W. Keep and Gustavo E. Massaccesi and Sarah
Spall and Sam Tobin-Hochstadt and Jon Zeppieri",
title = "Rebuilding {Racket} on {Chez Scheme} (experience
report)",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "78:1--78:15",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341642",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341642",
abstract = "We rebuilt Racket on Chez Scheme, and it works well
--- as long as we're allowed a few patches to Chez
Scheme. DrRacket runs, the Racket distribution can
build itself, and nearly all of the core Racket test
suite passes. Maintainability and performance of the
resulting implementation are good, although some work
remains to improve end-to-end performance. The least
predictable part of our effort was how big the
differences between Racket and Chez Scheme would turn
out to be and how we would manage those differences. We
expect Racket on Chez Scheme to become the main Racket
implementation, and we encourage other language
implementers to consider Chez Scheme as a target
virtual machine.",
acknowledgement = ack-nhfb,
articleno = "78",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cong:2019:CCW,
author = "Youyou Cong and Leo Osvald and Gr{\'e}gory M. Essertel
and Tiark Rompf",
title = "Compiling with continuations, or without? {Whatever}",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "79:1--79:28",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341643",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341643",
abstract = "What makes a good compiler IR? In the context of
functional languages, there has been an extensive
debate on the advantages and disadvantages of
continuation-passing-style (CPS). The consensus seems
to be that some form of explicit continuations is
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "79",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Morihata:2019:LCA,
author = "Akimasa Morihata",
title = "{Lambda} calculus with algebraic simplification for
reduction parallelization by equational reasoning",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "80:1--80:25",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341644",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341644",
abstract = "Parallel reduction is a major component of parallel
programming and widely used for summarization and
aggregation. It is not well understood, however, what
sorts of nontrivial summarizations can be implemented
as parallel reductions. This paper develops \ldots{}",
acknowledgement = ack-nhfb,
articleno = "80",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Muller:2019:FRP,
author = "Stefan K. Muller and Sam Westrick and Umut A. Acar",
title = "Fairness in responsive parallelism",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "81:1--81:30",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341685",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341685",
abstract = "Research on parallel computing has historically
revolved around compute-intensive applications drawn
from traditional areas such as high-performance
computing. With the growing availability and usage of
multicore chips, applications of parallel \ldots{}",
acknowledgement = ack-nhfb,
articleno = "81",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Delaware:2019:NCC,
author = "Benjamin Delaware and Sorawit Suriyakarn and
Cl{\'e}ment Pit-Claudel and Qianchuan Ye and Adam
Chlipala",
title = "{Narcissus}: correct-by-construction derivation of
decoders and encoders from binary formats",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "82:1--82:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341686",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341686",
abstract = "It is a neat result from functional programming that
libraries of parser combinators can support rapid
construction of decoders for quite a range of formats.
With a little more work, the same combinator program
can denote both a decoder and an encoder. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "82",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Paraskevopoulou:2019:CCS,
author = "Zoe Paraskevopoulou and Andrew W. Appel",
title = "Closure conversion is safe for space",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "83:1--83:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341687",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341687",
abstract = "We formally prove that closure conversion with flat
environments for CPS lambda calculus is correct
(preserves semantics) and safe for time and space,
meaning that produced code preserves the time and space
required for the execution of the source \ldots{}",
acknowledgement = ack-nhfb,
articleno = "83",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{VanStrydonck:2019:LCF,
author = "Thomas {Van Strydonck} and Frank Piessens and
Dominique Devriese",
title = "Linear capabilities for fully abstract compilation of
separation-logic-verified code",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "84:1--84:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341688",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341688",
abstract = "Separation logic is a powerful program logic for the
static modular verification of imperative programs.
However, dynamic checking of separation logic contracts
on the boundaries between verified and untrusted
modules is hard, because it requires one to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "84",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Patterson:2019:NCC,
author = "Daniel Patterson and Amal Ahmed",
title = "The next 700 compiler correctness theorems (functional
pearl)",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "85:1--85:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341689",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341689",
abstract = "Compiler correctness is an old problem, with results
stretching back beyond the last half-century. Founding
the field, John McCarthy and James Painter set out to
build a ``completely trustworthy compiler''. And yet,
until quite recently, even despite \ldots{}",
acknowledgement = ack-nhfb,
articleno = "85",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sozeau:2019:ERH,
author = "Matthieu Sozeau and Cyprien Mangin",
title = "Equations reloaded: high-level dependently-typed
functional programming and proving in {Coq}",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "86:1--86:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341690",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341690",
abstract = "Equations is a plugin for the Coq proof assistant
which provides a notation for defining programs by
dependent pattern-matching and structural or
well-founded recursion. It additionally derives useful
high-level proof principles for demonstrating
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "86",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Vezzosi:2019:CAD,
author = "Andrea Vezzosi and Anders M{\"o}rtberg and Andreas
Abel",
title = "Cubical {Agda}: a dependently typed programming
language with univalence and higher inductive types",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "87:1--87:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341691",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341691",
abstract = "Proof assistants based on dependent type theory
provide expressive languages for both programming and
proving within the same system. However, all of the
major implementations lack powerful extensionality
principles for reasoning about equality, such as
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "87",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Eremondi:2019:ANG,
author = "Joseph Eremondi and {\'E}ric Tanter and Ronald
Garcia",
title = "Approximate normalization for gradual dependent
types",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "88:1--88:30",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341692",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341692",
abstract = "Dependent types help programmers write highly reliable
code. However, this reliability comes at a cost: it can
be challenging to write new prototypes in (or migrate
old code to) dependently-typed programming languages.
Gradual typing makes static type \ldots{}",
acknowledgement = ack-nhfb,
articleno = "88",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Algehed:2019:SNP,
author = "Maximilian Algehed and Jean-Philippe Bernardy",
title = "Simple noninterference from parametricity",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "89:1--89:22",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341693",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341693",
abstract = "In this paper we revisit the connection between
parametricity and noninterference. Our primary
contribution is a proof of noninterference for a
polyvariant variation of the Dependency Core Calculus
of in the Calculus of Constructions. The proof is
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "89",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mokhov:2019:SAF,
author = "Andrey Mokhov and Georgy Lukyanov and Simon Marlow and
Jeremie Dimino",
title = "Selective applicative functors",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "90:1--90:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341694",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341694",
abstract = "Applicative functors and monads have conquered the
world of functional programming by providing general
and powerful ways of describing effectful computations
using pure functions. Applicative functors provide a
way to compose independent effects that \ldots{}",
acknowledgement = ack-nhfb,
articleno = "90",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bottu:2019:CTC,
author = "Gert-Jan Bottu and Ningning Xie and Koar Marntirosian
and Tom Schrijvers",
title = "Coherence of type class resolution",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "91:1--91:28",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341695",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341695",
abstract = "Elaboration-based type class resolution, as found in
languages like Haskell, Mercury and PureScript, is
generally nondeterministic: there can be multiple ways
to satisfy a wanted constraint in terms of global
instances and locally given constraints. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "91",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Qu:2019:RCA,
author = "Weihao Qu and Marco Gaboardi and Deepak Garg",
title = "Relational cost analysis for functional-imperative
programs",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "92:1--92:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341696",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341696",
abstract = "Relational cost analysis aims at formally establishing
bounds on the difference in the evaluation costs of two
programs. As a particular case, one can also use
relational cost analysis to establish bounds on the
difference in the evaluation cost of the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "92",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhang:2019:FTL,
author = "Hengchu Zhang and Edo Roth and Andreas Haeberlen and
Benjamin C. Pierce and Aaron Roth",
title = "{Fuzzi}: a three-level logic for differential
privacy",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "93:1--93:28",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341697",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341697",
abstract = "Curators of sensitive datasets sometimes need to know
whether queries against the data are differentially
private. Two sorts of logics have been proposed for
checking this property: (1) type systems and other
static analyses, which fully automate \ldots{}",
acknowledgement = ack-nhfb,
articleno = "93",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Smith:2019:SDP,
author = "Calvin Smith and Aws Albarghouthi",
title = "Synthesizing differentially private programs",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "94:1--94:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341698",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341698",
abstract = "Inspired by the proliferation of data-analysis tasks,
recent research in program synthesis has had a strong
focus on enabling users to specify data-analysis
programs through intuitive specifications, like
examples and natural language. However, with the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "94",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Miltner:2019:SSL,
author = "Anders Miltner and Solomon Maina and Kathleen Fisher
and Benjamin C. Pierce and David Walker and Steve
Zdancewic",
title = "Synthesizing symmetric lenses",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "95:1--95:28",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341699",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341699",
abstract = "Lenses are programs that can be run both ``front to
back'' and ``back to front,'' allowing updates to
either their source or their target data to be
transferred in both directions. Since their
introduction by Foster et al., lenses have been
extensively \ldots{}",
acknowledgement = ack-nhfb,
articleno = "95",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2019:DDP,
author = "Fei Wang and Daniel Zheng and James Decker and Xilun
Wu and Gr{\'e}gory M. Essertel and Tiark Rompf",
title = "Demystifying differentiable programming: shift\slash
reset the penultimate backpropagator",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "96:1--96:31",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341700",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341700",
abstract = "Deep learning has seen tremendous success over the
past decade in computer vision, machine translation,
and gameplay. This success rests crucially on
gradient-descent optimization and the ability to
``learn'' parameters of a neural network by \ldots{}",
acknowledgement = ack-nhfb,
articleno = "96",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Shaikhha:2019:EDP,
author = "Amir Shaikhha and Andrew Fitzgibbon and Dimitrios
Vytiniotis and Simon Peyton Jones",
title = "Efficient differentiable programming in a functional
array-processing language",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "97:1--97:30",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341701",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341701",
abstract = "We present a system for the automatic differentiation
(AD) of a higher-order functional array-processing
language. The core functional language underlying this
system simultaneously supports both source-to-source
forward-mode AD and global optimisations \ldots{}",
acknowledgement = ack-nhfb,
articleno = "97",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Walia:2019:HLI,
author = "Rajan Walia and Praveen Narayanan and Jacques Carette
and Sam Tobin-Hochstadt and Chung-chieh Shan",
title = "From high-level inference algorithms to efficient
code",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "98:1--98:30",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341702",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341702",
abstract = "Probabilistic programming languages are valuable
because they allow domain experts to express
probabilistic models and inference algorithms without
worrying about irrelevant details. However, for decades
there remained an important and popular class of
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "98",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sherman:2019:SRS,
author = "Benjamin Sherman and Jesse Michel and Michael
Carbin",
title = "Sound and robust solid modeling via exact real
arithmetic and continuity",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "99:1--99:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341703",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/fparith.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341703",
abstract = "Algorithms for solid modeling, i.e., Computer-Aided
Design (CAD) and computer graphics, are often specified
on real numbers and then implemented with
finite-precision arithmetic, such as floating-point.
The result is that these implementations do not soundly
compute the results that are expected from their
specifications.\par
We present a new library, StoneWorks, that provides
sound and robust solid modeling primitives. We
implement StoneWorks in MarshallB, a pure functional
programming language for exact real arithmetic in which
types denote topological spaces and functions denote
continuous maps, ensuring that all programs are sound
and robust. We developed MarshallB as an extension of
the Marshall language.\par
We also define a new shape representation, compact
representation (K-rep), that enables constructions such
as Minkowski sum and analyses such as Hausdorff
distance that are not possible with traditional
representations. K-rep is a nondeterminism monad for
describing all the points in a shape.\par
With our library, language, and representation
together, we show that short StoneWorks programs can
specify and execute sound and robust solid modeling
algorithms and tasks.",
acknowledgement = ack-nhfb,
articleno = "99",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Christiansen:2019:DTH,
author = "David Thrane Christiansen and Iavor S. Diatchki and
Robert Dockins and Joe Hendrix and Tristan Ravitch",
title = "Dependently typed {Haskell} in industry (experience
report)",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "100:1--100:16",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341704",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341704",
abstract = "Recent versions of the Haskell compiler GHC have a
number of advanced features that allow many idioms from
dependently typed programming to be encoded. We
describe our experiences using this ``dependently typed
Haskell'' to construct a performance-. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "100",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Weirich:2019:RDT,
author = "Stephanie Weirich and Pritam Choudhury and Antoine
Voizard and Richard A. Eisenberg",
title = "A role for dependent types in {Haskell}",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "101:1--101:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341705",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341705",
abstract = "Modern Haskell supports zero-cost coercions, a
mechanism where types that share the same run-time
representation may be freely converted between. To make
sure such conversions are safe and desirable, this
feature relies on a mechanism of roles to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "101",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kiss:2019:HOT,
author = "Csongor Kiss and Tony Field and Susan Eisenbach and
Simon Peyton Jones",
title = "Higher-order type-level programming in {Haskell}",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "102:1--102:26",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341706",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341706",
abstract = "Type family applications in Haskell must be fully
saturated. This means that all type-level functions
have to be first-order, leading to code that is both
messy and longwinded. In this paper we detail an
extension to GHC that removes this restriction.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "102",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Swierstra:2019:PTS,
author = "Wouter Swierstra and Tim Baanen",
title = "A predicate transformer semantics for effects
(functional pearl)",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "103:1--103:26",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341707",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341707",
abstract = "Reasoning about programs that use effects can be much
harder than reasoning about their pure counterparts.
This paper presents a predicate transformer semantics
for a variety of effects, including exceptions, state,
non-determinism, and general \ldots{}",
acknowledgement = ack-nhfb,
articleno = "103",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Maillard:2019:DMA,
author = "Kenji Maillard and Danel Ahman and Robert Atkey and
Guido Mart{\'\i}nez and C{\u{a}}t{\u{a}}lin
Hri{\c{t}}cu and Exequiel Rivas and {\'E}ric Tanter",
title = "{Dijkstra} monads for all",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "104:1--104:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341708",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341708",
abstract = "This paper proposes a general semantic framework for
verifying programs with arbitrary monadic side-effects
using Dijkstra monads, which we define as monad-like
structures indexed by a specification monad. We prove
that any monad morphism between a \ldots{}",
acknowledgement = ack-nhfb,
articleno = "104",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Timany:2019:MRV,
author = "Amin Timany and Lars Birkedal",
title = "Mechanized relational verification of concurrent
programs with continuations",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "105:1--105:28",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341709",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341709",
abstract = "Concurrent higher-order imperative programming
languages with continuations are very flexible and
allow for the implementation of sophisticated
programming patterns. For instance, it is well known
that continuations can be used to implement cooperative
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "105",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lewchenko:2019:SPR,
author = "Nicholas V. Lewchenko and Arjun Radhakrishna and Akash
Gaonkar and Pavol Cern{\'y}",
title = "Sequential programming for replicated data stores",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "106:1--106:28",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341710",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341710",
abstract = "We introduce Carol, a refinement-typed programming
language for replicated data stores. The salient
feature of Carol is that it allows programming and
verifying replicated store operations modularly,
without consideration of other operations that might
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "106",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gratzer:2019:IMD,
author = "Daniel Gratzer and Jonathan Sterling and Lars
Birkedal",
title = "Implementing a modal dependent type theory",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "107:1--107:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341711",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341711",
abstract = "Modalities are everywhere in programming and
mathematics! Despite this, however, there are still
significant technical challenges in formulating a core
dependent type theory with modalities. We present a
dependent type theory MLTT$_{\rm [lock]}$ supporting
the \ldots{}.",
acknowledgement = ack-nhfb,
articleno = "107",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pedrot:2019:RET,
author = "Pierre-Marie P{\'e}drot and Nicolas Tabareau and Hans
Jacob Fehrmann and {\'E}ric Tanter",
title = "A reasonably exceptional type theory",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "108:1--108:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341712",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341712",
abstract = "Traditional approaches to compensate for the lack of
exceptions in type theories for proof assistants have
severe drawbacks from both a programming and a
reasoning perspective. P{\'e}drot and Tabareau recently
extended the Calculus of Inductive \ldots{}",
acknowledgement = ack-nhfb,
articleno = "108",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bahr:2019:SRF,
author = "Patrick Bahr and Christian Uldal Graulund and Rasmus
Ejlers M{\o}gelberg",
title = "Simply {RaTT}: a fitch-style modal calculus for
reactive programming without space leaks",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "109:1--109:27",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341713",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341713",
abstract = "Functional reactive programming (FRP) is a paradigm
for programming with signals and events, allowing the
user to describe reactive programs on a high level of
abstraction. For this to make sense, an FRP language
must ensure that all programs are causal,. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "109",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Orchard:2019:QPR,
author = "Dominic Orchard and Vilem-Benjamin Liepelt and Harley
{Eades III}",
title = "Quantitative program reasoning with graded modal
types",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "110:1--110:30",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341714",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341714",
abstract = "In programming, some data acts as a resource (e.g.,
file handles, channels) subject to usage constraints.
This poses a challenge to software correctness as most
languages are agnostic to constraints on data. The
approach of linear types provides a \ldots{}",
acknowledgement = ack-nhfb,
articleno = "110",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lindenhovius:2019:MLN,
author = "Bert Lindenhovius and Michael Mislove and Vladimir
Zamdzhiev",
title = "Mixed linear and non-linear recursive types",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "111:1--111:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341715",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341715",
abstract = "We describe a type system with mixed linear and
non-linear recursive types called LNL-FPC (the
linear/non-linear fixpoint calculus). The type system
supports linear typing which enhances the safety
properties of programs, but also supports non-linear
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "111",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhao:2019:MFH,
author = "Jinxu Zhao and Bruno C. d. S. Oliveira and Tom
Schrijvers",
title = "A mechanical formalization of higher-ranked
polymorphic type inference",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "112:1--112:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341716",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341716",
abstract = "Modern functional programming languages, such as
Haskell or OCaml, use sophisticated forms of type
inference. While an important topic in the Programming
Languages research, there is little work on the
mechanization of the metatheory of type inference
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "112",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Miraldo:2019:EAT,
author = "Victor Cacciari Miraldo and Wouter Swierstra",
title = "An efficient algorithm for type-safe structural
diffing",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "113:1--113:29",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341717",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341717",
abstract = "Effectively computing the difference between two
version of a source file has become an indispensable
part of software development. The de facto standard
tool used by most version control systems is the UNIX
diff utility, that compares two files on a \ldots{}",
acknowledgement = ack-nhfb,
articleno = "113",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hackett:2019:CNC,
author = "Jennifer Hackett and Graham Hutton",
title = "Call-by-need is clairvoyant call-by-value",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "114:1--114:23",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341718",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341718",
abstract = "Call-by-need evaluation, also known as lazy
evaluation, provides two key benefits: compositional
programming and infinite data. The standard semantics
for laziness is Launchbury's natural semantics
DBLP:conf/popl/Launchbury93, which uses a heap to
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "114",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hameer:2019:TAF,
author = "Aliya Hameer and Brigitte Pientka",
title = "Teaching the art of functional programming using
automated grading (experience report)",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "115:1--115:15",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3341719",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3341719",
abstract = "Online programming platforms have immense potential to
improve students' educational experience. They make
programming more accessible, as no installation is
required; and automatic grading facilities provide
students with immediate feedback on their \ldots{}",
acknowledgement = ack-nhfb,
articleno = "115",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yallop:2019:LUS,
author = "Jeremy Yallop and Leo White",
title = "{Lambda}: the ultimate sublanguage (experience
report)",
journal = j-PACMPL,
volume = "3",
number = "ICFP",
pages = "116:1--116:17",
month = jul,
year = "2019",
DOI = "https://doi.org/10.1145/3342713",
bibdate = "Fri Aug 7 19:22:28 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3342713",
abstract = "We describe our experience teaching an advanced typed
functional programming course based around the use of
System F$ \omega $ as a programming language.",
acknowledgement = ack-nhfb,
articleno = "116",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Rahmani:2019:CDT,
author = "Kia Rahmani and Kartik Nagar and Benjamin Delaware and
Suresh Jagannathan",
title = "{CLOTHO}: directed test generation for weakly
consistent database systems",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "117:1--117:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360543",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360543",
abstract = "Relational database applications are notoriously
difficult to test and debug. Concurrent execution of
database transactions may violate complex structural
invariants that constraint how changes to the contents
of one (shared) table affect the contents \ldots{}",
acknowledgement = ack-nhfb,
articleno = "117",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bastani:2019:PVF,
author = "Osbert Bastani and Xin Zhang and Armando
Solar-Lezama",
title = "Probabilistic verification of fairness properties via
concentration",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "118:1--118:27",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360544",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360544",
abstract = "As machine learning systems are increasingly used to
make real world legal and financial decisions, it is of
paramount importance that we develop algorithms to
verify that these systems do not discriminate against
minorities. We design a scalable \ldots{}",
acknowledgement = ack-nhfb,
articleno = "118",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Fernando:2019:VSA,
author = "Vimuth Fernando and Keyur Joshi and Sasa Misailovic",
title = "Verifying safety and accuracy of approximate parallel
programs via canonical sequentialization",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "119:1--119:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360545",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360545",
abstract = "We present Parallely, a programming language and a
system for verification of approximations in parallel
message-passing programs. Parallely's language can
express various software and hardware level
approximations that reduce the computation and
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "119",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Siraichi:2019:QAC,
author = "Marcos Yukio Siraichi and Vin{\'\i}cius Fernandes dos
Santos and Caroline Collange and Fernando Magno
{Quint{\~a}o Pereira}",
title = "Qubit allocation as a combination of subgraph
isomorphism and token swapping",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "120:1--120:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360546",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360546",
abstract = "In 2016, the first quantum processors have been made
available to the general public. The possibility of
programming an actual quantum device has elicited much
enthusiasm. Yet, such possibility also brought
challenges. One challenge is the so called Qubit
Allocation problem: the mapping of a virtual quantum
circuit into an actual quantum architecture. There
exist solutions to this problem; however, in our
opinion, they fail to capitalize on decades of
improvements on graph theory. In contrast, this paper
shows how to model qubit allocation as the combination
of Subgraph Isomorphism and Token Swapping. This idea
has been made possible by the publication of an
approximative solution to the latter problem in 2016.
We have compared our algorithm against five other qubit
allocators, all independently designed in the last two
years, including the winner of the IBM Challenge. When
evaluated in ``Tokyo'', a quantum architecture with 20
qubits, our technique outperforms these
state-of-the-art approaches in terms of the quality of
the solutions that it finds and the amount of memory
that it uses, while showing practical runtime.",
acknowledgement = ack-nhfb,
articleno = "120",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ter-Gabrielyan:2019:MVH,
author = "Arshavir Ter-Gabrielyan and Alexander J. Summers and
Peter M{\"u}ller",
title = "Modular verification of heap reachability properties
in separation logic",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "121:1--121:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360547",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360547",
abstract = "The correctness of many algorithms and data structures
depends on reachability properties, that is, on the
existence of chains of references between objects in
the heap. Reasoning about reachability is difficult for
two main reasons. First, any heap \ldots{}",
acknowledgement = ack-nhfb,
articleno = "121",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Greenman:2019:CMG,
author = "Ben Greenman and Matthias Felleisen and Christos
Dimoulas",
title = "Complete monitors for gradual types",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "122:1--122:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360548",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360548",
abstract = "In the context of gradual typing, type soundness
guarantees the safety of typed code. When untyped code
fails to respect types, a runtime check finds the
discrepancy. As for untyped code, type soundness makes
no promises; it does not protect untyped \ldots{}",
acknowledgement = ack-nhfb,
articleno = "122",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Konnov:2019:TMC,
author = "Igor Konnov and Jure Kukovec and Thanh-Hai Tran",
title = "{TLA+} model checking made symbolic",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "123:1--123:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360549",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360549",
abstract = "TLA+ is a language for formal specification of all
kinds of computer systems. System designers use this
language to specify concurrent, distributed, and
fault-tolerant protocols, which are traditionally
presented in pseudo-code. TLA+ is extremely \ldots{}",
acknowledgement = ack-nhfb,
articleno = "123",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chatterjee:2019:VCD,
author = "Krishnendu Chatterjee and Andreas Pavlogiannis and
Viktor Toman",
title = "Value-centric dynamic partial order reduction",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "124:1--124:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360550",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360550",
abstract = "The verification of concurrent programs remains an
open challenge, as thread interaction has to be
accounted for, which leads to state-space explosion.
Stateless model checking battles this problem by
exploring traces rather than states of the program.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "124",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Shajii:2019:SHP,
author = "Ariya Shajii and Ibrahim Numanagi{\'c} and Riyadh
Baghdadi and Bonnie Berger and Saman Amarasinghe",
title = "{Seq}: a high-performance language for
bioinformatics",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "125:1--125:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360551",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/python.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360551",
abstract = "The scope and scale of biological data are increasing
at an exponential rate, as technologies like
next-generation sequencing are becoming radically
cheaper and more prevalent. Over the last two decades,
the cost of sequencing a genome has dropped from \$100
million to nearly \$100 --- a factor of over $ 10^6 $
--- and the amount of data to be analyzed has increased
proportionally. Yet, as Moore's Law continues to slow,
computational biologists can no longer rely on
computing hardware to compensate for the
ever-increasing size of biological datasets. In a field
where many researchers are primarily focused on
biological analysis over computational optimization,
the unfortunate solution to this problem is often to
simply buy larger and faster machines.\par
Here, we introduce Seq, the first language tailored
specifically to bioinformatics, which marries the ease
and productivity of Python with C-like performance. Seq
starts with a subset of Python --- and is in many cases
a drop-in replacement --- yet also incorporates novel
bioinformatics- and computational genomics-oriented
data types, language constructs and optimizations. Seq
enables users to write high-level, Pythonic code
without having to worry about low-level or
domain-specific optimizations, and allows for the
seamless expression of the algorithms, idioms and
patterns found in many genomics or bioinformatics
applications. We evaluated Seq on several standard
computational genomics tasks like reverse
complementation, k-mer manipulation, sequence pattern
matching and large genomic index queries. On equivalent
CPython code, Seq attains a performance improvement of
up to two orders of magnitude, and a $ 160 \times $
improvement once domain-specific language features and
optimizations are used. With parallelism, we
demonstrate up to a $ 650 \times $ improvement.
Compared to optimized C++ code, which is already
difficult for most biologists to produce, Seq
frequently attains up to a $ 2 \times $ improvement,
and with shorter, cleaner code. Thus, Seq opens the
door to an age of democratization of highly-optimized
bioinformatics software.",
acknowledgement = ack-nhfb,
articleno = "125",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wei:2019:SAI,
author = "Guannan Wei and Yuxuan Chen and Tiark Rompf",
title = "Staged abstract interpreters: fast and modular
whole-program analysis via meta-programming",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "126:1--126:32",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360552",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360552",
abstract = "It is well known that a staged interpreter is a
compiler: specializing an interpreter to a given
program produces an equivalent executable that runs
faster. This connection is known as the first Futamura
projection. It is even more widely known that an
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "126",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Henriksen:2019:DGS,
author = "Ian Henriksen and Gianfranco Bilardi and Keshav
Pingali",
title = "Derivative grammars: a symbolic approach to parsing
with derivatives",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "127:1--127:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360553",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360553",
abstract = "We present a novel approach to context-free grammar
parsing that is based on generating a sequence of
grammars called derivative grammars from a given
context-free grammar and input string. The generation
of the derivative grammars is described by a few
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "127",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zuriel:2019:ELF,
author = "Yoav Zuriel and Michal Friedman and Gali Sheffi and
Nachshon Cohen and Erez Petrank",
title = "Efficient lock-free durable sets",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "128:1--128:26",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360554",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360554",
abstract = "Non-volatile memory is expected to co-exist or replace
DRAM in upcoming architectures. Durable concurrent data
structures for non-volatile memories are essential
building blocks for constructing adequate software for
use with these architectures. In \ldots{}",
acknowledgement = ack-nhfb,
articleno = "128",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Huang:2019:MVA,
author = "Mingzhang Huang and Hongfei Fu and Krishnendu
Chatterjee and Amir Kafshdar Goharshady",
title = "Modular verification for almost-sure termination of
probabilistic programs",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "129:1--129:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360555",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360555",
abstract = "In this work, we consider the almost-sure termination
problem for probabilistic programs that asks whether a
given probabilistic program terminates with probability
1. Scalable approaches for program analysis often rely
on modularity as their \ldots{}",
acknowledgement = ack-nhfb,
articleno = "129",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2019:IEM,
author = "Yu-Ping Wang and Xu-Qiang Hu and Zi-Xin Zou and Wende
Tan and Gang Tan",
title = "{IVT}: an efficient method for sharing subtype
polymorphic objects",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "130:1--130:22",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360556",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360556",
abstract = "Shared memory provides the fastest form of
inter-process communication. Sharing polymorphic
objects between different address spaces requires
solving the issue of sharing pointers. In this paper,
we propose a method, named Indexed Virtual Tables (IVT)
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "130",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Caires:2019:RKT,
author = "Lu{\'\i}s Caires and Bernardo Toninho",
title = "Refinement kinds: type-safe programming with practical
type-level computation",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "131:1--131:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360557",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360557",
abstract = "This work introduces the novel concept of kind
refinement, which we develop in the context of an
explicitly polymorphic ML-like language with type-level
computation. Just as type refinements embed rich
specifications by means of comprehension principles
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "131",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mariano:2019:PSA,
author = "Benjamin Mariano and Josh Reese and Siyuan Xu and
ThanhVu Nguyen and Xiaokang Qiu and Jeffrey S. Foster
and Armando Solar-Lezama",
title = "Program synthesis with algebraic library
specifications",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "132:1--132:25",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360558",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360558",
abstract = "A key challenge in program synthesis is synthesizing
programs that use libraries, which most real-world
software does. The current state of the art is to model
libraries with mock library implementations that
perform the same function in a simpler way. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "132",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Watt:2019:WW,
author = "Conrad Watt and Andreas Rossberg and Jean
Pichon-Pharabod",
title = "Weakening {WebAssembly}",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "133:1--133:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360559",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360559",
abstract = "WebAssembly (Wasm) is a safe, portable virtual
instruction set that can be hosted in a wide range of
environments, such as a Web browser. It is a low-level
language whose instructions are intended to compile
directly to bare hardware. While the initial version of
Wasm focussed on single-threaded computation, a recent
proposal extends it with low-level support for multiple
threads and atomic instructions for synchronised access
to shared memory. To support the correct compilation of
concurrent programs, it is necessary to give a suitable
specification of its memory model.\par
Wasm's language definition is based on a fully
formalised specification that carefully avoids
undefined behaviour. We present a substantial extension
to this semantics, incorporating a relaxed memory
model, along with a few proposed extensions. Wasm's
memory model is unique in that its linear address space
can be dynamically grown during execution, while all
accesses are bounds-checked. This leads to the novel
problem of specifying how observations about the size
of the memory can propagate between threads. We argue
that, considering desirable compilation schemes, we
cannot give a sequentially consistent semantics to
memory growth.\par
We show that our model provides sequential consistency
for data-race-free executions (SC-DRF). However,
because Wasm is to run on the Web, we must also
consider interoperability of its model with that of
JavaScript. We show, by counter-example, that
JavaScript's memory model is not SC-DRF, in contrast to
what is claimed in its specification. We propose two
axiomatic conditions that should be added to the
JavaScript model to correct this difference.\par
We also describe a prototype SMT-based litmus tool
which acts as an oracle for our axiomatic model,
visualising its behaviours, including memory
resizing.",
acknowledgement = ack-nhfb,
articleno = "133",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yamazaki:2019:GFA,
author = "Tetsuro Yamazaki and Tomoki Nakamaru and Kazuhiro
Ichikawa and Shigeru Chiba",
title = "Generating a fluent {API} with syntax checking from an
{LR} grammar",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "134:1--134:24",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360560",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360560",
abstract = "This paper proposes a fluent API generator for Scala,
Haskell, and C++. It receives a grammar definition and
generates a code skeleton of the library in the host
programming language. The generated library is accessed
through a chain of method calls; \ldots{}",
acknowledgement = ack-nhfb,
articleno = "134",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Raad:2019:WPS,
author = "Azalea Raad and John Wickerson and Viktor Vafeiadis",
title = "Weak persistency semantics from the ground up:
formalising the persistency semantics of {ARMv8} and
transactional models",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "135:1--135:27",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360561",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360561",
abstract = "Emerging non-volatile memory (NVM) technologies
promise the durability of disks with the performance of
volatile memory (RAM). To describe the persistency
guarantees of NVM, several memory persistency models
have been proposed in the literature. However,.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "135",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sjoberg:2019:DLC,
author = "Vilhelm Sj{\"o}berg and Yuyang Sang and Shu-chun Weng
and Zhong Shao",
title = "{DeepSEA}: a language for certified system software",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "136:1--136:27",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360562",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360562",
abstract = "Writing certifiably correct system software is still
very labor-intensive, and current programming languages
are not well suited for the task. Proof assistants work
best on programs written in a high-level functional
style, while operating systems need \ldots{}",
acknowledgement = ack-nhfb,
articleno = "136",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhang:2019:BPD,
author = "Zhuo Zhang and Wei You and Guanhong Tao and Guannan
Wei and Yonghwi Kwon and Xiangyu Zhang",
title = "{BDA}: practical dependence analysis for binary
executables by unbiased whole-program path sampling and
per-path abstract interpretation",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "137:1--137:31",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360563",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360563",
abstract = "Binary program dependence analysis determines
dependence between instructions and hence is important
for many applications that have to deal with
executables without any symbol information. A key
challenge is to identify if multiple memory read/write
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "137",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Vukotic:2019:ATS,
author = "Ivana Vukotic and Vincent Rahli and Paulo
Esteves-Ver{\'\i}ssimo",
title = "{Asphalion}: trustworthy shielding against {Byzantine}
faults",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "138:1--138:32",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360564",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360564",
abstract = "Byzantine fault-tolerant state-machine replication
(BFT-SMR) is a technique for hardening systems to
tolerate arbitrary faults. Although robust, BFT-SMR
protocols are very costly in terms of the number of
required replicas (3f+1 to tolerate f faults)
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "138",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pan:2019:ARR,
author = "Rong Pan and Qinheping Hu and Gaowei Xu and Loris
D'Antoni",
title = "Automatic repair of regular expressions",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "139:1--139:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360565",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360565",
abstract = "We introduce RFixer, a tool for repairing complex
regular expressions using examples and only consider
regular expressions without non-regular operators
(e.g., negative lookahead). Given an incorrect regular
expression and sets of positive and negative \ldots{}",
acknowledgement = ack-nhfb,
articleno = "139",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Stein:2019:SAD,
author = "Benno Stein and Benjamin Barslev Nielsen and Bor-Yuh
Evan Chang and Anders M{\o}ller",
title = "Static analysis with demand-driven value refinement",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "140:1--140:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360566",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360566",
abstract = "Static analysis tools for JavaScript must strike a
delicate balance, achieving the level of precision
required by the most complex features of target
programs without incurring prohibitively high analysis
time. For example, reasoning about dynamic \ldots{}",
acknowledgement = ack-nhfb,
articleno = "140",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chen:2019:RVU,
author = "Jia Chen and Jiayi Wei and Yu Feng and Osbert Bastani
and Isil Dillig",
title = "Relational verification using reinforcement learning",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "141:1--141:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360567",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360567",
abstract = "Relational verification aims to prove properties that
relate a pair of programs or two different runs of the
same program. While relational properties (e.g.,
equivalence, non-interference) can be verified by
reducing them to standard safety, there are \ldots{}",
acknowledgement = ack-nhfb,
articleno = "141",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bender:2019:FJC,
author = "John Bender and Jens Palsberg",
title = "A formalization of {Java}'s concurrent access modes",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "142:1--142:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360568",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360568",
abstract = "Java's memory model was recently updated and expanded
with new access modes. The accompanying documentation
for these access modes is intended to make strong
guarantees about program behavior that the Java
compiler must enforce, yet the documentation is
frequently unclear. This makes the intended program
behavior ambiguous, impedes discussion of key design
decisions, and makes it impossible to prove general
properties about the semantics of the access
modes.\par
In this paper we present the first formalization of
Java's access modes. We have constructed an axiomatic
model for all of the modes using the Herd modeling
tool. This allows us to give precise answers to
questions about the behavior of example programs,
called litmus tests. We have validated our model using
a large suite of litmus tests from existing research
which helps to shed light on the relationship with
other memory models. We have also modeled the semantics
in Coq and proven several general theorems including a
DRF guarantee, which says that if a program is properly
synchronized then it will exhibit sequentially
consistent behavior. Finally, we use our model to prove
that the unusual design choice of a partial order among
writes to the same location is unobservable in any
program.",
acknowledgement = ack-nhfb,
articleno = "142",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Miltner:2019:FSE,
author = "Anders Miltner and Sumit Gulwani and Vu Le and Alan
Leung and Arjun Radhakrishna and Gustavo Soares and
Ashish Tiwari and Abhishek Udupa",
title = "On the fly synthesis of edit suggestions",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "143:1--143:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360569",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360569",
abstract = "When working with a document, users often perform
context-specific repetitive edits --- changes to the
document that are similar but specific to the contexts
at their locations. Programming by
demonstration/examples (PBD/PBE) systems automate these
tasks \ldots{}",
acknowledgement = ack-nhfb,
articleno = "143",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mogk:2019:FTP,
author = "Ragnar Mogk and Joscha Drechsler and Guido Salvaneschi
and Mira Mezini",
title = "A fault-tolerant programming model for distributed
interactive applications",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "144:1--144:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360570",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360570",
abstract = "Ubiquitous connectivity of web, mobile, and IoT
computing platforms has fostered a variety of
distributed applications with decentralized state.
These applications execute across multiple devices with
varying reliability and connectivity. Unfortunately,
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "144",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Rapoport:2019:PDF,
author = "Marianna Rapoport and Ondrej Lhot{\'a}k",
title = "A path to {DOT}: formalizing fully path-dependent
types",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "145:1--145:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360571",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360571",
abstract = "The Dependent Object Types (DOT) calculus aims to
formalize the Scala programming language with a focus
on path-dependent types --- types such as $ x.a_1
\ldots a_n T. $ that depend on the runtime value of a
path $ x.a_1 \ldots a_n $ to an object. Unfortunately,
existing \ldots{}",
acknowledgement = ack-nhfb,
articleno = "145",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bastian:2019:RFD,
author = "Th{\'e}ophile Bastian and Stephen Kell and Francesco
Zappa Nardelli",
title = "Reliable and fast {DWARF}-based stack unwinding",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "146:1--146:24",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360572",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360572",
abstract = "Debug information, usually encoded in the DWARF
format, is a hidden and obscure component of our
computing infrastructure. Debug information is
obviously used by debuggers, but it also plays a key
role in program analysis tools, and, most surprisingly,
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "146",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Astrauskas:2019:LRT,
author = "Vytautas Astrauskas and Peter M{\"u}ller and Federico
Poli and Alexander J. Summers",
title = "Leveraging {Rust} types for modular specification and
verification",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "147:1--147:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360573",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/rust.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360573",
abstract = "Rust's type system ensures memory safety: well-typed
Rust programs are guaranteed to not exhibit problems
such as dangling pointers, data races, and unexpected
side effects through aliased references. Ensuring
correctness properties beyond memory safety, for
instance, the guaranteed absence of assertion failures
or more-general functional correctness, requires static
program verification. For traditional system
programming languages, formal verification is
notoriously difficult and requires complex
specifications and logics to reason about pointers,
aliasing, and side effects on mutable state. This
complexity is a major obstacle to the more-widespread
verification of system software.\par
In this paper, we present a novel verification
technique that leverages Rust's type system to greatly
simplify the specification and verification of system
software written in Rust. We analyse information from
the Rust compiler and synthesise a corresponding core
proof for the program in a flavour of separation logic
tailored to automation. To verify correctness
properties beyond memory safety, users can annotate
Rust programs with specifications at the abstraction
level of Rust expressions; our technique weaves them
into the core proof to verify modularly whether these
specifications hold. Crucially, our proofs are
constructed and checked automatically without exposing
the underlying formal logic, allowing users to work
exclusively at the level of abstraction of the
programming language. As such, our work enables a new
kind of verification tool, with the potential to impact
a wide audience and allow the Rust community to benefit
from state-of-the-art verification techniques. We have
implemented our techniques for a subset of Rust; our
evaluation on several thousand functions from
widely-used Rust crates demonstrates its
effectiveness.",
acknowledgement = ack-nhfb,
articleno = "147",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lu:2019:PPY,
author = "Jingbo Lu and Jingling Xue",
title = "Precision-preserving yet fast object-sensitive pointer
analysis with partial context sensitivity",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "148:1--148:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360574",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360574",
abstract = "Object-sensitivity is widely used as a context
abstraction for computing the points-to information
context-sensitively for object-oriented languages like
Java. Due to the combinatorial explosion of contexts in
large programs, k -object-sensitive pointer \ldots{}",
acknowledgement = ack-nhfb,
articleno = "148",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jangda:2019:FFS,
author = "Abhinav Jangda and Donald Pinckney and Yuriy Brun and
Arjun Guha",
title = "Formal foundations of serverless computing",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "149:1--149:26",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360575",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360575",
abstract = "Serverless computing (also known as functions as a
service) is a new cloud computing abstraction that
makes it easier to write robust, large-scale web
services. In serverless computing, programmers write
what are called serverless functions, which are
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "149",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Abdulla:2019:OSM,
author = "Parosh Aziz Abdulla and Mohamed Faouzi Atig and Bengt
Jonsson and Magnus L{\aa}ng and Tuan Phong Ngo and
Konstantinos Sagonas",
title = "Optimal stateless model checking for reads-from
equivalence under sequential consistency",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "150:1--150:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360576",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360576",
abstract = "We present a new approach for stateless model checking
(SMC) of multithreaded programs under Sequential
Consistency (SC) semantics. To combat state-space
explosion, SMC is often equipped with a partial-order
reduction technique, which defines an \ldots{}",
acknowledgement = ack-nhfb,
articleno = "150",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Panchekha:2019:MVW,
author = "Pavel Panchekha and Michael D. Ernst and Zachary
Tatlock and Shoaib Kamil",
title = "Modular verification of web page layout",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "151:1--151:26",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360577",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360577",
abstract = "Automated verification can ensure that a web page
satisfies accessibility, usability, and design
properties regardless of the end user's device,
preferences, and assistive technologies. However,
state-of-the-art verification tools for layout
properties \ldots{}",
acknowledgement = ack-nhfb,
articleno = "151",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Luan:2019:ACR,
author = "Sifei Luan and Di Yang and Celeste Barnaby and Koushik
Sen and Satish Chandra",
title = "{Aroma}: code recommendation via structural code
search",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "152:1--152:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360578",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360578",
abstract = "Programmers often write code that has similarity to
existing code written somewhere. A tool that could help
programmers to search such similar code would be
immensely useful. Such a tool could help programmers to
extend partially written code snippets \ldots{}",
acknowledgement = ack-nhfb,
articleno = "152",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Goel:2019:DIU,
author = "Aviral Goel and Jan Vitek",
title = "On the design, implementation, and use of laziness in
{R}",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "153:1--153:27",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360579",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/s-plus.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360579",
abstract = "The R programming language has been lazy for over
twenty-five years. This paper presents a review of the
design and implementation of call-by-need in R, and a
data-driven study of how generations of programmers
have put laziness to use in their code. We analyze
16,707 packages and observe the creation of 270.9 B
promises. Our data suggests that there is little
supporting evidence to assert that programmers use
laziness to avoid unnecessary computation or to operate
over infinite data structures. For the most part R code
appears to have been written without reliance on, and
in many cases even knowledge of, delayed argument
evaluation. The only significant exception is a small
number of packages which leverage call-by-need for
meta-programming.",
acknowledgement = ack-nhfb,
articleno = "153",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kaki:2019:MRD,
author = "Gowtham Kaki and Swarn Priya and KC Sivaramakrishnan
and Suresh Jagannathan",
title = "Mergeable replicated data types",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "154:1--154:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360580",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360580",
abstract = "Programming geo-replicated distributed systems is
challenging given the complexity of reasoning about
different evolving states on different replicas.
Existing approaches to this problem impose significant
burden on application developers to consider \ldots{}",
acknowledgement = ack-nhfb,
articleno = "154",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Marcozzi:2019:CFH,
author = "Micha{\"e}l Marcozzi and Qiyi Tang and Alastair F.
Donaldson and Cristian Cadar",
title = "Compiler fuzzing: how much does it matter?",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "155:1--155:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360581",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360581",
abstract = "Despite much recent interest in randomised testing
(fuzzing) of compilers, the practical impact of
fuzzer-found compiler bugs on real-world applications
has barely been assessed. We present the first
quantitative and qualitative study of the tangible
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "155",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Benavides:2019:DDP,
author = "Zachary Benavides and Keval Vora and Rajiv Gupta",
title = "{DProf}: distributed profiler with strong guarantees",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "156:1--156:24",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360582",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360582",
abstract = "Performance analysis of a distributed system is
typically achieved by collecting profiles whose
underlying events are timestamped with unsynchronized
clocks of multiple machines in the system. To allow
comparison of timestamps taken at different \ldots{}",
acknowledgement = ack-nhfb,
articleno = "156",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Essertel:2019:PRS,
author = "Gr{\'e}gory M. Essertel and Guannan Wei and Tiark
Rompf",
title = "Precise reasoning with structured time, structured
heaps, and collective operations",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "157:1--157:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360583",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360583",
abstract = "Despite decades of progress, static analysis tools
still have great difficulty dealing with programs that
combine arithmetic, loops, dynamic memory allocation,
and linked data structures. In this paper we draw
attention to two fundamental reasons for \ldots{}",
acknowledgement = ack-nhfb,
articleno = "157",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mastrangelo:2019:CAD,
author = "Luis Mastrangelo and Matthias Hauswirth and Nathaniel
Nystrom",
title = "Casting about in the dark: an empirical study of cast
operations in {Java} programs",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "158:1--158:31",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360584",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360584",
abstract = "The main goal of a static type system is to prevent
certain kinds of errors from happening at run time. A
type system is formulated as a set of constraints that
gives any expression or term in a program a
well-defined type. Yet mainstream programming languages
are endowed with type systems that provide the means to
circumvent their constraints through casting.\par
We want to understand how and when developers escape
the static type system to use dynamic typing. We
empirically study how casting is used by developers in
more than seven thousand Java projects. We find that
casts are widely used (8.7\% of methods contain at
least one cast) and that 50\% of casts we inspected are
not guarded locally to ensure against potential
run-time errors.\par
To help us better categorize use cases and thus
understand how casts are used in practice, we identify
25 cast-usage patterns---recurrent programming idioms
using casts to solve a specific issue. This knowledge
can be: (a) a recommendation for current and future
language designers to make informed decisions (b) a
reference for tool builders, e.g., by providing more
precise or new refactoring analyses, (c) a guide for
researchers to test new language features, or to carry
out controlled programming experiments, and (d) a guide
for developers for better practices.",
acknowledgement = ack-nhfb,
articleno = "158",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bader:2019:GLF,
author = "Johannes Bader and Andrew Scott and Michael Pradel and
Satish Chandra",
title = "{Getafix}: learning to fix bugs automatically",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "159:1--159:27",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360585",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360585",
abstract = "Static analyzers help find bugs early by warning about
recurring bug categories. While fixing these bugs still
remains a mostly manual task in practice, we observe
that fixes for a specific bug category often are
repetitive. This paper addresses the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "159",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wu:2019:GPE,
author = "Baijun Wu and John Peter {Campora III} and Yi He and
Alexander Schlecht and Sheng Chen",
title = "Generating precise error specifications for {C}: a
zero shot learning approach",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "160:1--160:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360586",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360586",
abstract = "In C programs, error specifications, which specify the
value range that each function returns to indicate
failures, are widely used to check and propagate errors
for the sake of reliability and security. Various kinds
of C analyzers employ error specifications for
different purposes, e.g., to detect error handling
bugs, yet a general approach for generating precise
specifications is still missing. This limits the
applicability of those tools.\par
In this paper, we solve this problem by developing a
machine learning-based approach named MLPEx. It
generates error specifications by analyzing only the
source code, and is thus general. We propose a novel
machine learning paradigm based on transfer learning,
enabling MLPEx to require only one-time minimal data
labeling from us (as the tool developers) and zero
manual labeling efforts from users. To improve the
accuracy of generated error specifications, MLPEx
extracts and exploits project-specific information. We
evaluate MLPEx on 10 projects, including 6 libraries
and 4 applications. An investigation of 3,443 functions
and 17,750 paths reveals that MLPEx generates error
specifications with a precision of 91\% and a recall of
94\%, significantly higher than those of
state-of-the-art approaches. To further demonstrate the
usefulness of the generated error specifications, we
use them to detect 57 bugs in 5 tested projects.",
acknowledgement = ack-nhfb,
articleno = "160",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Nanevski:2019:SCP,
author = "Aleksandar Nanevski and Anindya Banerjee and
Germ{\'a}n Andr{\'e}s Delbianco and Ignacio
F{\'a}bregas",
title = "Specifying concurrent programs in separation logic:
morphisms and simulations",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "161:1--161:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360587",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360587",
abstract = "In addition to pre- and postconditions, program
specifications in recent separation logics for
concurrency have employed an algebraic structure of
resources -a form of state transition systems-to
describe the state-based program invariants that must
be \ldots{}",
acknowledgement = ack-nhfb,
articleno = "161",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Li:2019:IBD,
author = "Yi Li and Shaohua Wang and Tien N. Nguyen and Son Van
Nguyen",
title = "Improving bug detection via context-based code
representation learning and attention-based neural
networks",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "162:1--162:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360588",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360588",
abstract = "Bug detection has been shown to be an effective way to
help developers in detecting bugs early, thus, saving
much effort and time in software development process.
Recently, deep learning-based bug detection approaches
have gained successes over the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "162",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Krikava:2019:SIE,
author = "Filip Krikava and Heather Miller and Jan Vitek",
title = "{Scala} implicits are everywhere: a large-scale study
of the use of {Scala} implicits in the wild",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "163:1--163:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360589",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360589",
abstract = "The Scala programming language offers two distinctive
language features implicit parameters and implicit
conversions, often referred together as implicits.
Announced without fanfare in 2004, implicits have
quickly grown to become a widely and \ldots{}",
acknowledgement = ack-nhfb,
articleno = "163",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barik:2019:OSP,
author = "Rajkishore Barik and Manu Sridharan and Murali Krishna
Ramanathan and Milind Chabbi",
title = "Optimization of swift protocols",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "164:1--164:27",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360590",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360590",
abstract = "Swift, an increasingly-popular programming language,
advocates the use of protocols, which define a set of
required methods and properties for conforming types.
Protocols are commonly used in Swift programs for
abstracting away implementation details; \ldots{}",
acknowledgement = ack-nhfb,
articleno = "164",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Biswas:2019:CCT,
author = "Ranadeep Biswas and Constantin Enea",
title = "On the complexity of checking transactional
consistency",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "165:1--165:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360591",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360591",
abstract = "Transactions simplify concurrent programming by
enabling computations on shared data that are isolated
from other concurrent computations and are resilient to
failures. Modern databases provide different
consistency models for transactions corresponding
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "165",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hamza:2019:SFF,
author = "Jad Hamza and Nicolas Voirol and Viktor Kuncak",
title = "{System FR}: formalized foundations for the
{Stainless} verifier",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "166:1--166:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360592",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360592",
abstract = "We present the design, implementation, and foundation
of a verifier for higher-order functional programs with
generics and recursive data types. Our system supports
proving safety and termination using preconditions,
postconditions and assertions. It supports writing
proof hints using assertions and recursive calls. To
formalize the soundness of the system we introduce
System FR, a calculus supporting System F polymorphism,
dependent refinement types, and recursive types
(including recursion through contravariant positions of
function types). Through the use of sized types, System
FR supports reasoning about termination of lazy data
structures such as streams. We formalize a reducibility
argument using the Coq proof assistant and prove the
soundness of a type-checker with respect to
call-by-value semantics, ensuring type safety and
normalization for typeable programs. Our program
verifier is implemented as an alternative
verification-condition generator for the Stainless
tool, which relies on the Inox SMT-based solver backend
for automation. We demonstrate the efficiency of our
approach by verifying a collection of higher-order
functional programs comprising around 14000 lines of
polymorphic higher-order Scala code, including graph
search algorithms, basic number theory, monad laws,
functional data structures, and assignments from
popular Functional Programming MOOCs.",
acknowledgement = ack-nhfb,
articleno = "166",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Salvaneschi:2019:LIP,
author = "Guido Salvaneschi and Mirko K{\"o}hler and Daniel
Sokolowski and Philipp Haller and Sebastian Erdweg and
Mira Mezini",
title = "Language-integrated privacy-aware distributed
queries",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "167:1--167:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360593",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360593",
abstract = "Distributed query processing is an effective means for
processing large amounts of data. To abstract from the
technicalities of distributed systems, algorithms for
operator placement automatically distribute sequential
data queries over the available \ldots{}",
acknowledgement = ack-nhfb,
articleno = "167",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bavishi:2019:ANB,
author = "Rohan Bavishi and Caroline Lemieux and Roy Fox and
Koushik Sen and Ion Stoica",
title = "{AutoPandas}: neural-backed generators for program
synthesis",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "168:1--168:27",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360594",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360594",
abstract = "Developers nowadays have to contend with a growing
number of APIs. While in the long-term they are very
useful to developers, many modern APIs have an
incredibly steep learning curve, due to their hundreds
of functions handling many arguments, obscure
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "168",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Adams:2019:RRP,
author = "Ulf Adams",
title = "{Ry{\=u}} revisited: {\tt printf} floating point
conversion",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "169:1--169:23",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360595",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/fparith.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360595",
abstract = "Ry{\=u} Printf is a new algorithm to convert
floating-point numbers to decimal strings according to
the {\tt printf} {\tt \%f}, {\tt \%e}, and {\tt \%g}
formats: {\tt \%f} generates `full' output (integer
part of the input, dot, configurable number of digits),
{\tt \%e} generates scientific output (one leading
digit, dot, configurable number of digits, exponent),
and {\tt \%g} generates the shorter of the two.
Ry{\=u}'s Printf is based on the Ry{\=u} algorithm,
which converts binary floating-point numbers to the
shortest equivalent decimal floating-point
representation. We provide quantitative evidence that
Ry{\=u} Printf is between 3.8 and 55 times faster than
existing {\tt printf} implementations.\par
Furthermore, we show that both Ry{\=u} and Ry{\=u}
Printf generalize to arbitrary number bases. This
finding implies the existence of a fast algorithm to
convert from base-10 to base-2, as long as the maximum
precision of the input is known a priori.",
acknowledgement = ack-nhfb,
articleno = "169",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
keywords = "base conversion",
}
@Article{Shen:2019:IRA,
author = "Bo Shen and Wei Zhang and Haiyan Zhao and Guangtai
Liang and Zhi Jin and Qianxiang Wang",
title = "{IntelliMerge}: a refactoring-aware software merging
technique",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "170:1--170:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360596",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360596",
abstract = "In modern software development, developers rely on
version control systems like Git to collaborate in the
branch-based development workflow. One downside of this
workflow is the conflicts occurred when merging
contributions from different developers: these
conflicts are tedious and error-prone to be correctly
resolved, reducing the efficiency of collaboration and
introducing potential bugs. The situation becomes even
worse, with the popularity of refactorings in software
development and evolution, because current merging
tools (usually based on the text or tree structures of
source code) are unaware of refactorings. In this
paper, we present IntelliMerge, a graph-based
refactoring-aware merging algorithm for Java programs.
We explicitly enhance this algorithm's ability in
detecting and resolving refactoring-related conflicts.
Through the evaluation on 1,070 merge scenarios from 10
popular open-source Java projects, we show that
IntelliMerge reduces the number of merge conflicts by
58.90\% comparing with GitMerge (the prevalent
unstructured merging tool) and 11.84\% comparing with
jFSTMerge (the state-of-the-art semi-structured merging
tool) without sacrificing the auto-merging precision
(88.48\%) and recall (90.22\%). Besides, the evaluation
of performance shows that IntelliMerge takes 539
milliseconds to process one merge scenario on the
median, which indicates its feasibility in real-world
applications.",
acknowledgement = ack-nhfb,
articleno = "170",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2019:CGM,
author = "Shengyi Wang and Qinxiang Cao and Anshuman Mohan and
Aquinas Hobor",
title = "Certifying graph-manipulating {C} programs via
localizations within data structures",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "171:1--171:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360597",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360597",
abstract = "We develop powerful and general techniques to
mechanically verify realistic programs that manipulate
heap-represented graphs. These graphs can exhibit
well-known organization principles, such as being a
directed acyclic graph or a disjoint-forest; \ldots{}",
acknowledgement = ack-nhfb,
articleno = "171",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Near:2019:DEH,
author = "Joseph P. Near and David Darais and Chike Abuah and
Tim Stevens and Pranav Gaddamadugu and Lun Wang and
Neel Somani and Mu Zhang and Nikhil Sharma and Alex
Shan and Dawn Song",
title = "{Duet}: an expressive higher-order language and linear
type system for statically enforcing differential
privacy",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "172:1--172:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360598",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360598",
abstract = "During the past decade, differential privacy has
become the gold standard for protecting the privacy of
individuals. However, verifying that a particular
program provides differential privacy often remains a
manual task to be completed by an expert in \ldots{}",
acknowledgement = ack-nhfb,
articleno = "172",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kokologiannakis:2019:ELH,
author = "Michalis Kokologiannakis and Azalea Raad and Viktor
Vafeiadis",
title = "Effective lock handling in stateless model checking",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "173:1--173:26",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360599",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360599",
abstract = "Stateless Model Checking (SMC) is a verification
technique for concurrent programs that checks for
safety violations by exploring all possible thread
interleavings. SMC is usually coupled with Partial
Order Reduction (POR), which exploits the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "173",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Padhye:2019:FDS,
author = "Rohan Padhye and Caroline Lemieux and Koushik Sen and
Laurent Simon and Hayawardh Vijayakumar",
title = "{FuzzFactory}: domain-specific fuzzing with
waypoints",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "174:1--174:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360600",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360600",
abstract = "Coverage-guided fuzz testing has gained prominence as
a highly effective method of finding security
vulnerabilities such as buffer overflows in programs
that parse binary data. Recently, researchers have
introduced various specializations to the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "174",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cambronero:2019:AAS,
author = "Jos{\'e} P. Cambronero and Martin C. Rinard",
title = "{AL}: autogenerating supervised learning programs",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "175:1--175:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360601",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360601",
abstract = "We present AL, a novel automated machine learning
system that learns to generate new supervised learning
pipelines from an existing corpus of supervised
learning programs. In contrast to existing automated
machine learning tools, which typically \ldots{}",
acknowledgement = ack-nhfb,
articleno = "175",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Keidel:2019:SRC,
author = "Sven Keidel and Sebastian Erdweg",
title = "Sound and reusable components for abstract
interpretation",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "176:1--176:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360602",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360602",
abstract = "Abstract interpretation is a methodology for defining
sound static analysis. Yet, building sound static
analyses for modern programming languages is difficult,
because these static analyses need to combine
sophisticated abstractions for values, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "176",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Celik:2019:DIA,
author = "Ahmet Celik and Pengyu Nie and Christopher J. Rossbach
and Milos Gligoric",
title = "Design, implementation, and application of {GPU}-based
{Java} bytecode interpreters",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "177:1--177:28",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360603",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360603",
abstract = "We present the design and implementation of GVM, the
first system for executing Java bytecode entirely on
GPUs. GVM is ideal for applications that execute a
large number of short-living tasks, which share a
significant fraction of their codebase and have similar
execution time. GVM uses novel algorithms, scheduling,
and data layout techniques to adapt to the massively
parallel programming and execution model of GPUs. We
apply GVM to generate and execute tests for Java
projects. First, we implement a sequence-based test
generation on top of GVM and design novel algorithms to
avoid redundant test sequences. Second, we use GVM to
execute randomly generated test cases. We evaluate GVM
by comparing it with two existing Java bytecode
interpreters (Oracle JVM and Java Pathfinder), as well
as with the Oracle JVM with just-in-time (JIT)
compiler, which has been engineered and optimized for
over twenty years. Our evaluation shows that
sequence-based test generation on GVM outperforms both
Java Pathfinder and Oracle JVM interpreter.
Additionally, our results show that GVM performs as
well as running our parallel sequence-based test
generation algorithm using JVM with JIT with many CPU
threads. Furthermore, our evaluation on several classes
from open-source projects shows that executing randomly
generated tests on GVM outperforms sequential execution
on JVM interpreter and JVM with JIT.",
acknowledgement = ack-nhfb,
articleno = "177",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Antonopoulos:2019:SIT,
author = "Timos Antonopoulos and Eric Koskinen and Ton Chanh
Le",
title = "Specification and inference of trace refinement
relations",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "178:1--178:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360604",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360604",
abstract = "The modern software engineering process is
evolutionary, with commits/patches begetting new
versions of code, progressing steadily toward improved
systems. In recent years, program analysis and
verification tools have exploited version-based
reasoning, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "178",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Genc:2019:DAU,
author = "Kaan Gen{\c{c}} and Jake Roemer and Yufan Xu and
Michael D. Bond",
title = "Dependence-aware, unbounded sound predictive race
detection",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "179:1--179:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360605",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360605",
abstract = "Data races are a real problem for parallel software,
yet hard to detect. Sound predictive analysis observes
a program execution and detects data races that exist
in some other, unobserved execution. However, existing
predictive analyses miss races \ldots{}",
acknowledgement = ack-nhfb,
articleno = "179",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ozkan:2019:TAR,
author = "Burcu Kulahcioglu Ozkan and Rupak Majumdar and Simin
Oraee",
title = "Trace aware random testing for distributed systems",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "180:1--180:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360606",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360606",
abstract = "Distributed and concurrent applications often have
subtle bugs that only get exposed under specific
schedules. While these schedules may be found by
systematic model checking techniques, in practice,
model checkers do not scale to large systems. On the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "180",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lampropoulos:2019:CGP,
author = "Leonidas Lampropoulos and Michael Hicks and Benjamin
C. Pierce",
title = "Coverage guided, property based testing",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "181:1--181:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360607",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360607",
abstract = "Property-based random testing, exemplified by
frameworks such as Haskell's QuickCheck, works by
testing an executable predicate (a property) on a
stream of randomly generated inputs. Property testing
works very well in many cases, but not always. Some
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "181",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Tosch:2019:PAT,
author = "Emma Tosch and Eytan Bakshy and Emery D. Berger and
David D. Jensen and J. Eliot B. Moss",
title = "{PlanAlyzer}: assessing threats to the validity of
online experiments",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "182:1--182:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360608",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360608",
abstract = "Online experiments have become a ubiquitous aspect of
design and engineering processes within Internet firms.
As the scale of experiments has grown, so has the
complexity of their design and implementation. In
response, firms have developed software \ldots{}",
acknowledgement = ack-nhfb,
articleno = "182",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Surbatovich:2019:DIB,
author = "Milijana Surbatovich and Limin Jia and Brandon
Lucia",
title = "{I/O} dependent idempotence bugs in intermittent
systems",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "183:1--183:31",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360609",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360609",
abstract = "Intermittently-powered, energy-harvesting devices
operate on energy collected from their environment and
must operate intermittently as energy is available.
Runtime systems for such devices often rely on
checkpoints or redo-logs to save execution state
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "183",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wimmer:2019:IOS,
author = "Christian Wimmer and Codrut Stancu and Peter Hofer and
Vojin Jovanovic and Paul W{\"o}gerer and Peter
B. Kessler and Oleg Pliss and Thomas W{\"u}rthinger",
title = "Initialize once, start fast: application
initialization at build time",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "184:1--184:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360610",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360610",
abstract = "Arbitrary program extension at run time in
language-based VMs, e.g., Java's dynamic class loading,
comes at a startup cost: high memory footprint and slow
warmup. Cloud computing amplifies the startup overhead.
Microservices and serverless cloud \ldots{}",
acknowledgement = ack-nhfb,
articleno = "184",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sergey:2019:SSC,
author = "Ilya Sergey and Vaivaswatha Nagaraj and Jacob
Johannsen and Amrit Kumar and Anton Trunov and Ken Chan
Guan Hao",
title = "Safer smart contract programming with {Scilla}",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "185:1--185:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360611",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360611",
abstract = "The rise of programmable open distributed consensus
platforms based on the blockchain technology has
aroused a lot of interest in replicated stateful
computations, aka smart contracts. As blockchains are
used predominantly in financial applications,
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "185",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sharif:2019:APC,
author = "Hashim Sharif and Prakalp Srivastava and Muhammad
Huzaifa and Maria Kotsifakou and Keyur Joshi and Yasmin
Sarita and Nathan Zhao and Vikram S. Adve and Sasa
Misailovic and Sarita Adve",
title = "{ApproxHPVM}: a portable compiler {IR} for
accuracy-aware optimizations",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "186:1--186:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360612",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/pvm.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360612",
abstract = "We propose ApproxHPVM, a compiler IR and system
designed to enable accuracy-aware performance and
energy tuning on heterogeneous systems with multiple
compute units and approximation methods. ApproxHPVM
automatically translates end-to-end
application-portability across heterogeneous hardware
platforms and enables future capabilities like
accuracy-aware dynamic scheduling and design space
exploration.\par
ApproxHPVM incorporates three main components: (a) a
compiler IR with hardware-agnostic approximation
metrics, (b) a hardware-agnostic accuracy-tuning phase
to identify error-tolerant computations, and (c) an
accuracy-aware hardware scheduler that maps
error-tolerant computations to approximate hardware
components. As ApproxHPVM does not incorporate any
hardware-specific knowledge as part of the IR, it can
serve as a portable virtual ISA that can be shipped to
all kinds of hardware platforms.\par
We evaluate our framework on nine benchmarks from the
deep learning domain and five image processing
benchmarks. Our results show that our framework can
offload chunks of approximable computations to
special-purpose accelerators that provide significant
gains in performance and energy, while staying within
user-specified application-level quality metrics with
high probability. Across the 14 benchmarks, we observe
from $1$--$ 9 \times $ performance speedups and $
1.1$--$ 11.3 \times $ energy reduction for very small
reductions in accuracy.",
acknowledgement = ack-nhfb,
articleno = "186",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Shi:2019:RAS,
author = "August Shi and Milica Hadzi-Tanovic and Lingming Zhang
and Darko Marinov and Owolabi Legunsen",
title = "Reflection-aware static regression test selection",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "187:1--187:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360613",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360613",
abstract = "Regression test selection (RTS) aims to speed up
regression testing by rerunning only tests that are
affected by code changes. RTS can be performed using
static or dynamic analysis techniques. Our prior study
showed that static and dynamic RTS perform \ldots{}",
acknowledgement = ack-nhfb,
articleno = "187",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Song:2019:ASD,
author = "Dowon Song and Myungho Lee and Hakjoo Oh",
title = "Automatic and scalable detection of logical errors in
functional programming assignments",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "188:1--188:30",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360614",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360614",
abstract = "We present a new technique for automatically detecting
logical errors in functional programming assignments.
Compared to syntax or type errors, detecting logical
errors remains largely a manual process that requires
hand-made test cases. However, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "188",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2019:DNP,
author = "Shuai Wang and Chengyu Zhang and Zhendong Su",
title = "Detecting nondeterministic payment bugs in {Ethereum}
smart contracts",
journal = j-PACMPL,
volume = "3",
number = "OOPSLA",
pages = "189:1--189:29",
month = oct,
year = "2019",
DOI = "https://doi.org/10.1145/3360615",
bibdate = "Fri Aug 7 19:22:30 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/bitcoin.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3360615",
abstract = "The term ``smart contracts'' has become ubiquitous to
describe an enormous number of programs uploaded to the
popular Ethereum blockchain system. Despite rapid
growth of the smart contract ecosystem, errors and
exploitations have been constantly reported rom online
contract systems, which has put financial stability at
risk with losses totaling millions of US dollars. Most
existing research focuses on pinpointing specific types
of vulnerabilities using known patterns. However, due
to the lack of awareness of the inherent nondeterminism
in the Ethereum blockchain system and how it affects
the funds transfer of smart contracts, there can be
unknown vulnerabilities that may be exploited by
attackers to access numerous online smart
contracts.\par
In this paper, we introduce a methodical approach to
understanding the inherent nondeterminism in the
Ethereum blockchain system and its (unwanted) influence
on contract payments. We show that our new focus on
nondeterminism-related smart contract payment bugs
captures the root causes of many common vulnerabilities
without relying on any known patterns and also
encompasses recently disclosed issues that are not
handled by existing research. To do so, we introduce
techniques to systematically model components in the
contract execution context and to expose various
nondeterministic factors that are not yet fully
understood. We further study how these nondeterministic
factors impact contract funds transfer using
information flow tracking. The technical challenge of
detecting nondeterministic payments lies in discovering
the contract global variables subtly affected by
read-write hazards because of unpredictable transaction
scheduling and external callee behavior. We show how to
augment and instrument a contract program into a
representation that simulates the execution of a large
subset of the contract behavior. The instrumented code
is then analyzed to flag nondeterministic global
variables using off-the-shelf model checkers.\par
We implement the proposed techniques as a practical
tool named NPChecker (Nondeterministic Payment Checker)
and evaluate it on 30K online contracts (3,075
distinct) collected from the Ethereum mainnet.
NPChecker has successfully detected nondeterministic
payments in 1,111 online contracts with reasonable
cost. Further investigation reports high precision of
NPChecker (only four false positives in a manual study
of 50 contracts). We also show that NPChecker unveils
contracts vulnerable to recently-disclosed attack
vectors. NPChecker can identify all six new
vulnerabilities or variants of common smart contract
vulnerabilities that are missed by existing research
relying on a ``contract vulnerability checklist.''",
acknowledgement = ack-nhfb,
articleno = "189",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barbarossa:2020:TSS,
author = "Davide Barbarossa and Giulio Manzonetto",
title = "{Taylor} subsumes {Scott}, {Berry}, {Kahn} and
{Plotkin}",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "1:1--1:23",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371069",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371069",
abstract = "The speculative ambition of replacing the old theory
of program approximation based on syntactic continuity
with the theory of resource consumption based on Taylor
expansion and originating from the differential $
\lambda $-calculus is nowadays at hand. Using
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "1",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Clochard:2020:DVG,
author = "Martin Clochard and Claude March{\'e} and Andrei
Paskevich",
title = "Deductive verification with ghost monitors",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "2:1--2:26",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371070",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371070",
abstract = "We present a new approach to deductive program
verification based on auxiliary programs called ghost
monitors. This technique is useful when the syntactic
structure of the target program is not well suited for
verification, for example, when an \ldots{}",
acknowledgement = ack-nhfb,
articleno = "2",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chang:2020:DTS,
author = "Stephen Chang and Michael Ballantyne and Milo Turner
and William J. Bowman",
title = "Dependent type systems as macros",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "3:1--3:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371071",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371071",
abstract = "We present Turnstile+, a high-level, macros-based
metaDSL for building dependently typed languages. With
it, programmers may rapidly prototype and iterate on
the design of new dependently typed features and
extensions. Or they may create entirely \ldots{}",
acknowledgement = ack-nhfb,
articleno = "3",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Maillard:2020:NRP,
author = "Kenji Maillard and Catalin Hritcu and Exequiel Rivas
and Antoine {Van Muylder}",
title = "The next 700 relational program logics",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "4:1--4:33",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371072",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371072",
abstract = "We propose the first framework for defining relational
program logics for arbitrary monadic effects. The
framework is embedded within a relational dependent
type theory and is highly expressive. At the semantic
level, we provide an algebraic \ldots{}",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Feldman:2020:CII,
author = "Yotam M. Y. Feldman and Neil Immerman and Mooly Sagiv
and Sharon Shoham",
title = "Complexity and information in invariant inference",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "5:1--5:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371073",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371073",
abstract = "This paper addresses the complexity of SAT-based
invariant inference, a prominent approach to safety
verification. We consider the problem of inferring an
inductive invariant of polynomial length given a
transition system and a safety property. We \ldots{}",
acknowledgement = ack-nhfb,
articleno = "5",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hinrichsen:2020:AST,
author = "Jonas Kastberg Hinrichsen and Jesper Bengtson and
Robbert Krebbers",
title = "{Actris}: session-type based reasoning in separation
logic",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "6:1--6:30",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371074",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371074",
abstract = "Message passing is a useful abstraction to implement
concurrent programs. For real-world systems, however,
it is often combined with other programming and
concurrency paradigms, such as higher-order functions,
mutable state, shared-memory concurrency, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "6",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barthe:2020:FVC,
author = "Gilles Barthe and Sandrine Blazy and Benjamin
Gr{\'e}goire and R{\'e}mi Hutin and Vincent Laporte and
David Pichardie and Alix Trieu",
title = "Formal verification of a constant-time preserving {C}
compiler",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "7:1--7:30",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371075",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/cryptography2020.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371075",
abstract = "Timing side-channels are arguably one of the main
sources of vulnerabilities in cryptographic
implementations. One effective mitigation against
timing side-channels is to write programs that do not
perform secret-dependent branches and memory accesses.
This mitigation, known as ``cryptographic
constant-time'', is adopted by several popular
cryptographic libraries.\par
This paper focuses on compilation of cryptographic
constant-time programs, and more specifically on the
following question: is the code generated by a
realistic compiler for a constant-time source program
itself provably constant-time? Surprisingly, we answer
the question positively for a mildly modified version
of the CompCert compiler, a formally verified and
moderately optimizing compiler for C. Concretely, we
modify the CompCert compiler to eliminate sources of
potential leakage. Then, we instrument the operational
semantics of CompCert intermediate languages so as to
be able to capture cryptographic constant-time.
Finally, we prove that the modified CompCert compiler
preserves constant-time. Our mechanization maximizes
reuse of the CompCert correctness proof, through the
use of new proof techniques for proving preservation of
constant-time. These techniques achieve complementary
trade-offs between generality and tractability of proof
effort, and are of independent interest.",
acknowledgement = ack-nhfb,
articleno = "7",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sozeau:2020:CCC,
author = "Matthieu Sozeau and Simon Boulier and Yannick Forster
and Nicolas Tabareau and Th{\'e}o Winterhalter",
title = "{Coq} {Coq} correct! {Verification} of type checking
and erasure for {Coq}, in {Coq}",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "8:1--8:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371076",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371076",
abstract = "Coq is built around a well-delimited kernel that
performs typechecking for definitions in a variant of
the Calculus of Inductive Constructions (CIC). Although
the metatheory of CIC is very stable and reliable, the
correctness of its implementation in Coq \ldots{}",
acknowledgement = ack-nhfb,
articleno = "8",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hu:2020:UDF,
author = "Jason Z. S. Hu and Ondrej Lhot{\'a}k",
title = "Undecidability of $ d_\lt $: and its decidable
fragments",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "9:1--9:30",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371077",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371077",
abstract = "Dependent Object Types (DOT) is a calculus with path
dependent types, intersection types, and object
self-references, which serves as the core calculus of
Scala 3. Although the calculus has been proven sound,
it remains open whether type checking in DOT \ldots{}",
acknowledgement = ack-nhfb,
articleno = "9",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{OHearn:2020:IL,
author = "Peter W. O'Hearn",
title = "Incorrectness logic",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "10:1--10:32",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371078",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371078",
abstract = "Program correctness and incorrectness are two sides of
the same coin. As a programmer, even if you would like
to have correctness, you might find yourself spending
most of your time reasoning about incorrectness. This
includes informal reasoning that \ldots{}",
acknowledgement = ack-nhfb,
articleno = "10",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Raad:2020:PSI,
author = "Azalea Raad and John Wickerson and Gil Neiger and
Viktor Vafeiadis",
title = "Persistency semantics of the {Intel-x86}
architecture",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "11:1--11:31",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371079",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371079",
abstract = "Emerging non-volatile memory (NVM) technologies
promise the durability of disks with the performance of
RAM. To describe the persistency guarantees of NVM,
several memory persistency models have been proposed in
the literature. However, the persistency semantics of
the ubiquitous x86 architecture remains unexplored to
date. To close this gap, we develop the Px86
(`persistent x86') model, formalising the persistency
semantics of Intel-x86 for the first time. We formulate
Px86 both operationally and declaratively, and prove
that the two characterisations are equivalent. To
demonstrate the application of Px86, we develop two
persistent libraries over Px86: a persistent
transactional library, and a persistent variant of the
Michael--Scott queue. Finally, we encode our
declarative Px86 model in Alloy and use it to generate
persistency litmus tests automatically.",
acknowledgement = ack-nhfb,
articleno = "11",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Guo:2020:PST,
author = "Zheng Guo and Michael James and David Justo and
Jiaxiao Zhou and Ziteng Wang and Ranjit Jhala and Nadia
Polikarpova",
title = "Program synthesis by type-guided abstraction
refinement",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "12:1--12:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371080",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371080",
abstract = "We consider the problem of type-directed
component-based synthesis where, given a set of (typed)
components and a query type, the goal is to synthesize
a term that inhabits the query. Classical approaches
based on proof search in intuitionistic logics
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "12",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Farzan:2020:RSP,
author = "Azadeh Farzan and Anthony Vandikas",
title = "Reductions for safety proofs",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "13:1--13:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371081",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371081",
abstract = "Program reductions are used widely to simplify
reasoning about the correctness of concurrent and
distributed programs. In this paper, we propose a
general approach to proof simplification of concurrent
programs based on exploring generic classes of
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "13",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kim:2020:DPF,
author = "Sung Kook Kim and Arnaud J. Venet and Aditya V.
Thakur",
title = "Deterministic parallel fixpoint computation",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "14:1--14:33",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371082",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371082",
abstract = "Abstract interpretation is a general framework for
expressing static program analyses. It reduces the
problem of extracting properties of a program to
computing an approximation of the least fixpoint of a
system of equations. The de facto approach for
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "14",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kavvos:2020:REF,
author = "G. A. Kavvos and Edward Morehouse and Daniel R. Licata
and Norman Danner",
title = "Recurrence extraction for functional programs through
call-by-push-value",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "15:1--15:31",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371083",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371083",
abstract = "The main way of analysing the complexity of a program
is that of extracting and solving a recurrence that
expresses its running time in terms of the size of its
input. We develop a method that automatically extracts
such recurrences from the syntax of \ldots{}",
acknowledgement = ack-nhfb,
articleno = "15",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lee:2020:TVS,
author = "Wonyeol Lee and Hangyeol Yu and Xavier Rival and
Hongseok Yang",
title = "Towards verified stochastic variational inference for
probabilistic programs",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "16:1--16:33",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371084",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371084",
abstract = "Probabilistic programming is the idea of writing
models from statistics and machine learning using
program notations and reasoning about these models
using generic inference engines. Recently its
combination with deep learning has been explored
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "16",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pavlogiannis:2020:FSE,
author = "Andreas Pavlogiannis",
title = "Fast, sound, and effectively complete dynamic race
prediction",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "17:1--17:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371085",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371085",
abstract = "Writing concurrent programs is highly error-prone due
to the nondeterminism in interprocess communication.
The most reliable indicators of errors in concurrency
are data races, which are accesses to a shared resource
that can be executed concurrently. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "17",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Aschieri:2020:PMP,
author = "Federico Aschieri and Francesco A. Genco",
title = "{Par} means parallel: multiplicative linear logic
proofs as concurrent functional programs",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "18:1--18:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371086",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371086",
abstract = "Along the lines of Abramsky's ``Proofs-as-Processes''
program, we present an interpretation of multiplicative
linear logic as typing system for concurrent functional
programming. In particular, we study a linear
multiple-conclusion natural deduction \ldots{}",
acknowledgement = ack-nhfb,
articleno = "18",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lew:2020:TTD,
author = "Alexander K. Lew and Marco F. Cusumano-Towner and
Benjamin Sherman and Michael Carbin and Vikash
K. Mansinghka",
title = "Trace types and denotational semantics for sound
programmable inference in probabilistic languages",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "19:1--19:32",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371087",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371087",
abstract = "Modern probabilistic programming languages aim to
formalize and automate key aspects of probabilistic
modeling and inference. Many languages provide
constructs for programmable inference that enable
developers to improve inference speed and accuracy by
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "19",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Liu:2020:VTF,
author = "Mengqi Liu and Lionel Rieg and Zhong Shao and Ronghui
Gu and David Costanzo and Jung-Eun Kim and Man-Ki Yoon",
title = "Virtual timeline: a formal abstraction for verifying
preemptive schedulers with temporal isolation",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "20:1--20:31",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371088",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371088",
abstract = "The reliability and security of safety-critical
real-time systems are of utmost importance because the
failure of these systems could incur severe
consequences (e.g., loss of lives or failure of a
mission). Such properties require strong isolation
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "20",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barthe:2020:RPQ,
author = "Gilles Barthe and Justin Hsu and Mingsheng Ying and
Nengkun Yu and Li Zhou",
title = "Relational proofs for quantum programs",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "21:1--21:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371089",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371089",
abstract = "Relational verification of quantum programs has many
potential applications in quantum and post-quantum
security and other domains. We propose a relational
program logic for quantum programs. The interpretation
of our logic is based on a quantum \ldots{}",
acknowledgement = ack-nhfb,
articleno = "21",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Arntzenius:2020:SVE,
author = "Michael Arntzenius and Neel Krishnaswami",
title = "Semina{\"\i}ve evaluation for a higher-order
functional language",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "22:1--22:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371090",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371090",
abstract = "One of the workhorse techniques for implementing
bottom-up Datalog engines is semina{\"\i}ve evaluation.
This optimization improves the performance of Datalog's
most distinctive feature: recursively defined
predicates. These are computed iteratively, and
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "22",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Song:2020:CCC,
author = "Youngju Song and Minki Cho and Dongjoo Kim and
Yonghyun Kim and Jeehoon Kang and Chung-Kil Hur",
title = "{CompCertM}: {CompCert} with {C}-assembly linking and
lightweight modular verification",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "23:1--23:31",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371091",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371091",
abstract = "Supporting multi-language linking such as linking C
and handwritten assembly modules in the verified
compiler CompCert requires a more compositional
verification technique than that used in CompCert just
supporting separate compilation. The two \ldots{}",
acknowledgement = ack-nhfb,
articleno = "23",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Handley:2020:LYA,
author = "Martin A. T. Handley and Niki Vazou and Graham
Hutton",
title = "Liquidate your assets: reasoning about resource usage
in liquid {Haskell}",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "24:1--24:27",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371092",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371092",
abstract = "Liquid Haskell is an extension to the type system of
Haskell that supports formal reasoning about program
correctness by encoding logical properties as
refinement types. In this article, we show how Liquid
Haskell can also be used to reason about \ldots{}",
acknowledgement = ack-nhfb,
articleno = "24",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2020:PES,
author = "Peixin Wang and Hongfei Fu and Krishnendu Chatterjee
and Yuxin Deng and Ming Xu",
title = "Proving expected sensitivity of probabilistic programs
with randomized variable-dependent termination time",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "25:1--25:30",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371093",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371093",
abstract = "The notion of program sensitivity (aka Lipschitz
continuity) specifies that changes in the program input
result in proportional changes to the program output.
For probabilistic programs the notion is naturally
extended to expected sensitivity. A \ldots{}",
acknowledgement = ack-nhfb,
articleno = "25",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Abdulla:2020:PVU,
author = "Parosh Aziz Abdulla and Mohamed Faouzi Atig and Rojin
Rezvan",
title = "Parameterized verification under {TSO} is
{PSPACE}-complete",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "26:1--26:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371094",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371094",
abstract = "We consider parameterized verification of concurrent
programs under the Total Store Order (TSO) semantics. A
program consists of a set of processes that share a set
of variables on which they can perform read and write
operations. We show that the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "26",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Forster:2020:WCV,
author = "Yannick Forster and Fabian Kunze and Marc Roth",
title = "The weak call-by-value $ \lambda $-calculus is
reasonable for both time and space",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "27:1--27:23",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371095",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371095",
abstract = "We study the weak call-by-value $ \lambda $-calculus
as a model for computational complexity theory and
establish the natural measures for time and space ---
the number of beta-reduction steps and the size of the
largest term in a computation --- as reasonable
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "27",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bruni:2020:AEP,
author = "Roberto Bruni and Roberto Giacobazzi and Roberta Gori
and Isabel Garcia-Contreras and Dusko Pavlovic",
title = "Abstract extensionality: on the properties of
incomplete abstract interpretations",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "28:1--28:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371096",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371096",
abstract = "In this paper we generalise the notion of extensional
(functional) equivalence of programs to abstract
equivalences induced by abstract interpretations. The
standard notion of extensional equivalence is recovered
as the special case, induced by the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "28",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Migeed:2020:WDA,
author = "Zeina Migeed and Jens Palsberg",
title = "What is decidable about gradual types?",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "29:1--29:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371097",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371097",
abstract = "Programmers can use gradual types to migrate programs
to have more precise type annotations and thereby
improve their readability, efficiency, and safety. Such
migration requires an exploration of the migration
space and can benefit from tool support, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "29",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Binder:2020:DDS,
author = "David Binder and Julian Jabs and Ingo Skupin and Klaus
Ostermann",
title = "Decomposition diversity with symmetric data and
codata",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "30:1--30:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371098",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371098",
abstract = "The expression problem describes a fundamental
trade-off in program design: Should a program's primary
decomposition be determined by the way its domain
objects are constructed (``functional'' decomposition),
or by the way they are destructed \ldots{}.",
acknowledgement = ack-nhfb,
articleno = "30",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ahrens:2020:RMT,
author = "Benedikt Ahrens and Andr{\'e} Hirschowitz and Ambroise
Lafont and Marco Maggesi",
title = "Reduction monads and their signatures",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "31:1--31:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371099",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371099",
abstract = "In this work, we study reduction monads, which are
essentially the same as monads relative to the free
functor from sets into multigraphs. Reduction monads
account for two aspects of the lambda calculus: on the
one hand, in the monadic viewpoint, the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "31",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sammler:2020:HLB,
author = "Michael Sammler and Deepak Garg and Derek Dreyer and
Tadeusz Litak",
title = "The high-level benefits of low-level sandboxing",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "32:1--32:32",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371100",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371100",
abstract = "Sandboxing is a common technique that allows
low-level, untrusted components to safely interact with
trusted code. However, previous work has only
investigated the low-level memory isolation guarantees
of sandboxing, leaving open the question of the end-.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "32",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{deVilhena:2020:SGV,
author = "Paulo Em{\'\i}lio de Vilhena and Fran{\c{c}}ois
Pottier and Jacques-Henri Jourdan",
title = "Spy game: verifying a local generic solver in {Iris}",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "33:1--33:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371101",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371101",
abstract = "We verify the partial correctness of a ``local generic
solver'', that is, an on-demand, incremental, memoizing
least fixed point computation algorithm. The
verification is carried out in Iris, a modern breed of
concurrent separation logic. The \ldots{}",
acknowledgement = ack-nhfb,
articleno = "33",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Dang:2020:RMR,
author = "Hoang-Hai Dang and Jacques-Henri Jourdan and
Jan-Oliver Kaiser and Derek Dreyer",
title = "{RustBelt} meets relaxed memory",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "34:1--34:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371102",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/rust.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371102",
abstract = "The Rust programming language supports safe systems
programming by means of a strong ownership-tracking
type system. In their prior work on RustBelt, Jung et
al. began the task of setting Rust's safety claims on a
more rigorous formal foundation. Specifically, they
used Iris, a Coq-based separation logic framework, to
build a machine-checked proof of semantic soundness for
a $ \lambda $-calculus model of Rust, as well as for a
number of widely-used Rust libraries that internally
employ unsafe language features. However, they also
made the significant simplifying assumption that the
language is sequentially consistent. In this paper, we
adapt RustBelt to account for the relaxed-memory
operations that concurrent Rust libraries actually use,
in the process uncovering a data race in the Arc
library. We focus on the most interesting technical
problem: how to reason about resource reclamation under
relaxed memory, using a logical construction we call
synchronized ghost state.",
acknowledgement = ack-nhfb,
articleno = "34",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mathur:2020:DMS,
author = "Umang Mathur and Adithya Murali and Paul Krogmeier and
P. Madhusudan and Mahesh Viswanathan",
title = "Deciding memory safety for single-pass
heap-manipulating programs",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "35:1--35:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371103",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371103",
abstract = "We investigate the decidability of automatic program
verification for programs that manipulate heaps, and in
particular, decision procedures for proving memory
safety for them. We extend recent work that identified
a decidable subclass of uninterpreted \ldots{}",
acknowledgement = ack-nhfb,
articleno = "35",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Saad:2020:OAS,
author = "Feras A. Saad and Cameron E. Freer and Martin C.
Rinard and Vikash K. Mansinghka",
title = "Optimal approximate sampling from discrete probability
distributions",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "36:1--36:31",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371104",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371104",
abstract = "This paper addresses a fundamental problem in random
variate generation: given access to a random source
that emits a stream of independent fair bits, what is
the most accurate and entropy-efficient algorithm for
sampling from a discrete probability \ldots{}",
acknowledgement = ack-nhfb,
articleno = "36",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hark:2020:ALH,
author = "Marcel Hark and Benjamin Lucien Kaminski and
J{\"u}rgen Giesl and Joost-Pieter Katoen",
title = "Aiming low is harder: induction for lower bounds in
probabilistic program verification",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "37:1--37:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371105",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371105",
abstract = "We present a new inductive rule for verifying lower
bounds on expected values of random variables after
execution of probabilistic loops as well as on their
expected runtimes. Our rule is simple in the sense that
loop body semantics need to be applied \ldots{}",
acknowledgement = ack-nhfb,
articleno = "37",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Abadi:2020:SDP,
author = "Mart{\'\i}n Abadi and Gordon D. Plotkin",
title = "A simple differentiable programming language",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "38:1--38:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371106",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371106",
abstract = "Automatic differentiation plays a prominent role in
scientific computing and in modern machine learning,
often in the context of powerful programming systems.
The relation of the various embodiments of automatic
differentiation to the mathematical notion of
derivative is not always entirely clear---discrepancies
can arise, sometimes inadvertently. In order to study
automatic differentiation in such programming contexts,
we define a small but expressive programming language
that includes a construct for reverse-mode
differentiation. We give operational and denotational
semantics for this language. The operational semantics
employs popular implementation techniques, while the
denotational semantics employs notions of
differentiation familiar from real analysis. We
establish that these semantics coincide.",
acknowledgement = ack-nhfb,
articleno = "38",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Vandenbroucke:2020:PFP,
author = "Alexander Vandenbroucke and Tom Schrijvers",
title = "{P$ \lambda \omega $NK}: functional probabilistic
{NetKAT}",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "39:1--39:27",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371107",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371107",
abstract = "This work presents P$ \lambda \omega $NK, a functional
probabilistic network programming language that extends
Probabilistic NetKAT (PNK). Like PNK, it enables
probabilistic modelling of network behaviour, by
providing probabilistic choice and infinite iteration
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "39",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jones:2020:PTC,
author = "Mark P. Jones and J. Garrett Morris and Richard A.
Eisenberg",
title = "Partial type constructors: or, making ad hoc datatypes
less ad hoc",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "40:1--40:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371108",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371108",
abstract = "Functional programming languages assume that type
constructors are total. Yet functional programmers know
better: counterexamples range from container types that
make limiting assumptions about their contents (e.g.,
requiring computable equality or \ldots{}).",
acknowledgement = ack-nhfb,
articleno = "40",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jung:2020:SBA,
author = "Ralf Jung and Hoang-Hai Dang and Jeehoon Kang and
Derek Dreyer",
title = "Stacked borrows: an aliasing model for {Rust}",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "41:1--41:32",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371109",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/rust.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371109",
abstract = "Type systems are useful not just for the safety
guarantees they provide, but also for helping compilers
generate more efficient code by simplifying important
program analyses. In Rust, the type system imposes a
strict discipline on pointer aliasing, and it is an
express goal of the Rust compiler developers to make
use of that alias information for the purpose of
program optimizations that reorder memory accesses. The
problem is that Rust also supports unsafe code, and
programmers can write unsafe code that bypasses the
usual compiler checks to violate the aliasing
discipline. To strike a balance between optimizations
and unsafe code, the language needs to provide a set of
rules such that unsafe code authors can be sure, if
they are following these rules, that the compiler will
preserve the semantics of their code despite all the
optimizations it is doing.
In this work, we propose Stacked Borrows, an
operational semantics for memory accesses in Rust.
Stacked Borrows defines an aliasing discipline and
declares programs violating it to have undefined
behavior, meaning the compiler does not have to
consider such programs when performing optimizations.
We give formal proofs (mechanized in Coq) showing that
this rules out enough programs to enable optimizations
that reorder memory accesses around unknown code and
function calls, based solely on intraprocedural
reasoning. We also implemented this operational model
in an interpreter for Rust and ran large parts of the
Rust standard library test suite in the interpreter to
validate that the model permits enough real-world
unsafe Rust code.",
acknowledgement = ack-nhfb,
articleno = "41",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Beckett:2020:AID,
author = "Ryan Beckett and Aarti Gupta and Ratul Mahajan and
David Walker",
title = "Abstract interpretation of distributed network control
planes",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "42:1--42:27",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371110",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371110",
abstract = "The control plane of most computer networks runs
distributed routing protocols that determine if and how
traffic is forwarded. Errors in the configuration of
network control planes frequently knock down critical
online services, leading to economic \ldots{}",
acknowledgement = ack-nhfb,
articleno = "42",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Greenberg:2020:EFS,
author = "Michael Greenberg and Austin J. Blatt",
title = "Executable formal semantics for the {POSIX} shell",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "43:1--43:30",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371111",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/gnu.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371111",
abstract = "The POSIX shell is a widely deployed, powerful tool
for managing computer systems. The shell is the
expert's control panel, a necessary tool for
configuring, compiling, installing, maintaining, and
deploying systems. Even though it is powerful, critical
nfrastructure, the POSIX shell is maligned and
misunderstood. Its power and its subtlety are a
dangerous combination.\par
We define a formal, mechanized, executable small-step
semantics for the POSIX shell, which we call Smoosh. We
compared Smoosh against seven other shells that aim for
some measure of POSIX compliance (bash, dash, zsh, OSH,
mksh, ksh93, and yash). Using three test suites --- the
POSIX test suite, the Modernish test suite and shell
diagnostic, and a test suite of our own device --- we
found Smoosh's semantics to be the most conformant to
the POSIX standard. Modernish judges Smoosh to have the
fewest bugs (just one, from using dash's parser) and no
quirks. To show that our semantics is useful beyond
yielding a conformant, executable shell, we also
implemented a symbolic stepper to illuminate the subtle
behavior of the shell.\par
Smoosh will serve as a foundation for formal study of
the POSIX shell, supporting research on and development
of new shells, new tooling for shells, and new shell
designs.",
acknowledgement = ack-nhfb,
articleno = "43",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bourke:2020:MSV,
author = "Timothy Bourke and L{\'e}lio Brun and Marc Pouzet",
title = "Mechanized semantics and verified compilation for a
dataflow synchronous language with reset",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "44:1--44:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371112",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371112",
abstract = "Specifications based on block diagrams and state
machines are used to design control software,
especially in the certified development of
safety-critical applications. Tools like SCADE Suite
and Simulink/Stateflow are equipped with compilers that
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "44",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jung:2020:FOP,
author = "Ralf Jung and Rodolphe Lepigre and Gaurav
Parthasarathy and Marianna Rapoport and Amin Timany and
Derek Dreyer and Bart Jacobs",
title = "The future is ours: prophecy variables in separation
logic",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "45:1--45:32",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371113",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371113",
abstract = "Early in the development of Hoare logic, Owicki and
Gries introduced auxiliary variables as a way of
encoding information about the history of a program's
execution that is useful for verifying its correctness.
Over a decade later, Abadi and Lamport \ldots{}",
acknowledgement = ack-nhfb,
articleno = "45",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{New:2020:GPT,
author = "Max S. New and Dustin Jamner and Amal Ahmed",
title = "Graduality and parametricity: together again for the
first time",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "46:1--46:32",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371114",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371114",
abstract = "Parametric polymorphism and gradual typing have proven
to be a difficult combination, with no language yet
produced that satisfies the fundamental theorems of
each: parametricity and graduality. Notably, Toro,
Labrada, and Tanter (POPL 2019) conjecture \ldots{}",
acknowledgement = ack-nhfb,
articleno = "46",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Westrick:2020:DNP,
author = "Sam Westrick and Rohan Yadav and Matthew Fluet and
Umut A. Acar",
title = "Disentanglement in nested-parallel programs",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "47:1--47:32",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371115",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371115",
abstract = "Nested parallelism has proved to be a popular approach
for programming the rapidly expanding range of
multicore computers. It allows programmers to express
parallelism at a high level and relies on a run-time
system and a scheduler to deliver efficiency \ldots{}",
acknowledgement = ack-nhfb,
articleno = "47",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Biernacki:2020:BDL,
author = "Dariusz Biernacki and Maciej Pir{\'o}g and Piotr
Polesiuk and Filip Sieczkowski",
title = "Binders by day, labels by night: effect instances via
lexically scoped handlers",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "48:1--48:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371116",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371116",
abstract = "Handlers of algebraic effects aspire to be a practical
and robust programming construct that allows one to
define, use, and combine different computational
effects. Interestingly, a critical problem that still
bars the way to their popular adoption is \ldots{}",
acknowledgement = ack-nhfb,
articleno = "48",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2020:VE,
author = "Chenglong Wang and Yu Feng and Rastislav Bodik and
Alvin Cheung and Isil Dillig",
title = "Visualization by example",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "49:1--49:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371117",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371117",
abstract = "While visualizations play a crucial role in gaining
insights from data, generating useful visualizations
from a complex dataset is far from an easy task. In
particular, besides understanding the functionality
provided by existing visualization libraries,.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "49",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Darais:2020:LPO,
author = "David Darais and Ian Sweet and Chang Liu and Michael
Hicks",
title = "A language for probabilistically oblivious
computation",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "50:1--50:31",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371118",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371118",
abstract = "An oblivious computation is one that is free of direct
and indirect information leaks, e.g., due to observable
differences in timing and memory access patterns. This
paper presents Lambda Obliv, a core language whose type
system enforces obliviousness. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "50",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Xia:2020:ITR,
author = "Li-yao Xia and Yannick Zakowski and Paul He and
Chung-Kil Hur and Gregory Malecha and Benjamin
C. Pierce and Steve Zdancewic",
title = "Interaction trees: representing recursive and impure
programs in {Coq}",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "51:1--51:32",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371119",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371119",
abstract = "Interaction trees (ITrees) are a general-purpose data
structure for representing the behaviors of recursive
programs that interact with their environments. A
coinductive variant of ``free monads,'' ITrees are
built out of uninterpreted events and their \ldots{}",
acknowledgement = ack-nhfb,
articleno = "51",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Samak:2020:SRC,
author = "Malavika Samak and Deokhwan Kim and Martin C.
Rinard",
title = "Synthesizing replacement classes",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "52:1--52:33",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371120",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371120",
abstract = "We present a new technique for automatically
synthesizing replacement classes. The technique starts
with an original class O and a potential replacement
class R, then uses R to synthesize a new class that
implements the same interface and provides the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "52",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Xie:2020:KID,
author = "Ningning Xie and Richard A. Eisenberg and Bruno C. d.
S. Oliveira",
title = "Kind inference for datatypes",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "53:1--53:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371121",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371121",
abstract = "In recent years, languages like Haskell have seen a
dramatic surge of new features that significantly
extends the expressive power of their type systems.
With these features, the challenge of kind inference
for datatype declarations has presented itself
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "53",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bansal:2020:SCP,
author = "Suguman Bansal and Kedar S. Namjoshi and Yaniv
Sa'ar",
title = "Synthesis of coordination programs from linear
temporal specifications",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "54:1--54:27",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371122",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371122",
abstract = "This paper presents a method for synthesizing a
reactive program to coordinate the actions of a group
of other reactive programs so that the combined system
satisfies a temporal specification of its desired
long-term behavior. Traditionally, reactive \ldots{}",
acknowledgement = ack-nhfb,
articleno = "54",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barthe:2020:PSL,
author = "Gilles Barthe and Justin Hsu and Kevin Liao",
title = "A probabilistic separation logic",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "55:1--55:30",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371123",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371123",
abstract = "Probabilistic independence is a useful concept for
describing the result of random sampling-a basic
operation in all probabilistic languages-and for
reasoning about groups of random variables.
Nevertheless, existing verification methods handle
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "55",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{An:2020:AEB,
author = "Shengwei An and Rishabh Singh and Sasa Misailovic and
Roopsha Samanta",
title = "Augmented example-based synthesis using relational
perturbation properties",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "56:1--56:24",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371124",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371124",
abstract = "Example-based specifications for program synthesis are
inherently ambiguous and may cause synthesizers to
generate programs that do not exhibit intended behavior
on unseen inputs. Existing synthesis techniques attempt
to address this problem by either \ldots{}",
acknowledgement = ack-nhfb,
articleno = "56",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Dahlqvist:2020:SHO,
author = "Fredrik Dahlqvist and Dexter Kozen",
title = "Semantics of higher-order probabilistic programs with
conditioning",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "57:1--57:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371125",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371125",
abstract = "We present a denotational semantics for higher-order
probabilistic programs in terms of linear operators
between Banach spaces. Our semantics is rooted in the
classical theory of Banach spaces and their tensor
products, but bears similarities with the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "57",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pedrot:2020:FTH,
author = "Pierre-Marie P{\'e}drot and Nicolas Tabareau",
title = "The fire triangle: how to mix substitution, dependent
elimination, and effects",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "58:1--58:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371126",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371126",
abstract = "There is a critical tension between substitution,
dependent elimination and effects in type theory. In
this paper, we crystallize this tension in the form of
a no-go theorem that constitutes the fire triangle of
type theory. To release this tension, we \ldots{}",
acknowledgement = ack-nhfb,
articleno = "58",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jaber:2020:SAC,
author = "Guilhem Jaber",
title = "{SyTeCi}: automating contextual equivalence for
higher-order programs with references",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "59:1--59:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371127",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371127",
abstract = "We propose a framework to study contextual equivalence
of programs written in a call-by-value functional
language with local integer references. It reduces the
problem of contextual equivalence to the problem of
non-reachability in a transition system \ldots{}",
acknowledgement = ack-nhfb,
articleno = "59",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zou:2020:DFP,
author = "Daming Zou and Muhan Zeng and Yingfei Xiong and
Zhoulai Fu and Lu Zhang and Zhendong Su",
title = "Detecting floating-point errors via atomic
conditions",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "60:1--60:27",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371128",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/fparith.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371128",
abstract = "This paper tackles the important, difficult problem of
detecting program inputs that trigger large
floating-point errors in numerical code. It introduces
a novel, principled {\em dynamic analysis\/} that
leverages the mathematically rigorously analyzed {\em
condition numbers\/} for atomic numerical operations,
which we call {\em atomic conditions}, to effectively
guide the search for large floating-point errors.
Compared with existing approaches, our work based on
atomic conditions has several distinctive benefits: (1)
it does not rely on high-precision implementations to
act as approximate oracles, which are difficult to
obtain in general and computationally costly; and (2)
atomic conditions provide accurate, modular search
guidance. These benefits in combination lead to a
highly effective approach that detects more significant
errors in real-world code (e.g., widely-used numerical
library functions) and achieves several orders of
speedups over the state-of-the-art, thus making error
analysis significantly more practical. We expect the
methodology and principles behind our approach to
benefit other floating-point program analysis tasks
such as debugging, repair and synthesis. To facilitate
the reproduction of our work, we have made our
implementation, evaluation data and results publicly
available on GitHub at
\url{https://github.com/FP-Analysis/atomic-condition}",
acknowledgement = ack-nhfb,
articleno = "60",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Smolka:2020:GKA,
author = "Steffen Smolka and Nate Foster and Justin Hsu and
Tobias Kapp{\'e} and Dexter Kozen and Alexandra Silva",
title = "Guarded {Kleene} algebra with tests: verification of
uninterpreted programs in nearly linear time",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "61:1--61:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371129",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371129",
abstract = "Guarded Kleene Algebra with Tests (GKAT) is a
variation on Kleene Algebra with Tests (KAT) that
arises by restricting the union (+) and iteration (*)
operations from KAT to predicate-guarded versions. We
develop the (co)algebraic theory of GKAT and show
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "61",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Raghothaman:2020:PGS,
author = "Mukund Raghothaman and Jonathan Mendelson and David
Zhao and Mayur Naik and Bernhard Scholz",
title = "Provenance-guided synthesis of {Datalog} programs",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "62:1--62:27",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371130",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371130",
abstract = "We propose a new approach to synthesize Datalog
programs from input-output specifications. Our approach
leverages query provenance to scale the
counterexample-guided inductive synthesis (CEGIS)
procedure for program synthesis. In each iteration of
the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "62",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Clairambault:2020:FAQ,
author = "Pierre Clairambault and Marc de Visme",
title = "Full abstraction for the quantum lambda-calculus",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "63:1--63:28",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371131",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371131",
abstract = "Quantum programming languages permit a hardware
independent, high-level description of quantum
algorithms. In particular, the quantum $ \lambda
$-calculus is a higher-order language with quantum
primitives, mixing quantum data and classical control.
Giving \ldots{}",
acknowledgement = ack-nhfb,
articleno = "63",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Brunel:2020:BST,
author = "Alo{\"\i}s Brunel and Damiano Mazza and Michele
Pagani",
title = "Backpropagation in the simply typed lambda-calculus
with linear negation",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "64:1--64:27",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371132",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371132",
abstract = "Backpropagation is a classic automatic differentiation
algorithm computing the gradient of functions specified
by a certain class of simple, first-order programs,
called computational graphs. It is a fundamental tool
in several fields, most notably \ldots{}",
acknowledgement = ack-nhfb,
articleno = "64",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lazarek:2020:DBS,
author = "Lukas Lazarek and Alexis King and Samanvitha Sundar
and Robert Bruce Findler and Christos Dimoulas",
title = "Does blame shifting work?",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "65:1--65:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371133",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371133",
abstract = "Contract systems, especially of the higher-order
flavor, go hand in hand with blame. The pragmatic
purpose of blame is to narrow down the code that a
programmer needs to examine to locate the bug when the
contract system discovers a contract violation.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "65",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mackay:2020:DSP,
author = "Julian Mackay and Alex Potanin and Jonathan Aldrich
and Lindsay Groves",
title = "Decidable subtyping for path dependent types",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "66:1--66:27",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371134",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371134",
abstract = "Path dependent types have long served as an expressive
component of the Scala programming language. They allow
for the modelling of both bounded polymorphism and a
degree of nominal subtyping. Nominality in turn
provides the ability to capture first \ldots{}",
acknowledgement = ack-nhfb,
articleno = "66",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Thiemann:2020:LDS,
author = "Peter Thiemann and Vasco T. Vasconcelos",
title = "Label-dependent session types",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "67:1--67:29",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371135",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371135",
abstract = "Session types have emerged as a typing discipline for
communication protocols. Existing calculi with session
types come equipped with many different primitives that
combine communication with the introduction or
elimination of the transmitted value. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "67",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Meyer:2020:PLC,
author = "Roland Meyer and Sebastian Wolff",
title = "Pointer life cycle types for lock-free data structures
with memory reclamation",
journal = j-PACMPL,
volume = "4",
number = "POPL",
pages = "68:1--68:36",
month = jan,
year = "2020",
DOI = "https://doi.org/10.1145/3371136",
bibdate = "Fri Aug 7 18:46:52 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3371136",
abstract = "We consider the verification of lock-free data
structures that manually manage their memory with the
help of a safe memory reclamation (SMR) algorithm. Our
first contribution is a type system that checks whether
a program properly manages its memory. If \ldots{}",
acknowledgement = ack-nhfb,
articleno = "68",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hui:2020:AS,
author = "Roger K. W. Hui and Morten J. Kromberg",
title = "{APL} since 1978",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "69:1--69:108",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386319",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386319",
abstract = "The Evolution of APL, the HOPL I paper by Falkoff and
Iverson on APL, recounted the fundamental design
principles which shaped the implementation of the APL
language in 1966, and the early uses and other
influences which shaped its first decade of \ldots{}",
acknowledgement = ack-nhfb,
articleno = "69",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Stroustrup:2020:TCC,
author = "Bjarne Stroustrup",
title = "Thriving in a crowded and changing world: {C++}
2006--2020",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "70:1--70:168",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386320",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386320",
abstract = "By 2006, C++ had been in widespread industrial use for
20 years. It contained parts that had survived
unchanged since introduced into C in the early 1970s as
well as features that were novel in the early 2000s.
From 2006 to 2020, the C++ developer \ldots{}",
acknowledgement = ack-nhfb,
articleno = "70",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hickey:2020:HC,
author = "Rich Hickey",
title = "A history of {Clojure}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "71:1--71:46",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386321",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2020.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386321",
abstract = "Clojure was designed to be a general-purpose,
practical functional language, suitable for use by
professionals wherever its host language, e.g., Java,
would be. Initially designed in 2005 and released in
2007, Clojure is a dialect of Lisp, but is not a direct
descendant of any prior Lisp. It complements
programming with pure functions of immutable data with
concurrency-safe state management constructs that
support writing correct multithreaded programs without
the complexity of mutex locks.\par
Clojure is intentionally hosted, in that it compiles to
and runs on the runtime of another language, such as
the JVM. This is more than an implementation strategy;
numerous features ensure that programs written in
Clojure can leverage and interoperate with the
libraries of the host language directly and
efficiently.\par
In spite of combining two (at the time) rather
unpopular ideas, functional programming and Lisp,
Clojure has since seen adoption in industries as
diverse as finance, climate science, retail, databases,
analytics, publishing, healthcare, advertising and
genomics, and by consultancies and startups worldwide,
much to the career-altering surprise of its
author.\par
Most of the ideas in Clojure were not novel, but their
combination puts Clojure in a unique spot in language
design (functional, hosted, Lisp). This paper recounts
the motivation behind the initial development of
Clojure and the rationale for various design decisions
and language constructs. It then covers its evolution
subsequent to release and adoption.",
acknowledgement = ack-nhfb,
articleno = "71",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Reid:2020:HCS,
author = "John Reid and Bill Long and Jon Steidel",
title = "History of coarrays and {SPMD} parallelism in
{Fortran}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "72:1--72:30",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386322",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/fortran3.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386322",
abstract = "The coarray programming model is an expression of the
Single-Program-Multiple-Data (SPMD) programming model
through the simple device of adding a codimension to
the Fortran language. A data object declared with a
codimension is a coarray object. Codimensions express
the idea that some objects are located in local memory
while others are located in remote memory. Coarray
syntax obeys most of the same rules for normal array
syntax. It is familiar to the Fortran programmer so the
use of coarray syntax is natural and intuitive.
Although the basic idea is quite simple, inserting it
into the language definition turned out to be
difficult.\par
In addition, the process was complicated by rapidly
changing hardware and heated arguments over whether
parallelism should be supported best as an interface to
language-independent libraries, as a set of directives
superimposed on languages, or as a set of specific
extensions to existing languages.\par
In this paper, we review both the early history of
coarrays and also their development into a part of
Fortran 2008 and eventually into a larger part of
Fortran 2018. Coarrays have been used, for example, in
weather forecasting and in neural networks and deep
learning.",
acknowledgement = ack-nhfb,
articleno = "72",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bright:2020:ODP,
author = "Walter Bright and Andrei Alexandrescu and Michael
Parker",
title = "Origins of the {D} programming language",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "73:1--73:38",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386323",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2020.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/unicode.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386323",
abstract = "As its name suggests, the initial motivation for the D
programming language was to improve on C and C++ while
keeping their spirit. The D language was to preserve
those languages' efficiency, low-level access, and
Algol-style syntax. The areas D set out o improve
focused initially on rapid development, convenience,
and simplifying the syntax without hampering
expressiveness.\par
The genesis of D has its peculiarities, as is the case
with many other languages. Walter Bright, D's creator,
is a mechanical engineer by education who started out
working for Boeing designing gearboxes for the 757. He
was programming games on the side, and in trying to
make his game Empire run faster, became interested in
compilers. Despite having no experience, Bright set out
in 1982 to implement a compiler that produced better
code than those on the market at the time.\par
This interest materialized into a C compiler, followed
by compilers for C++, Java, and JavaScript. Best known
of these would be the Zortech C++ compiler, the first
(and to date only) C++-to-native compiler developed by
a single person. The D programming language began in
1999 as an effort to pull the best features of these
languages into a new one. Fittingly, D would use the by
that time mature C/C++ back end (optimizer and code
generator) that had been under continued development
and maintenance since 1982.\par
Between 1999 and 2006, Bright worked alone on the D
language definition and its implementation, although a
steadily increasing volume of patches from users was
incorporated. The new language would be based on the
past successes of the languages he'd used and
implemented, but would be clearly looking to the
future. D started with choices that are obvious today
but were less clear winners back in the 1990s: full
support for Unicode, IEEE floating point, 2s complement
arithmetic, and flat memory addressing (memory is
treated as a linear address space with no
segmentation). It would do away with certain
compromises from past languages imposed by shortages of
memory (for example, forward declarations would not be
required). It would primarily appeal to C and C++
users, as expertise with those languages would be
readily transferrable. The interface with C was
designed to be zero cost.\par
The language design was begun in late 1999. An alpha
version appeared in 2001 and the initial language was
completed, somewhat arbitrarily, at version 1.0 in
January 2007. During that time, the language evolved
considerably, both in capability and in the accretion
of a substantial worldwide community that became
increasingly involved with contributing. The front end
was open-sourced in April 2002, and the back end was
donated by Symantec to the open source community in
2017. Meanwhile, two additional open-source back ends
became mature in the 2010s: `gdc` (using the same back
end as the GNU C++ compiler) and `ldc` (using the LLVM
back end).\par
The increasing use of the D language in the 2010s
created an impetus for formalization and development
management. To that end, the D Language Foundation was
created in September 2015 as a nonprofit corporation
overseeing work on D's definition and implementation,
publications, conferences, and collaborations with
universities.",
acknowledgement = ack-nhfb,
articleno = "73",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Monnier:2020:EEL,
author = "Stefan Monnier and Michael Sperber",
title = "Evolution of {Emacs Lisp}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "74:1--74:55",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386324",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
http://www.math.utah.edu/pub/tex/bib/gnu.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386324",
abstract = "While Emacs proponents largely agree that it is the
world's greatest text editor, it is almost as much a
Lisp machine disguised as an editor. Indeed, one of its
chief appeals is that it is programmable via its own
programming language. Emacs Lisp is a Lisp in the
classic tradition. In this article, we present the
history of this language over its more than 30 years of
evolution. Its core has remained remarkably stable
since its inception in 1985, in large part to preserve
compatibility with the many third-party packages
providing a multitude of extensions. Still, Emacs Lisp
has evolved and continues to do so.\par
Important aspects of Emacs Lisp have been shaped by
concrete requirements of the editor it supports as well
as implementation constraints. These requirements led
to the choice of a Lisp dialect as Emacs's language in
the first place, specifically its simplicity and
dynamic nature: Loading additional Emacs packages or
changing the ones in place occurs frequently, and
having to restart the editor in order to re-compile or
re-link the code would be unacceptable. Fulfilling this
requirement in a more static language would have been
difficult at best.\par
One of Lisp's chief characteristics is its malleability
through its uniform syntax and the use of macros. This
has allowed the language to evolve much more rapidly
and substantively than the evolution of its core would
suggest, by letting Emacs packages provide new surface
syntax alongside new functions. In particular, Emacs
Lisp can be customized to look much like Common Lisp,
and additional packages provide multiple-dispatch
object systems, legible regular expressions,
programmable pattern-matching constructs, generalized
variables, and more. Still, the core has also evolved,
albeit slowly. Most notably, it acquired support for
lexical scoping.\par
The timeline of Emacs Lisp development is closely tied
to the projects and people who have shaped it over the
years: We document Emacs Lisp history through its
predecessors, Mocklisp and MacLisp, its early
development up to the ``Emacs schism'' and the fork of
Lucid Emacs, the development of XEmacs, and the
subsequent rennaissance of Emacs development.",
acknowledgement = ack-nhfb,
articleno = "74",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Syme:2020:EHF,
author = "Don Syme",
title = "The early history of {F\#}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "75:1--75:58",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386325",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386325",
abstract = "This paper describes the genesis and early history of
the F\# programming language. I start with the origins
of strongly-typed functional programming (FP) in the
1970s, 80s and 90s. During the same period, Microsoft
was founded and grew to dominate the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "75",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{King:2020:HGP,
author = "Paul King",
title = "A history of the {Groovy} programming language",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "76:1--76:53",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386326",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2020.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386326",
abstract = "This paper describes the history of the Groovy
programming language. At the time of Groovy's
inception, Java was a dominant programming language
with a wealth of useful libraries. Despite this, it was
perceived by some to be evolving slowing and to have
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "76",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wirfs-Brock:2020:JFY,
author = "Allen Wirfs-Brock and Brendan Eich",
title = "{JavaScript}: the first 20 years",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "77:1--77:189",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386327",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2020.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386327",
abstract = "How a sidekick scripting language for Java, created at
Netscape in a ten-day hack, ships first as a de facto
Web standard and eventually becomes the world's most
widely used programming language. This paper tells the
story of the creation, design, evolution, and
standardization of the JavaScript language over the
period of 1995--2015. But the story is not only about
the technical details of the language. It is also the
story of how people and organizations competed and
collaborated to shape the JavaScript language which
dominates the Web of 2020.",
acknowledgement = ack-nhfb,
articleno = "77",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kodosky:2020:L,
author = "Jeffrey Kodosky",
title = "{LabVIEW}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "78:1--78:54",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386328",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386328",
abstract = "LabVIEWTM is unusual among programming languages in
that we did not intend to create a new language but
rather to develop a tool for non-programmer scientists
and engineers to assist them in automating their test
and measurement systems. Prior \ldots{}",
acknowledgement = ack-nhfb,
articleno = "78",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Solomon:2020:HL,
author = "Cynthia Solomon and Brian Harvey and Ken Kahn and
Henry Lieberman and Mark L. Miller and Artemis Papert
and Brian Silverman",
title = "History of {Logo}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "79:1--79:66",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386329",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386329",
abstract = "Logo is more than a programming language. It is a
learning environment where children explore
mathematical ideas and create projects of their own
design. Logo, the first computer language explicitly
designed for children, was invented by Seymour Papert,
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "79",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Clinger:2020:HMT,
author = "William D. Clinger and Mitchell Wand",
title = "Hygienic macro technology",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "80:1--80:110",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386330",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386330",
abstract = "The fully parenthesized Cambridge Polish syntax of
Lisp, originally regarded as a temporary expedient to
be replaced by more conventional syntax, possesses a
peculiar virtue: A read procedure can parse it without
knowing the syntax of any expressions, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "80",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Moler:2020:HM,
author = "Cleve Moler and Jack Little",
title = "A history of {MATLAB}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "81:1--81:67",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386331",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/bibnet/authors/m/moler-cleve-b.bib;
http://www.math.utah.edu/pub/tex/bib/matlab.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386331",
abstract = "The first MATLAB (the name is short for ``Matrix
Laboratory'') was not a programming language. Written
in Fortran in the late 1970s, it was a simple
interactive matrix calculator built on top of about a
dozen subroutines from the LINPACK and EISPACK matrix
software libraries. There were only 71 reserved words
and built-in functions. It could be extended only by
modifying the Fortran source code and recompiling
it.\par
The programming language appeared in 1984 when MATLAB
became a commercial product. The calculator was
reimplemented in C and significantly enhanced with the
addition of user functions, toolboxes, and graphics. It
was available initially on the IBM PC and clones;
versions for Unix workstations and the Apple Macintosh
soon followed.\par
In addition to the matrix functions from the
calculator, the 1984 MATLAB included fast Fourier
transforms (FFT). The Control System Toolbox appeared
in 1985 and the Signal Processing Toolbox in 1987.
Built-in support for the numerical solution of ordinary
differential equations also appeared in 1987.\par
The first significant new data structure, the sparse
matrix, was introduced in 1992. The Image Processing
Toolbox and the Symbolic Math Toolbox were both
introduced in 1993.\par
Several new data types and data structures, including
single precision floating point, various integer and
logical types, cell arrays, structures, and objects
were introduced in the late 1990s.\par
Enhancements to the MATLAB computing environment have
dominated development in recent years. Included are
extensions to the desktop, major enhancements to the
object and graphics systems, support for parallel
computing and GPUs, and the ``Live Editor'', which
combines programs, descriptive text, output and
graphics into a single interactive, formatted
document.\par
Today there are over 60 Toolboxes, many programmed in
the MATLAB language, providing extended capabilities in
specialized technical fields.",
acknowledgement = ack-nhfb,
articleno = "81",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cox:2020:OOC,
author = "Brad J. Cox and Steve Naroff and Hansen Hsu",
title = "The origins of {Objective-C} at {PPI\slash Stepstone}
and its evolution at {NeXT}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "82:1--82:74",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386332",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386332",
abstract = "The roots of Objective-C began at ITT in the early
1980s in a research group led by Tom Love investigating
improving programmer productivity by an order of
magnitude, a concern motivated by the perceived
``software crisis'' articulated in the late 1960s.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "82",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{VanRoy:2020:HOM,
author = "Peter {Van Roy} and Seif Haridi and Christian Schulte
and Gert Smolka",
title = "A history of the {Oz} multiparadigm language",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "83:1--83:56",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386333",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386333",
abstract = "Oz is a programming language designed to support
multiple programming paradigms in a clean factored way
that is easy to program despite its broad coverage. It
started in 1991 as a collaborative effort by the DFKI
(Germany) and SICS (Sweden) and led to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "83",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chambers:2020:RDS,
author = "John M. Chambers",
title = "{S}, {R}, and data science",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "84:1--84:17",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386334",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/s-plus.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386334",
abstract = "Data science is increasingly important and
challenging. It requires computational tools and
programming environments that handle big data and
difficult computations, while supporting creative,
high-quality analysis. The R language and related
software play a major role in computing for data
science. R is featured in most programs for training in
the field. R packages provide tools for a wide range of
purposes and users. The description of a new technique,
particularly from research in statistics, is frequently
accompanied by an R package, greatly increasing the
usefulness of the description.\par
The history of R makes clear its connection to data
science. R was consciously designed to replicate in
open-source software the contents of the S software. S
in turn was written by data analysis researchers at
Bell Labs as part of the computing environment for
research in data analysis and collaborations to apply
that research, rather than as a separate project to
create a programming language. The features of S and
the design decisions made for it need to be understood
in this broader context of supporting effective data
analysis (which would now be called data science).
These characteristics were all transferred to R and
remain central to its effectiveness. Thus, R can be
viewed as based historically on a domain-specific
language for the domain of data science.",
acknowledgement = ack-nhfb,
articleno = "84",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ingalls:2020:ESS,
author = "Daniel Ingalls",
title = "The evolution of {Smalltalk}: from {Smalltalk-72}
through {Squeak}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "85:1--85:101",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386335",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386335",
abstract = "This paper presents a personal view of the evolution
of six generations of Smalltalk in which the author
played a part, starting with Smalltalk-72 and
progressing through Smalltalk-80 to Squeak and Etoys.
It describes the forces that brought each \ldots{}",
acknowledgement = ack-nhfb,
articleno = "85",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{MacQueen:2020:HSM,
author = "David MacQueen and Robert Harper and John Reppy",
title = "The history of {Standard ML}",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "86:1--86:100",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386336",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386336",
abstract = "The ML family of strict functional languages, which
includes F\#, OCaml, and Standard ML, evolved from the
Meta Language of the LCF theorem proving system
developed by Robin Milner and his research group at the
University of Edinburgh in the 1970s. This \ldots{}",
acknowledgement = ack-nhfb,
articleno = "86",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Flake:2020:VHA,
author = "Peter Flake and Phil Moorby and Steve Golson and
Arturo Salz and Simon Davidmann",
title = "{Verilog HDL} and its ancestors and descendants",
journal = j-PACMPL,
volume = "4",
number = "HOPL",
pages = "87:1--87:90",
month = jun,
year = "2020",
DOI = "https://doi.org/10.1145/3386337",
bibdate = "Fri Aug 7 17:39:13 MDT 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/abs/10.1145/3386337",
abstract = "This paper describes the history of the Verilog
hardware description language (HDL), including its
influential predecessors and successors. Since its
creation in 1984 and first sale in 1985, Verilog has
completely revolutionized the design of hardware.
Verilog enabled the development and wide acceptance of
logic synthesis. For large-scale digital logic design,
previous schematic-based techniques have transformed
into textual register-transfer level (RTL) descriptions
written in Verilog. As of 2018 about 80\% of integrated
circuit design teams worldwide use Verilog and its
compatible descendant SystemVerilog.",
acknowledgement = ack-nhfb,
articleno = "87",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chen:2020:GAD,
author = "Xiaohong Chen and Grigore Rosu",
title = "A general approach to define binders using matching
logic",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "88:1--88:32",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408970",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408970",
abstract = "We propose a novel definition of binders using
matching logic, where the binding behavior of
object-level binders is directly inherited from the
built-in exists binder of matching logic. We show that
the behavior of binders in various logical systems
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "88",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Serrano:2020:QLI,
author = "Alejandro Serrano and Jurriaan Hage and Simon Peyton
Jones and Dimitrios Vytiniotis",
title = "A quick look at impredicativity",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "89:1--89:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408971",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408971",
abstract = "Type inference for parametric polymorphism is wildly
successful, but has always suffered from an
embarrassing flaw: polymorphic types are themselves not
first class. We present Quick Look, a practical,
implemented, and deployable design for \ldots{}",
acknowledgement = ack-nhfb,
articleno = "89",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Abel:2020:UVM,
author = "Andreas Abel and Jean-Philippe Bernardy",
title = "A unified view of modalities in type systems",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "90:1--90:28",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408972",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408972",
abstract = "We propose to unify the treatment of a broad range of
modalities in typed lambda calculi. We do so by
defining a generic structure of modalities, and show
that this structure arises naturally from the structure
of intuitionistic logic, and as such finds \ldots{}",
acknowledgement = ack-nhfb,
articleno = "90",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Tejiscak:2020:DTC,
author = "Mat{\'u}s Tejisc{\'a}k",
title = "A dependently typed calculus with pattern matching and
erasure inference",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "91:1--91:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408973",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408973",
abstract = "Some parts of dependently typed programs constitute
evidence of their type-correctness and, once checked,
are unnecessary for execution. These parts can easily
become asymptotically larger than the remaining
runtime-useful computation, which can cause \ldots{}",
acknowledgement = ack-nhfb,
articleno = "91",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hagedorn:2020:AHP,
author = "Bastian Hagedorn and Johannes Lenfers and Thomas
K{\oe}hler and Xueying Qin and Sergei Gorlatch and
Michel Steuwer",
title = "Achieving high-performance the functional way: a
functional pearl on expressing high-performance
optimizations as rewrite strategies",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "92:1--92:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408974",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408974",
abstract = "Optimizing programs to run efficiently on modern
parallel hardware is hard but crucial for many
applications. The predominantly used imperative
languages --- like C or OpenCL --- force the programmer
to intertwine the code describing functionality and
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "92",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Schuster:2020:CEH,
author = "Philipp Schuster and Jonathan Immanuel
Brachth{\"a}user and Klaus Ostermann",
title = "Compiling effect handlers in capability-passing
style",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "93:1--93:28",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408975",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408975",
abstract = "Effect handlers encourage programmers to abstract over
repeated patterns of complex control flow. As of today,
this abstraction comes at a significant price in
performance. In this paper, we aim to achieve
abstraction without regret for effect handlers.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "93",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Weidner:2020:CDO,
author = "Matthew Weidner and Heather Miller and Christopher
Meiklejohn",
title = "Composing and decomposing op-based {CRDTs} with
semidirect products",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "94:1--94:27",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408976",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408976",
abstract = "Operation-based Conflict-free Replicated Data Types
(CRDTs) are eventually consistent replicated data types
that automatically resolve conflicts between concurrent
operations. Op-based CRDTs must be designed differently
for each data type, and current \ldots{}",
acknowledgement = ack-nhfb,
articleno = "94",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Rioux:2020:CF,
author = "Nick Rioux and Steve Zdancewic",
title = "Computation focusing",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "95:1--95:27",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408977",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408977",
abstract = "Focusing is a technique from proof theory that
exploits type information to prune inessential
nondeterminism from proof search procedures. Viewed
through the lens of the Curry--Howard correspondence, a
focused typing derivation yields terms in normal
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "95",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mevel:2020:CCS,
author = "Glen M{\'e}vel and Jacques-Henri Jourdan and
Fran{\c{c}}ois Pottier",
title = "{Cosmo}: a concurrent separation logic for multicore
{OCaml}",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "96:1--96:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408978",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408978",
abstract = "Multicore OCaml extends OCaml with support for
shared-memory concurrency. It is equipped with a weak
memory model, for which an operational semantics has
been published. This begs the question: what reasoning
rules can one rely upon while writing or \ldots{}",
acknowledgement = ack-nhfb,
articleno = "96",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Cutler:2020:DRE,
author = "Joseph W. Cutler and Daniel R. Licata and Norman
Danner",
title = "Denotational recurrence extraction for amortized
analysis",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "97:1--97:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408979",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408979",
abstract = "A typical way of analyzing the time complexity of
functional programs is to extract a recurrence
expressing the running time of the program in terms of
the size of its input, and then to solve the recurrence
to obtain a big-O bound. For recurrence \ldots{}",
acknowledgement = ack-nhfb,
articleno = "97",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Licker:2020:DFO,
author = "Nandor Licker and Timothy M. Jones",
title = "{Duplo}: a framework for {OCaml} post-link
optimisation",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "98:1--98:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408980",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408980",
abstract = "We present a novel framework, Duplo, for the low-level
post-link optimisation of OCaml programs, achieving a
speedup of 7\% and a reduction of at least 15\% of the
code size of widely-used OCaml applications. Unlike
existing post-link optimisers, which \ldots{}",
acknowledgement = ack-nhfb,
articleno = "98",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Xie:2020:EHE,
author = "Ningning Xie and Jonathan Immanuel Brachth{\"a}user
and Daniel Hillerstr{\"o}m and Philipp Schuster and
Daan Leijen",
title = "Effect handlers, evidently",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "99:1--99:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408981",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408981",
abstract = "Algebraic effect handlers are a powerful way to
incorporate effects in a programming language.
Sometimes perhaps even {\em too\/} powerful. In this
article we define a restriction of general effect
handlers with {\em scoped resumptions}. We argue one
can still \ldots{}",
acknowledgement = ack-nhfb,
articleno = "99",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Hillerstrom:2020:EEA,
author = "Daniel Hillerstr{\"o}m and Sam Lindley and John
Longley",
title = "Effects for efficiency: asymptotic speedup with
first-class control",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "100:1--100:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408982",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408982",
abstract = "We study the fundamental efficiency of delimited
control. Specifically, we show that effect handlers
enable an asymptotic improvement in runtime complexity
for a certain class of functions. We consider the
generic count problem using a pure PCF-like \ldots{}",
acknowledgement = ack-nhfb,
articleno = "100",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kovacs:2020:EFC,
author = "Andr{\'a}s Kov{\'a}cs",
title = "Elaboration with first-class implicit function types",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "101:1--101:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408983",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408983",
abstract = "Implicit functions are dependently typed functions,
such that arguments are provided (by default) by
inference machinery instead of programmers of the
surface language. Implicit functions in Agda are an
archetypal example. In the Haskell language as
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "101",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Palmer:2020:HOD,
author = "Zachary Palmer and Theodore Park and Scott Smith and
Shiwei Weng",
title = "Higher-order demand-driven symbolic evaluation",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "102:1--102:28",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408984",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408984",
abstract = "Symbolic backwards execution (SBE) is a useful
variation on standard forward symbolic evaluation; it
allows a symbolic evaluation to start anywhere in the
program and proceed by executing in reverse to the
program start. SBE brings goal-directed \ldots{}",
acknowledgement = ack-nhfb,
articleno = "102",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Radanne:2020:KBF,
author = "Gabriel Radanne and Hannes Saffrich and Peter
Thiemann",
title = "Kindly bent to free us",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "103:1--103:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408985",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408985",
abstract = "Systems programming often requires the manipulation of
resources like file handles, network connections, or
dynamically allocated memory. Programmers need to
follow certain protocols to handle these resources
correctly. Violating these protocols causes \ldots{}",
acknowledgement = ack-nhfb,
articleno = "103",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Downen:2020:KCC,
author = "Paul Downen and Zena M. Ariola and Simon Peyton Jones
and Richard A. Eisenberg",
title = "Kinds are calling conventions",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "104:1--104:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408986",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408986",
abstract = "A language supporting polymorphism is a boon to
programmers: they can express complex ideas once and
reuse functions in a variety of situations. However,
polymorphism is pain for compilers tasked with
producing efficient code that manipulates concrete
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "104",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Polikarpova:2020:LIF,
author = "Nadia Polikarpova and Deian Stefan and Jean Yang and
Shachar Itzhaky and Travis Hance and Armando
Solar-Lezama",
title = "Liquid information flow control",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "105:1--105:30",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408987",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408987",
abstract = "We present Lifty, a domain-specific language for
data-centric applications that manipulate sensitive
data. A Lifty programmer annotates the sources of
sensitive data with declarative security policies, and
the language statically and automatically \ldots{}",
acknowledgement = ack-nhfb,
articleno = "105",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Knoth:2020:LRT,
author = "Tristan Knoth and Di Wang and Adam Reynolds and Jan
Hoffmann and Nadia Polikarpova",
title = "Liquid resource types",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "106:1--106:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408988",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408988",
abstract = "This article presents liquid resource types, a
technique for automatically verifying the resource
consumption of functional programs. Existing resource
analysis techniques trade automation for flexibility
--- automated techniques are restricted to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "106",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Graf:2020:LYG,
author = "Sebastian Graf and Simon Peyton Jones and Ryan G.
Scott",
title = "Lower your guards: a compositional pattern-match
coverage checker",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "107:1--107:30",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408989",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408989",
abstract = "A compiler should warn if a function defined by
pattern matching does not cover its inputs-that is, if
there are missing or redundant patterns. Generating
such warnings accurately is difficult for modern
languages due to the myriad of language features
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "107",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Darragh:2020:PZF,
author = "Pierce Darragh and Michael D. Adams",
title = "Parsing with zippers (functional pearl)",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "108:1--108:28",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408990",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408990",
abstract = "Parsing with Derivatives (PwD) is an elegant approach
to parsing context-free grammars (CFGs). It takes the
equational theory behind Brzozowski's derivative for
regular expressions and augments that theory with
laziness, memoization, and fixed points. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "108",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lubin:2020:PSL,
author = "Justin Lubin and Nick Collins and Cyrus Omar and Ravi
Chugh",
title = "Program sketching with live bidirectional evaluation",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "109:1--109:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408991",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408991",
abstract = "We present a system called Smyth for program sketching
in a typed functional language whereby the concrete
evaluation of ordinary assertions gives rise to
input-output examples, which are then used to guide the
search to complete the holes. The key \ldots{}",
acknowledgement = ack-nhfb,
articleno = "109",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2020:REA,
author = "Di Wang and David M. Kahn and Jan Hoffmann",
title = "Raising expectations: automating expected cost
analysis with types",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "110:1--110:31",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408992",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408992",
abstract = "This article presents a type-based analysis for
deriving upper bounds on the expected execution cost of
probabilistic programs. The analysis is naturally
compositional, parametric in the cost model, and
supports higher-order functions and inductive data
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "110",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Choudhury:2020:RPC,
author = "Vikraman Choudhury and Neel Krishnaswami",
title = "Recovering purity with comonads and capabilities",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "111:1--111:28",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408993",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408993",
abstract = "In this paper, we take a pervasively effectful (in the
style of ML) typed lambda calculus, and show how to
extend it to permit capturing pure expressions with
types. Our key observation is that, just as the pure
simply-typed lambda calculus can be \ldots{}",
acknowledgement = ack-nhfb,
articleno = "111",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Haudebourg:2020:RLT,
author = "Timoth{\'e}e Haudebourg and Thomas Genet and Thomas
Jensen",
title = "Regular language type inference with term rewriting",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "112:1--112:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408994",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408994",
abstract = "This paper defines a new type system applied to the
fully automatic verification of safety properties of
tree-processing higher-order functional programs. We
use term rewriting systems to model the program and its
semantics and tree automata to model \ldots{}",
acknowledgement = ack-nhfb,
articleno = "112",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sivaramakrishnan:2020:RPO,
author = "KC Sivaramakrishnan and Stephen Dolan and Leo White
and Sadiq Jaffer and Tom Kelly and Anmol Sahoo and
Sudha Parimala and Atul Dhiman and Anil Madhavapeddy",
title = "Retrofitting parallelism onto {OCaml}",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "113:1--113:30",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408995",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408995",
abstract = "OCaml is an industrial-strength, multi-paradigm
programming language, widely used in industry and
academia. OCaml is also one of the few modern managed
system programming languages to lack support for shared
memory parallel programming. This paper \ldots{}",
acknowledgement = ack-nhfb,
articleno = "113",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Giarrusso:2020:SSS,
author = "Paolo G. Giarrusso and L{\'e}o Stefanesco and Amin
Timany and Lars Birkedal and Robbert Krebbers",
title = "{Scala} step-by-step: soundness for {DOT} with
step-indexed logical relations in {Iris}",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "114:1--114:29",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408996",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408996",
abstract = "The metatheory of Scala's core type system-the
Dependent Object Types (DOT) calculus-is hard to
extend, like the metatheory of other type systems
combining subtyping and dependent types. Soundness of
important Scala features therefore remains an open
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "114",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Selsam:2020:SPB,
author = "Daniel Selsam and Simon Hudon and Leonardo de Moura",
title = "Sealing pointer-based optimizations behind pure
functions",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "115:1--115:20",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408997",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408997",
abstract = "Functional programming languages are particularly
well-suited for building automated reasoning systems,
since (among other reasons) a logical term is well
modeled by an inductive type, traversing a term can be
implemented generically as a higher-order \ldots{}",
acknowledgement = ack-nhfb,
articleno = "115",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chargueraud:2020:SLS,
author = "Arthur Chargu{\'e}raud",
title = "Separation logic for sequential programs (functional
pearl)",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "116:1--116:34",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408998",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408998",
abstract = "This paper presents a simple mechanized formalization
of Separation Logic for sequential programs. This
formalization is aimed for teaching the ideas of
Separation Logic, including its soundness proof and its
recent enhancements. The formalization \ldots{}",
acknowledgement = ack-nhfb,
articleno = "116",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sekiyama:2020:SRP,
author = "Taro Sekiyama and Takeshi Tsukada and Atsushi
Igarashi",
title = "Signature restriction for polymorphic algebraic
effects",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "117:1--117:30",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3408999",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3408999",
abstract = "The naive combination of polymorphic effects and
polymorphic type assignment has been well known to
break type safety. Existing approaches to this problem
are classified into two groups: one for restricting how
effects are triggered and the other for \ldots{}",
acknowledgement = ack-nhfb,
articleno = "117",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Matsuda:2020:SLP,
author = "Kazutaka Matsuda and Meng Wang",
title = "{Sparcl}: a language for partially-invertible
computation",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "118:1--118:31",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3409000",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3409000",
abstract = "Invertibility is a fundamental concept in computer
science, with various manifestations in software
development (serializer/deserializer, parser/printer,
redo/undo, compressor/decompressor, and so on). Full
invertibility necessarily requires bijectivity,.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "118",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Montagu:2020:SRA,
author = "Beno{\^\i}t Montagu and Thomas Jensen",
title = "Stable relations and abstract interpretation of
higher-order programs",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "119:1--119:30",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3409001",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3409001",
abstract = "We present a novel denotational semantics for the
untyped call-by-value \lambda -calculus, where terms
are interpreted as stable relations, i.e. as binary
relations between substitutions and values, enjoying a
monotonicity property. The denotation captures the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "119",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Willis:2020:SSP,
author = "Jamie Willis and Nicolas Wu and Matthew Pickering",
title = "Staged selective parser combinators",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "120:1--120:30",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3409002",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3409002",
abstract = "Parser combinators are a middle ground between the
fine control of hand-rolled parsers and the high-level
almost grammar-like appearance of parsers created via
parser generators. They also promote a cleaner,
compositional design for parsers. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "120",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Swamy:2020:SEC,
author = "Nikhil Swamy and Aseem Rastogi and Aymeric Fromherz
and Denis Merigoux and Danel Ahman and Guido
Mart{\'{\i}}nez",
title = "{SteelCore}: an extensible concurrent separation logic
for effectful dependently typed programs",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "121:1--121:30",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3409003",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3409003",
abstract = "Much recent research has been devoted to modeling
effects within type theory. Building on this work, we
observe that effectful type theories can provide a
foundation on which to build semantics for more complex
programming constructs and program logics, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "121",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Stump:2020:SFP,
author = "Aaron Stump and Christopher Jenkins and Stephan Spahn
and Colin McDonald",
title = "Strong functional pearl: {Harper}'s regular-expression
matcher in {Cedille}",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "122:1--122:25",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3409004",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3409004",
abstract = "This paper describes an implementation of Harper's
continuation-based regular-expression matcher as a
strong functional program in Cedille; i.e., Cedille
statically confirms termination of the program on all
inputs. The approach uses neither dependent \ldots{}",
acknowledgement = ack-nhfb,
articleno = "122",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Griffin:2020:TTL,
author = "Jeremiah Griffin and Mohsen Lesani and Narges Shadab
and Xizhe Yin",
title = "{TLC}: temporal logic of distributed components",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "123:1--123:30",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3409005",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3409005",
abstract = "Distributed systems are critical to reliable and
scalable computing; however, they are complicated in
nature and prone to bugs. To manage this complexity,
network middleware has been traditionally built in
layered stacks of components.We present a novel
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "123",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Parreaux:2020:SEA,
author = "Lionel Parreaux",
title = "The simple essence of algebraic subtyping: principal
type inference with subtyping made easy (functional
pearl)",
journal = j-PACMPL,
volume = "4",
number = "ICFP",
pages = "124:1--124:28",
month = aug,
year = "2020",
DOI = "https://doi.org/10.1145/3409006",
bibdate = "Tue Mar 30 08:10:48 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3409006",
abstract = "MLsub extends traditional Hindley-Milner type
inference with subtyping while preserving compact
principal types, an exciting new development. However,
its specification in terms of biunification is
difficult to understand, relying on the new concepts of
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "124",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Madsen:2020:FMP,
author = "Magnus Madsen and Ondrej Lhot{\'a}k",
title = "Fixpoints for the masses: programming with first-class
{Datalog} constraints",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "125:1--125:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428193",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428193",
abstract = "Datalog is a declarative logic programming language
that has been used in a variety of applications,
including big-data analytics, language processing,
networking and distributed systems, and program
analysis. In this paper, we propose first-class
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "125",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Brachthauser:2020:ECE,
author = "Jonathan Immanuel Brachth{\"a}user and Philipp
Schuster and Klaus Ostermann",
title = "Effects as capabilities: effect handlers and
lightweight effect polymorphism",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "126:1--126:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428194",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428194",
abstract = "Effect handlers have recently gained popularity
amongst programming language researchers. Existing
type- and effect systems for effect handlers are often
complicated and potentially hinder a wide-spread
adoption. We present the language Effekt with
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "126",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pacak:2020:SAD,
author = "Andr{\'e} Pacak and Sebastian Erdweg and Tam{\'a}s
Szab{\'o}",
title = "A systematic approach to deriving incremental type
checkers",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "127:1--127:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428195",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428195",
abstract = "Static typing can guide programmers if feedback is
immediate. Therefore, all major IDEs incrementalize
type checking in some way. However, prior approaches to
incremental type checking are often specialized and
hard to transfer to new type systems. In \ldots{}",
acknowledgement = ack-nhfb,
articleno = "127",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Feldman:2020:PHC,
author = "Yotam M. Y. Feldman and Artem Khyzha and Constantin
Enea and Adam Morrison and Aleksandar Nanevski and Noam
Rinetzky and Sharon Shoham",
title = "Proving highly-concurrent traversals correct",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "128:1--128:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428196",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428196",
abstract = "Modern highly-concurrent search data structures, such
as search trees, obtain multi-core scalability and
performance by having operations traverse the data
structure without any synchronization. As a result,
however, these algorithms are notoriously \ldots{}",
acknowledgement = ack-nhfb,
articleno = "128",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Six:2020:CEI,
author = "Cyril Six and Sylvain Boulm{\'e} and David Monniaux",
title = "Certified and efficient instruction scheduling:
application to interlocked {VLIW} processors",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "129:1--129:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428197",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428197",
abstract = "CompCert is a moderately optimizing C compiler with a
formal, machine-checked, proof of correctness: after
successful compilation, the assembly code has a
behavior faithful to the source code. Previously, it
only supported target instruction sets with \ldots{}",
acknowledgement = ack-nhfb,
articleno = "129",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Meuli:2020:EAA,
author = "Giulia Meuli and Mathias Soeken and Martin Roetteler
and Thomas H{\"a}ner",
title = "Enabling accuracy-aware quantum compilers using
symbolic resource estimation",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "130:1--130:26",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428198",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428198",
abstract = "Approximation errors must be taken into account when
compiling quantum programs into a low-level gate set.
We present a methodology that tracks such errors
automatically and then optimizes accuracy parameters to
guarantee a specified overall accuracy \ldots{}",
acknowledgement = ack-nhfb,
articleno = "130",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Leobas:2020:SOD,
author = "Guilherme Vieira Leobas and Fernando Magno Quint{\~a}o
Pereira",
title = "Semiring optimizations: dynamic elision of expressions
with identity and absorbing elements",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "131:1--131:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428199",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428199",
abstract = "This paper describes a compiler optimization to
eliminates dynamic occurrences of expressions in the
format $ a \leftarrow a \oplus b \otimes c $. The
operation $ \oplus $ must admit an identity element
$z$, such that $ a \oplus z = a$. Also, $z$ must be the
absorbing element of $ \otimes $, such that $ b \otimes
z$ \ldots{}",
acknowledgement = ack-nhfb,
articleno = "131",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Coblenz:2020:CAT,
author = "Michael Coblenz and Jonathan Aldrich and Brad A. Myers
and Joshua Sunshine",
title = "Can advanced type systems be usable? {An} empirical
study of ownership, assets, and typestate in
{Obsidian}",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "132:1--132:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428200",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/bitcoin.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428200",
abstract = "Some blockchain programs (smart contracts) have
included serious security vulnerabilities. Obsidian is
a new typestate-oriented programming language that uses
a strong type system to rule out some of these
vulnerabilities. Although Obsidian was designed to
promote usability to make it as easy as possible to
write programs, strong type systems can cause a
language to be difficult to use. In particular,
ownership, typestate, and assets, which Obsidian uses
to provide safety guarantees, have not seen broad
adoption together in popular languages and result in
significant usability challenges. We performed an
empirical study with 20 participants comparing Obsidian
to Solidity, which is the language most commonly used
for writing smart contracts today. We observed that
Obsidian participants were able to successfully
complete more of the programming tasks than the
Solidity participants. We also found that the Solidity
participants commonly inserted asset-related bugs,
which Obsidian detects at compile time.",
acknowledgement = ack-nhfb,
articleno = "132",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Haner:2020:ABO,
author = "Thomas H{\"a}ner and Torsten Hoefler and Matthias
Troyer",
title = "Assertion-based optimization of Quantum programs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "133:1--133:20",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428201",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428201",
abstract = "Quantum computers promise to perform certain
computations exponentially faster than any classical
device. Precise control over their physical
implementation and proper shielding from unwanted
interactions with the environment become more difficult
as \ldots{}",
acknowledgement = ack-nhfb,
articleno = "133",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Majumdar:2020:MMC,
author = "Rupak Majumdar and Nobuko Yoshida and Damien
Zufferey",
title = "Multiparty motion coordination: from choreographies to
robotics programs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "134:1--134:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428202",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428202",
abstract = "We present a programming model and typing discipline
for complex multi-robot coordination programming. Our
model encompasses both synchronisation through message
passing and continuous-time dynamic motion primitives
in physical space. We specify \ldots{}",
acknowledgement = ack-nhfb,
articleno = "134",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Pailoor:2020:APS,
author = "Shankara Pailoor and Xinyu Wang and Hovav Shacham and
Isil Dillig",
title = "Automated policy synthesis for system call
sandboxing",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "135:1--135:26",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428203",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428203",
abstract = "System call whitelisting is a powerful sandboxing
approach that can significantly reduce the capabilities
of an attacker if an application is compromised. Given
a policy that specifies which system calls can be
invoked with what arguments, a sandboxing \ldots{}",
acknowledgement = ack-nhfb,
articleno = "135",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Astrauskas:2020:HDP,
author = "Vytautas Astrauskas and Christoph Matheja and Federico
Poli and Peter M{\"u}ller and Alexander J. Summers",
title = "How do programmers use unsafe {Rust}?",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "136:1--136:27",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428204",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/rust.bib",
URL = "https://dl.acm.org/doi/10.1145/3428204",
abstract = "Rust's ownership type system enforces a strict
discipline on how memory locations are accessed and
shared. This discipline allows the compiler to
statically prevent memory errors, data races,
inadvertent side effects through aliasing, and other
errors hat frequently occur in conventional imperative
programs. However, the restrictions imposed by Rust s
type system make it difficult or impossible to
implement certain designs, such as data structures that
require aliasing (e.g. doubly-linked lists and shared
caches). To work around this limitation, Rust allows
code blocks to be declared as unsafe and thereby
exempted from certain restrictions of the type system,
for instance, to manipulate C-style raw pointers.
Ensuring the safety of unsafe code is the
responsibility of the programmer. However, an important
assumption of the Rust language, which we dub the Rust
hypothesis, is that programmers use Rust by following
three main principles: use unsafe code sparingly, make
it easy to review, and hide it behind a safe
abstraction such that client code can be written in
safe Rust.\par
Understanding how Rust programmers use unsafe code and,
in particular, whether the Rust hypothesis holds is
essential for Rust developers and testers, language and
library designers, as well as tool developers. This
paper studies empirically how unsafe code is used in
practice by analysing a large corpus of Rust projects
to assess the validity of the Rust hypothesis and to
classify the purpose of unsafe code. We identify
queries that can be answered by automatically
inspecting the program s source code, its intermediate
representation MIR, as well as type information
provided by the Rust compiler; we complement the
results by manual code inspection. Our study supports
the Rust hypothesis partially: While most unsafe code
is simple and well-encapsulated, unsafe features are
used extensively, especially for interoperability with
other languages.",
acknowledgement = ack-nhfb,
articleno = "136",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2020:LSP,
author = "Yu Wang and Ke Wang and Fengjuan Gao and Linzhang
Wang",
title = "Learning semantic program embeddings with graph
interval neural network",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "137:1--137:27",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428205",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428205",
abstract = "Learning distributed representations of source code
has been a challenging task for machine learning
models. Earlier works treated programs as text so that
natural language methods can be readily applied.
Unfortunately, such approaches do not capitalize
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "137",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Devore-McDonald:2020:MDS,
author = "Breanna Devore-McDonald and Emery D. Berger",
title = "Mossad: defeating software plagiarism detection",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "138:1--138:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428206",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428206",
abstract = "Automatic software plagiarism detection tools are
widely used in educational settings to ensure that
submitted work was not copied. These tools have grown
in use together with the rise in enrollments in
computer science programs and the widespread \ldots{}",
acknowledgement = ack-nhfb,
articleno = "138",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhang:2020:HBC,
author = "Yizhou Zhang and Guido Salvaneschi and Andrew C.
Myers",
title = "Handling bidirectional control flow",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "139:1--139:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428207",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428207",
abstract = "Pressed by the difficulty of writing asynchronous,
event-driven code, mainstream languages have recently
been building in support for a variety of advanced
control-flow features. Meanwhile, experimental language
designs have suggested effect handlers as \ldots{}",
acknowledgement = ack-nhfb,
articleno = "139",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Holtzen:2020:SEI,
author = "Steven Holtzen and Guy {Van den Broeck} and Todd
Millstein",
title = "Scaling exact inference for discrete probabilistic
programs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "140:1--140:31",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428208",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428208",
abstract = "Probabilistic programming languages (PPLs) are an
expressive means of representing and reasoning about
probabilistic models. The computational challenge of
probabilistic inference remains the primary roadblock
for applying PPLs in practice. Inference is \ldots{}",
acknowledgement = ack-nhfb,
articleno = "140",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bembenek:2020:FDS,
author = "Aaron Bembenek and Michael Greenberg and Stephen
Chong",
title = "Formulog: {Datalog} for {SMT-based} static analysis",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "141:1--141:31",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428209",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428209",
abstract = "Satisfiability modulo theories (SMT) solving has
become a critical part of many static analyses,
including symbolic execution, refinement type checking,
and model checking. We propose Formulog, a
domain-specific language that makes it possible to
write \ldots{}",
acknowledgement = ack-nhfb,
articleno = "141",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Xiang:2020:PIE,
author = "Tongtong Xiang and Jeff Y. Luo and Werner Dietl",
title = "Precise inference of expressive units of measurement
types",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "142:1--142:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428210",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428210",
abstract = "Ensuring computations are unit-wise consistent is an
important task in software development. Numeric
computations are usually performed with primitive types
instead of abstract data types, which results in very
weak static guarantees about correct usage \ldots{}",
acknowledgement = ack-nhfb,
articleno = "142",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Liu:2020:WSF,
author = "Hongyu Liu and Sam Silvestro and Xiangyu Zhang and
Jian Huang and Tongping Liu",
title = "{WATCHER}: in-situ failure diagnosis",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "143:1--143:27",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428211",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428211",
abstract = "Diagnosing software failures is important but
notoriously challenging. Existing work either requires
extensive manual effort, imposing a serious privacy
concern (for in-production systems), or cannot report
sufficient information for bug fixes. This \ldots{}",
acknowledgement = ack-nhfb,
articleno = "143",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sotiropoulos:2020:MDF,
author = "Thodoris Sotiropoulos and Stefanos Chaliasos and
Dimitris Mitropoulos and Diomidis Spinellis",
title = "A model for detecting faults in build specifications",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "144:1--144:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428212",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428212",
abstract = "Incremental and parallel builds are crucial features
of modern build systems. Parallelism enables fast
builds by running independent tasks simultaneously,
while incrementality saves time and computing resources
by processing the build operations that \ldots{}",
acknowledgement = ack-nhfb,
articleno = "144",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bartell:2020:GLD,
author = "Sean Bartell and Will Dietz and Vikram S. Adve",
title = "Guided linking: dynamic linking without the costs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "145:1--145:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428213",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428213",
abstract = "Dynamic linking is extremely common in modern software
systems, thanks to the flexibility and space savings it
offers. However, this flexibility comes at a cost: it's
impossible to perform interprocedural optimizations
that involve calls to a dynamic \ldots{}",
acknowledgement = ack-nhfb,
articleno = "145",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gorjiara:2020:SSE,
author = "Hamed Gorjiara and Guoqing Harry Xu and Brian
Demsky",
title = "{Satune}: synthesizing efficient {SAT} encoders",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "146:1--146:32",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428214",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428214",
abstract = "Modern SAT solvers are extremely efficient at solving
boolean satisfiability problems, enabling a wide
spectrum of techniques for checking, verifying, and
validating real-world programs. What remains
challenging, though, is how to encode a domain
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "146",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Guo:2020:ECT,
author = "Shengjian Guo and Yueqi Chen and Jiyong Yu and Meng Wu
and Zhiqiang Zuo and Peng Li and Yueqiang Cheng and
Huibo Wang",
title = "Exposing cache timing side-channel leaks through
out-of-order symbolic execution",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "147:1--147:32",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428215",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428215",
abstract = "As one of the fundamental optimizations in modern
processors, the out-of-order execution boosts the
pipeline throughput by executing independent
instructions in parallel rather than in their program
orders. However, due to the side effects introduced by
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "147",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhou:2020:SVR,
author = "Fangyi Zhou and Francisco Ferreira and Raymond Hu and
Rumyana Neykova and Nobuko Yoshida",
title = "Statically verified refinements for multiparty
protocols",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "148:1--148:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428216",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428216",
abstract = "With distributed computing becoming ubiquitous in the
modern era, safe distributed programming is an open
challenge. To address this, multiparty session types
(MPST) provide a typing discipline for message-passing
concurrency, guaranteeing communication \ldots{}",
acknowledgement = ack-nhfb,
articleno = "148",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Griesemer:2020:FG,
author = "Robert Griesemer and Raymond Hu and Wen Kokke and
Julien Lange and Ian Lance Taylor and Bernardo Toninho
and Philip Wadler and Nobuko Yoshida",
title = "Featherweight {Go}",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "149:1--149:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428217",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2020.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428217",
abstract = "We describe a design for generics in Go inspired by
previous work on Featherweight Java by Igarashi,
Pierce, and Wadler. Whereas subtyping in Java is
nominal, in Go it is structural, and whereas generics
in Java are defined via erasure, in Go we use
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "149",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Li:2020:PBR,
author = "Gushu Li and Li Zhou and Nengkun Yu and Yufei Ding and
Mingsheng Ying and Yuan Xie",
title = "Projection-based runtime assertions for testing and
debugging quantum programs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "150:1--150:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428218",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428218",
abstract = "In this paper, we propose Proq, a runtime assertion
scheme for testing and debugging quantum programs on a
quantum computer. The predicates in Proq are
represented by projections (or equivalently, closed
subspaces of the state space), following Birkhoff-.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "150",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Raad:2020:POG,
author = "Azalea Raad and Ori Lahav and Viktor Vafeiadis",
title = "Persistent {Owicki---Gries} reasoning: a program logic
for reasoning about persistent programs on
{Intel-x86}",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "151:1--151:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428219",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428219",
abstract = "The advent of non-volatile memory (NVM) technologies
is expected to transform how software systems are
structured fundamentally, making the task of correct
programming significantly harder. This is because
ensuring that memory stores persist in the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "151",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sprenger:2020:ISL,
author = "Christoph Sprenger and Tobias Klenze and Marco Eilers
and Felix A. Wolf and Peter M{\"u}ller and Martin
Clochard and David Basin",
title = "{Igloo}: soundly linking compositional refinement and
separation logic for distributed system verification",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "152:1--152:31",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428220",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428220",
abstract = "Lighthouse projects like CompCert, seL4, IronFleet,
and DeepSpec have demonstrated that full system
verification is feasible by establishing a refinement
between an abstract system specification and an
executable implementation. Existing approaches
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "152",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kallas:2020:DDO,
author = "Konstantinos Kallas and Filip Niksic and Caleb
Stanford and Rajeev Alur",
title = "{DiffStream}: differential output testing for stream
processing programs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "153:1--153:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428221",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428221",
abstract = "High performance architectures for processing
distributed data streams, such as Flink, Spark
Streaming, and Storm, are increasingly deployed in
emerging data-driven computing systems. Exploiting the
parallelism afforded by such platforms, while
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "153",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Madsen:2020:PTE,
author = "Magnus Madsen and Jaco van de Pol",
title = "Polymorphic types and effects with {Boolean}
unification",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "154:1--154:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428222",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428222",
abstract = "We present a simple, practical, and expressive type
and effect system based on Boolean constraints. The
effect system extends the Hindley-Milner type system,
supports parametric polymorphism, and preserves
principal types modulo Boolean equivalence. We
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "154",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Castro-Perez:2020:CCA,
author = "David Castro-Perez and Nobuko Yoshida",
title = "{CAMP}: cost-aware multiparty session protocols",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "155:1--155:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428223",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428223",
abstract = "This paper presents CAMP, a new static performance
analysis framework for message-passing concurrent and
distributed systems, based on the theory of multiparty
session types (MPST). Understanding the run-time
performance of concurrent and distributed \ldots{}",
acknowledgement = ack-nhfb,
articleno = "155",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Flanagan:2020:AVB,
author = "Cormac Flanagan and Stephen N. Freund",
title = "The anchor verifier for blocking and non-blocking
concurrent software",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "156:1--156:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428224",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428224",
abstract = "Verifying the correctness of concurrent software with
subtle synchronization is notoriously challenging. We
present the Anchor verifier, which is based on a new
formalism for specifying synchronization disciplines
that describes both (1) what memory \ldots{}",
acknowledgement = ack-nhfb,
articleno = "156",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Shahin:2020:AEV,
author = "Ramy Shahin and Marsha Chechik",
title = "Automatic and efficient variability-aware lifting of
functional programs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "157:1--157:27",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428225",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428225",
abstract = "A software analysis is a computer program that takes
some representation of a software product as input and
produces some useful information about that product as
output. A software product line encompasses many
software product variants, and thus \ldots{}",
acknowledgement = ack-nhfb,
articleno = "157",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Senanayake:2020:SIS,
author = "Ryan Senanayake and Changwan Hong and Ziheng Wang and
Amalee Wilson and Stephen Chou and Shoaib Kamil and
Saman Amarasinghe and Fredrik Kjolstad",
title = "A sparse iteration space transformation framework for
sparse tensor algebra",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "158:1--158:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428226",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428226",
abstract = "We address the problem of optimizing sparse tensor
algebra in a compiler and show how to define standard
loop transformations---split, collapse, and
reorder---on sparse iteration spaces. The key idea is
to track the transformation functions that map the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "158",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Peleg:2020:PRE,
author = "Hila Peleg and Roi Gabay and Shachar Itzhaky and Eran
Yahav",
title = "Programming with a read--eval--synth loop",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "159:1--159:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428227",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428227",
abstract = "A frequent programming pattern for small tasks,
especially expressions, is to repeatedly evaluate the
program on an input as its editing progresses. The
Read-Eval-Print Loop (REPL) interaction model has been
a successful model for this programming \ldots{}",
acknowledgement = ack-nhfb,
articleno = "159",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Farooq:2020:LIP,
author = "Umar Farooq and Zhijia Zhao and Manu Sridharan and
Iulian Neamtiu",
title = "{LiveDroid}: identifying and preserving mobile app
state in volatile runtime environments",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "160:1--160:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428228",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428228",
abstract = "Mobile operating systems, especially Android, expose
apps to a volatile runtime environment. The app state
that reflects past user interaction and system
environment updates (e.g., battery status changes) can
be destroyed implicitly, in response to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "160",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chen:2020:TUP,
author = "Xiaohong Chen and Minh-Thai Trinh and Nishant
Rodrigues and Lucas Pe{\~n}a and Grigore Rosu",
title = "Towards a unified proof framework for automated
fixpoint reasoning using matching logic",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "161:1--161:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428229",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428229",
abstract = "Automation of fixpoint reasoning has been extensively
studied for various mathematical structures, logical
formalisms, and computational domains, resulting in
specialized fixpoint provers for heaps, for streams,
for term algebras, for temporal \ldots{}",
acknowledgement = ack-nhfb,
articleno = "161",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yefet:2020:AEM,
author = "Noam Yefet and Uri Alon and Eran Yahav",
title = "Adversarial examples for models of code",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "162:1--162:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428230",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428230",
abstract = "Neural models of code have shown impressive results
when performing tasks such as predicting method names
and identifying certain kinds of bugs. We show that
these models are vulnerable to adversarial examples,
and introduce a novel approach for \ldots{}",
acknowledgement = ack-nhfb,
articleno = "162",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Surbatovich:2020:TFF,
author = "Milijana Surbatovich and Brandon Lucia and Limin
Jia",
title = "Towards a formal foundation of intermittent
computing",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "163:1--163:31",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428231",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428231",
abstract = "Intermittently powered devices enable new applications
in harsh or inaccessible environments, such as space or
in-body implants, but also introduce problems in
programmability and correctness. Researchers have
developed programming models to ensure that \ldots{}",
acknowledgement = ack-nhfb,
articleno = "163",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wei:2020:CSE,
author = "Guannan Wei and Oliver Bracevac and Shangyin Tan and
Tiark Rompf",
title = "Compiling symbolic execution with staging and
algebraic effects",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "164:1--164:33",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428232",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428232",
abstract = "Building effective symbolic execution engines poses
challenges in multiple dimensions: an engine must
correctly model the program semantics, provide
flexibility in symbolic execution strategies, and
execute them efficiently. This paper proposes a
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "164",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhang:2020:TDP,
author = "Hengchu Zhang and Edo Roth and Andreas Haeberlen and
Benjamin C. Pierce and Aaron Roth",
title = "Testing differential privacy with dual interpreters",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "165:1--165:26",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428233",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428233",
abstract = "Applying differential privacy at scale requires
convenient ways to check that programs computing with
sensitive data appropriately preserve privacy. We
propose here a fully automated framework for testing
differential privacy, adapting a well-known \ldots{}",
acknowledgement = ack-nhfb,
articleno = "165",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Newcomb:2020:VIH,
author = "Julie L. Newcomb and Andrew Adams and Steven Johnson
and Rastislav Bodik and Shoaib Kamil",
title = "Verifying and improving {Halide}'s term rewriting
system with program synthesis",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "166:1--166:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428234",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428234",
abstract = "Halide is a domain-specific language for
high-performance image processing and tensor
computations, widely adopted in industry. Internally,
the Halide compiler relies on a term rewriting system
to prove properties of code required for efficient and
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "166",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Poesia:2020:DDC,
author = "Gabriel Poesia and Fernando Magno Quint{\~a}o
Pereira",
title = "Dynamic dispatch of context-sensitive optimizations",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "167:1--167:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428235",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428235",
abstract = "Academia has spent much effort into making
context-sensitive analyses practical, with great
profit. However, the implementation of
context-sensitive optimizations, in contrast to
analyses, is still not practical, due to code-size
explosion. This growth \ldots{}",
acknowledgement = ack-nhfb,
articleno = "167",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Moller:2020:EAO,
author = "Anders M{\o}ller and Oskar Haarklou Veileborg",
title = "Eliminating abstraction overhead of {Java} stream
pipelines using ahead-of-time program optimization",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "168:1--168:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428236",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2020.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428236",
abstract = "Java 8 introduced streams that allow developers to
work with collections of data using functional-style
operations. Streams are often used in pipelines of
operations for processing the data elements, which
leads to concise and elegant program code. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "168",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Spall:2020:BSP,
author = "Sarah Spall and Neil Mitchell and Sam
Tobin-Hochstadt",
title = "Build scripts with perfect dependencies",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "169:1--169:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428237",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428237",
abstract = "Build scripts for most build systems describe the
actions to run, and the dependencies between those
actions --- but often build scripts get those
dependencies wrong. Most build scripts have both too
few dependencies (leading to incorrect build outputs)
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "169",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Feser:2020:DOR,
author = "John Feser and Sam Madden and Nan Tang and Armando
Solar-Lezama",
title = "Deductive optimization of relational data storage",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "170:1--170:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428238",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428238",
abstract = "Optimizing the physical data storage and retrieval of
data are two key database management problems. In this
paper, we propose a language that can express both a
relational query and the layout of its data. Our
language can express a wide range of \ldots{}",
acknowledgement = ack-nhfb,
articleno = "170",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Clune:2020:PEA,
author = "Joshua Clune and Vijay Ramamurthy and Ruben Martins
and Umut A. Acar",
title = "Program equivalence for assisted grading of functional
programs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "171:1--171:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428239",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428239",
abstract = "In courses that involve programming assignments,
giving meaningful feedback to students is an important
challenge. Human beings can give useful feedback by
manually grading the programs but this is a
time-consuming, labor intensive, and usually boring
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "171",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Avanzini:2020:MCA,
author = "Martin Avanzini and Georg Moser and Michael Schaper",
title = "A modular cost analysis for probabilistic programs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "172:1--172:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428240",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428240",
abstract = "We present a novel methodology for the automated
resource analysis of non-deterministic, probabilistic
imperative programs, which gives rise to a modular
approach. Program fragments are analysed in full
independence. Moreover, the established results
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "172",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Geisler:2020:GTG,
author = "Dietrich Geisler and Irene Yoon and Aditi Kabra and
Horace He and Yinnon Sanders and Adrian Sampson",
title = "Geometry types for graphics programming",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "173:1--173:25",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428241",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428241",
abstract = "In domains that deal with physical space and geometry,
programmers need to track the coordinate systems that
underpin a computation. We identify a class of geometry
bugs that arise from confusing which coordinate system
a vector belongs to. These bugs \ldots{}",
acknowledgement = ack-nhfb,
articleno = "173",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wu:2020:HII,
author = "Zhefeng Wu and Zhe Sun and Kai Gong and Lingyun Chen
and Bin Liao and Yihua Jin",
title = "Hidden inheritance: an inline caching design for
{TypeScript} performance",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "174:1--174:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428242",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428242",
abstract = "TypeScript is a dynamically typed language widely used
to develop large-scale applications nowadays. These
applications are usually designed with complex class or
interface hierarchies and have highly polymorphic
behaviors. These object-oriented (OO) \ldots{}",
acknowledgement = ack-nhfb,
articleno = "174",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Liu:2020:TES,
author = "Fengyun Liu and Ondrej Lhot{\'a}k and Aggelos Biboudis
and Paolo G. Giarrusso and Martin Odersky",
title = "A type-and-effect system for object initialization",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "175:1--175:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428243",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428243",
abstract = "Every newly created object goes through several
initialization states: starting from a state where all
fields are uninitialized until all of them are
assigned. Any operation on the object during its
initialization process, which usually happens in the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "175",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Banerjee:2020:SGC,
author = "Subarno Banerjee and David Devecsery and Peter M. Chen
and Satish Narayanasamy",
title = "Sound garbage collection for {C} using pointer
provenance",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "176:1--176:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428244",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428244",
abstract = "Garbage collection (GC) support for unmanaged
languages can reduce programming burden in reasoning
about liveness of dynamic objects. It also avoids
temporal memory safety violations and memory leaks.
Sound GC for weakly-typed languages such as C/C++,
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "176",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mukherjee:2020:DBP,
author = "Manasij Mukherjee and Pranav Kant and Zhengyang Liu
and John Regehr",
title = "Dataflow-based pruning for speeding up
superoptimization",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "177:1--177:24",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428245",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428245",
abstract = "Superoptimization is a compilation strategy that uses
search to improve code quality, rather than relying on
a canned sequence of transformations, as traditional
optimizing compilers do. This search can be seen as a
program synthesis problem: from \ldots{}",
acknowledgement = ack-nhfb,
articleno = "177",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Milanova:2020:FGT,
author = "Ana Milanova",
title = "{FlowCFL}: generalized type-based reachability
analysis: graph reduction and equivalence of
{CFL}-based and type-based reachability",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "178:1--178:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428246",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428246",
abstract = "Reachability analysis is a fundamental program
analysis with a wide variety of applications. We
present FlowCFL, a type-based reachability analysis
that accounts for mutable heap data. The underlying
semantics of FlowCFL is Context-Free-Language (CFL)-.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "178",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jeon:2020:LGB,
author = "Minseok Jeon and Myungho Lee and Hakjoo Oh",
title = "Learning graph-based heuristics for pointer analysis
without handcrafting application-specific features",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "179:1--179:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428247",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428247",
abstract = "We present Graphick, a new technique for automatically
learning graph-based heuristics for pointer analysis.
Striking a balance between precision and scalability of
pointer analysis requires designing good analysis
heuristics. For example, because \ldots{}",
acknowledgement = ack-nhfb,
articleno = "179",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Rouvoet:2020:KWA,
author = "Arjen Rouvoet and Hendrik van Antwerpen and Casper
Bach Poulsen and Robbert Krebbers and Eelco Visser",
title = "Knowing when to ask: sound scheduling of name
resolution in type checkers derived from declarative
specifications",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "180:1--180:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428248",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428248",
abstract = "There is a large gap between the specification of type
systems and the implementation of their type checkers,
which impedes reasoning about the soundness of the type
checker with respect to the specification. A vision to
close this gap is to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "180",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Turcotte:2020:DTR,
author = "Alexi Turcotte and Aviral Goel and Filip Krikava and
Jan Vitek",
title = "Designing types for {R}, empirically",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "181:1--181:25",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428249",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/s-plus.bib",
URL = "https://dl.acm.org/doi/10.1145/3428249",
abstract = "The R programming language is widely used in a variety
of domains. It was designed to favor an interactive
style of programming with minimal syntactic and
conceptual overhead. This design is well suited to data
analysis, but a bad fit for tools such as \ldots{}",
acknowledgement = ack-nhfb,
articleno = "181",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kumar:2020:SRI,
author = "Aayan Kumar and Vivek Seshadri and Rahul Sharma",
title = "Shiftry: {RNN} inference in {2KB} of {RAM}",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "182:1--182:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428250",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428250",
abstract = "Traditionally, IoT devices send collected sensor data
to an intelligent cloud where machine learning (ML)
inference happens. However, this course is rapidly
changing and there is a recent trend to run ML on the
edge IoT devices themselves. An \ldots{}",
acknowledgement = ack-nhfb,
articleno = "182",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kong:2020:SQL,
author = "Lingkun Kong and Konstantinos Mamouras",
title = "{StreamQL}: a query language for processing streaming
time series",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "183:1--183:32",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428251",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428251",
abstract = "Real-time data analysis applications increasingly rely
on complex streaming computations over time-series
data. We propose StreamQL, a language that facilitates
the high-level specification of complex analyses over
streaming time series. StreamQL is \ldots{}",
acknowledgement = ack-nhfb,
articleno = "183",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Yu:2020:IPA,
author = "Qianshan Yu and Fei He and Bow-Yaw Wang",
title = "Incremental predicate analysis for regression
verification",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "184:1--184:25",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428252",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428252",
abstract = "Software products are evolving during their life
cycles. Ideally, every revision need be formally
verified to ensure software quality. Yet repeated
formal verification requires significant computing
resources. Verifying each and every revision can be
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "184",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Urban:2020:PPF,
author = "Caterina Urban and Maria Christakis and Valentin
W{\"u}stholz and Fuyuan Zhang",
title = "Perfectly parallel fairness certification of neural
networks",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "185:1--185:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428253",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428253",
abstract = "Recently, there is growing concern that
machine-learned software, which currently assists or
even automates decision making, reproduces, and in the
worst case reinforces, bias present in the training
data. The development of tools and techniques for
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "185",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Stievenart:2020:FCB,
author = "Quentin Sti{\'e}venart and Magnus Madsen",
title = "Fuzzing channel-based concurrency runtimes using types
and effects",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "186:1--186:27",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428254",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428254",
abstract = "Modern programming languages support concurrent
programming based on channels and processes. Channels
enable synchronous and asynchronous message-passing
between independent light-weight processes making it
easy to express common concurrency patterns. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "186",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Moller:2020:DLJ,
author = "Anders M{\o}ller and Benjamin Barslev Nielsen and
Martin Toldam Torp",
title = "Detecting locations in {JavaScript} programs affected
by breaking library changes",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "187:1--187:25",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428255",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2020.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428255",
abstract = "JavaScript libraries are widely used and evolve
rapidly. When adapting client code to non-backwards
compatible changes in libraries, a major challenge is
how to locate affected API uses in client code, which
is currently a difficult manual task. In this
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "187",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kohler:2020:RSC,
author = "Mirko K{\"o}hler and Nafise Eskandani and Pascal
Weisenburger and Alessandro Margara and Guido
Salvaneschi",
title = "Rethinking safe consistency in distributed
object-oriented programming",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "188:1--188:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428256",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428256",
abstract = "Large scale distributed systems require to embrace the
trade off between consistency and availability,
accepting lower levels of consistency to guarantee
higher availability. Existing programming languages
are, however, agnostic to this compromise, \ldots{}",
acknowledgement = ack-nhfb,
articleno = "188",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Le:2020:DDT,
author = "Ton Chanh Le and Timos Antonopoulos and Parisa
Fathololumi and Eric Koskinen and ThanhVu Nguyen",
title = "{DynamiTe}: dynamic termination and non-termination
proofs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "189:1--189:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428257",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428257",
abstract = "There is growing interest in termination reasoning for
nonlinear programs and, meanwhile, recent dynamic
strategies have shown they are able to infer invariants
for such challenging programs. These advances led us to
hypothesize that perhaps such \ldots{}",
acknowledgement = ack-nhfb,
articleno = "189",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lagouvardos:2020:PSM,
author = "Sifis Lagouvardos and Neville Grech and Ilias Tsatiris
and Yannis Smaragdakis",
title = "Precise static modeling of {Ethereum} ``memory''",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "190:1--190:26",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428258",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/bitcoin.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428258",
abstract = "Static analysis of smart contracts as-deployed on the
Ethereum blockchain has received much recent attention.
However, high-precision analyses currently face
significant challenges when dealing with the Ethereum
VM (EVM) execution model. A major such \ldots{}",
acknowledgement = ack-nhfb,
articleno = "190",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Campora:2020:TTA,
author = "John Peter Campora and Sheng Chen",
title = "Taming type annotations in gradual typing",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "191:1--191:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428259",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428259",
abstract = "Gradual typing provides a methodology to integrate
static and dynamic typing, harmonizing their often
conflicting advantages in a single language. When a
user wants to enjoy the advantages of static typing,
most gradual languages require that they add \ldots{}",
acknowledgement = ack-nhfb,
articleno = "191",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Trinh:2020:ITD,
author = "Minh-Thai Trinh and Duc-Hiep Chu and Joxan Jaffar",
title = "Inter-theory dependency analysis for {SMT} string
solvers",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "192:1--192:27",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428260",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428260",
abstract = "Solvers in the framework of Satisfiability Modulo
Theories (SMT) have been widely successful in practice.
Recently there has been an increasing interest in
solvers for string constraints to address security
issues in web programming, for example. To be
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "192",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Winterer:2020:UET,
author = "Dominik Winterer and Chengyu Zhang and Zhendong Su",
title = "On the unusual effectiveness of type-aware operator
mutations for testing {SMT} solvers",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "193:1--193:25",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428261",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428261",
abstract = "We propose type-aware operator mutation, a simple, but
unusually effective approach for testing SMT solvers.
The key idea is to mutate operators of conforming types
within the seed formulas to generate well-typed mutant
formulas. These mutant formulas \ldots{}",
acknowledgement = ack-nhfb,
articleno = "193",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jagadeesan:2020:PPS,
author = "Radha Jagadeesan and Alan Jeffrey and James Riely",
title = "Pomsets with preconditions: a simple model of relaxed
memory",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "194:1--194:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428262",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428262",
abstract = "Relaxed memory models must simultaneously achieve
efficient implementability and thread-compositional
reasoning. Is that why they have become so complicated?
We argue that the answer is no: It is possible to
achieve these goals by combining an idea from
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "194",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Grosser:2020:FLP,
author = "Tobias Grosser and Theodoros Theodoridis and
Maximilian Falkenstein and Arjun Pitchanathan and
Michael Kruse and Manuel Rigger and Zhendong Su and
Torsten Hoefler",
title = "Fast linear programming through transprecision
computing on small and sparse data",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "195:1--195:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428263",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428263",
abstract = "A plethora of program analysis and optimization
techniques rely on linear programming at their heart.
However, such techniques are often considered too slow
for production use. While today's best solvers are
optimized for complex problems with thousands
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "195",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Livinskii:2020:RTC,
author = "Vsevolod Livinskii and Dmitry Babokin and John
Regehr",
title = "Random testing for {C} and {C++} compilers with
{YARPGen}",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "196:1--196:25",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428264",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428264",
abstract = "Compilers should not crash and they should not
miscompile applications. Random testing is an effective
method for finding compiler bugs that have escaped
other kinds of testing. This paper presents Yet Another
Random Program Generator (YARPGen), a \ldots{}",
acknowledgement = ack-nhfb,
articleno = "196",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wang:2020:CVS,
author = "Yuting Wang and Xiangzhe Xu and Pierre Wilke and Zhong
Shao",
title = "{CompCertELF}: verified separate compilation of {C}
programs into {ELF} object files",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "197:1--197:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428265",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428265",
abstract = "We present CompCertELF, the first extension to
CompCert that supports verified compilation from C
programs all the way to a standard binary file format,
i.e., the ELF object format. Previous work on
Stack-Aware CompCert provides a verified compilation
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "197",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sang:2020:SSN,
author = "Bo Sang and Patrick Eugster and Gustavo Petri and
Srivatsan Ravi and Pierre-Louis Roman",
title = "Scalable and serializable networked multi-actor
programming",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "198:1--198:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428266",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428266",
abstract = "A major challenge in writing applications that execute
across hosts, such as distributed online services, is
to reconcile (a) parallelism (i.e., allowing components
to execute independently on disjoint tasks), and
(b)cooperation (i.e., allowing \ldots{})",
acknowledgement = ack-nhfb,
articleno = "198",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{He:2020:TAE,
author = "Fei He and Jitao Han",
title = "Termination analysis for evolving programs: an
incremental approach by reusing certified modules",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "199:1--199:27",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428267",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428267",
abstract = "Research on program termination has a long tradition.
However, most of the existing techniques target a
single program only. We propose in this paper an
incremental termination analysis approach by reusing
certified modules across different program \ldots{}",
acknowledgement = ack-nhfb,
articleno = "199",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Atkinson:2020:PRP,
author = "Eric Atkinson and Michael Carbin",
title = "Programming and reasoning with partial observability",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "200:1--200:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428268",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428268",
abstract = "Computer programs are increasingly being deployed in
partially-observable environments. A partially
observable environment is an environment whose state is
not completely visible to the program, but from which
the program receives partial observations. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "200",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gavran:2020:IST,
author = "Ivan Gavran and Eva Darulova and Rupak Majumdar",
title = "Interactive synthesis of temporal specifications from
examples and natural language",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "201:1--201:26",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428269",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428269",
abstract = "Motivated by applications in robotics, we consider the
task of synthesizing linear temporal logic (LTL)
specifications based on examples and natural language
descriptions. While LTL is a flexible, expressive, and
unambiguous language to describe robotic \ldots{}",
acknowledgement = ack-nhfb,
articleno = "201",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Lam:2020:LSL,
author = "Wing Lam and Stefan Winter and Anjiang Wei and Tao Xie
and Darko Marinov and Jonathan Bell",
title = "A large-scale longitudinal study of flaky tests",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "202:1--202:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428270",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428270",
abstract = "Flaky tests are tests that can non-deterministically
pass or fail for the same code version. These tests
undermine regression testing efficiency, because
developers cannot easily identify whether a test fails
due to their recent changes or due to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "202",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhang:2020:DPS,
author = "Hailong Zhang and Yu Hao and Sufian Latif and Raef
Bassily and Atanas Rountev",
title = "Differentially-private software frequency profiling
under linear constraints",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "203:1--203:24",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428271",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428271",
abstract = "Differential privacy has emerged as a leading
theoretical framework for privacy-preserving data
gathering and analysis. It allows meaningful statistics
to be collected for a population without revealing
``too much'' information about any individual
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "203",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gomez-Londono:2020:DYS,
author = "Alejandro G{\'o}mez-Londo{\~n}o and Johannes {\AA}man
Pohjola and Hira Taqdees Syeda and Magnus O. Myreen and
Yong Kiam Tan",
title = "Do you have space for dessert? {A} verified space cost
semantics for {CakeML} programs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "204:1--204:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428272",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428272",
abstract = "Garbage collectors relieve the programmer from manual
memory management, but lead to compiler-generated
machine code that can behave differently (e.g.
out-of-memory errors) from the source code. To ensure
that the generated code behaves exactly like the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "204",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{James:2020:DFS,
author = "Michael B. James and Zheng Guo and Ziteng Wang and
Shivani Doshi and Hila Peleg and Ranjit Jhala and Nadia
Polikarpova",
title = "Digging for fold: synthesis-aided {API} discovery for
{Haskell}",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "205:1--205:27",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428273",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428273",
abstract = "We present Hoogle+, a web-based API discovery tool for
Haskell. A Hoogle+ user can specify a programming task
using either a type, a set of input-output tests, or
both. Given a specification, the tool returns a list of
matching programs composed from \ldots{}",
acknowledgement = ack-nhfb,
articleno = "205",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Marntirosian:2020:RIS,
author = "Koar Marntirosian and Tom Schrijvers and Bruno C. d.
S. Oliveira and Georgios Karachalias",
title = "Resolution as intersection subtyping via Modus
Ponens",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "206:1--206:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428274",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428274",
abstract = "Resolution and subtyping are two common mechanisms in
programming languages. Resolution is used by features
such as type classes or Scala-style implicits to
synthesize values automatically from contextual type
information. Subtyping is commonly used to \ldots{}",
acknowledgement = ack-nhfb,
articleno = "206",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Belyakova:2020:WAJ,
author = "Julia Belyakova and Benjamin Chung and Jack Gelinas
and Jameson Nash and Ross Tate and Jan Vitek",
title = "World age in {Julia}: optimizing method dispatch in
the presence of eval",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "207:1--207:26",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428275",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/julia.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428275",
abstract = "Dynamic programming languages face semantic and
performance challenges in the presence of features,
such as eval, that can inject new code into a running
program. The Julia programming language introduces the
novel concept of world age to insulate optimized code
from one of the most disruptive side-effects of eval:
changes to the definition of an existing function. This
paper provides the first formal semantics of world age
in a core calculus named juliette, and shows how world
age enables compiler optimizations, such as inlining,
in the presence of eval. While Julia also provides
programmers with the means to bypass world age, we
found that this mechanism is not used extensively: a
static analysis of over 4,000 registered Julia packages
shows that only 4--9\% of packages bypass world
age. This suggests that Julia's semantics aligns with
programmer expectations.",
acknowledgement = ack-nhfb,
articleno = "207",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kabir:2020:DCO,
author = "Ifaz Kabir and Yufeng Li and Ondrej Lhot{\'a}k",
title = "{$ \iota $DOT}: a {DOT} calculus with object
initialization",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "208:1--208:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428276",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428276",
abstract = "The Dependent Object Types (DOT) calculus serves as a
foundation of the Scala programming language, with a
machine-verified soundness proof. However, Scala's type
system has been shown to be unsound due to null
references, which are used as default \ldots{}",
acknowledgement = ack-nhfb,
articleno = "208",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Albert:2020:TCS,
author = "Elvira Albert and Shelly Grossman and Noam Rinetzky
and Clara Rodr{\'{\i}}guez-N{\'u}{\~n}ez and Albert
Rubio and Mooly Sagiv",
title = "Taming callbacks for smart contract modularity",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "209:1--209:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428277",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428277",
abstract = "Callbacks are an effective programming discipline for
implementing event-driven programming, especially in
environments like Ethereum which forbid shared global
state and concurrency. Callbacks allow a callee to
delegate the execution back to the \ldots{}",
acknowledgement = ack-nhfb,
articleno = "209",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Dragoi:2020:TCI,
author = "Cezara Dragoi and Constantin Enea and Burcu
Kulahcioglu Ozkan and Rupak Majumdar and Filip Niksic",
title = "Testing consensus implementations using communication
closure",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "210:1--210:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428278",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428278",
abstract = "Large scale production distributed systems are
difficult to design and test. Correctness must be
ensured when processes run asynchronously, at arbitrary
rates relative to each other, and in the presence of
failures, e.g., process crashes or message \ldots{}",
acknowledgement = ack-nhfb,
articleno = "210",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Rigger:2020:FBD,
author = "Manuel Rigger and Zhendong Su",
title = "Finding bugs in database systems via query
partitioning",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "211:1--211:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428279",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428279",
abstract = "Logic bugs in Database Management Systems (DBMSs) are
bugs that cause an incorrect result for a given query,
for example, by omitting a row that should be fetched.
These bugs are critical, since they are likely to go
unnoticed by users. We propose Query \ldots{}",
acknowledgement = ack-nhfb,
articleno = "211",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gulwani:2020:SIT,
author = "Sumit Gulwani and Vu Le and Arjun Radhakrishna and
Ivan Radicek and Mohammad Raza",
title = "Structure interpretation of text formats",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "212:1--212:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428280",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428280",
abstract = "Data repositories often consist of text files in a
wide variety of standard formats, ad-hoc formats, as
well as mixtures of formats where data in one format is
embedded into a different format. It is therefore a
significant challenge to parse these \ldots{}",
acknowledgement = ack-nhfb,
articleno = "212",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Dragoi:2020:PES,
author = "Cezara Dragoi and Josef Widder and Damien Zufferey",
title = "Programming at the edge of synchrony",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "213:1--213:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428281",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428281",
abstract = "Synchronization primitives for fault-tolerant
distributed systems that ensure an effective and
efficient cooperation among processes are an important
challenge in the programming languages community. We
present a new programming abstraction, ReSync, for
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "213",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bagherzadeh:2020:ACB,
author = "Mehdi Bagherzadeh and Nicholas Fireman and Anas
Shawesh and Raffi Khatchadourian",
title = "Actor concurrency bugs: a comprehensive study on
symptoms, root causes, {API} usages, and differences",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "214:1--214:32",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428282",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428282",
abstract = "Actor concurrency is becoming increasingly important
in the development of real-world software systems.
Although actor concurrency may be less susceptible to
some multithreaded concurrency bugs, such as low-level
data races and deadlocks, it comes with \ldots{}",
acknowledgement = ack-nhfb,
articleno = "214",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Brody:2020:SMC,
author = "Shaked Brody and Uri Alon and Eran Yahav",
title = "A structural model for contextual code changes",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "215:1--215:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428283",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428283",
abstract = "We address the problem of predicting edit completions
based on a learned model that was trained on past
edits. Given a code snippet that is partially edited,
our goal is to predict a completion of the edit for the
rest of the snippet. We refer to this \ldots{}",
acknowledgement = ack-nhfb,
articleno = "215",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Liu:2020:VRD,
author = "Yiyun Liu and James Parker and Patrick Redmond and
Lindsey Kuper and Michael Hicks and Niki Vazou",
title = "Verifying replicated data types with typeclass
refinements in {Liquid Haskell}",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "216:1--216:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428284",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428284",
abstract = "This paper presents an extension to Liquid Haskell
that facilitates stating and semi-automatically proving
properties of typeclasses. Liquid Haskell augments
Haskell with refinement types -our work allows such
types to be attached to typeclass method \ldots{}",
acknowledgement = ack-nhfb,
articleno = "216",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Nie:2020:UEI,
author = "Pengyu Nie and Marinela Parovic and Zhiqiang Zang and
Sarfraz Khurshid and Aleksandar Milicevic and Milos
Gligoric",
title = "Unifying execution of imperative generators and
declarative specifications",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "217:1--217:26",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428285",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2020.bib;
http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428285",
abstract = "We present Deuterium---a framework for implementing
Java methods as executable contracts. Deuterium
introduces a novel, type-safe way to write method
contracts entirely in Java, as a combination of
imperative generators and declarative specifications
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "217",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Turonova:2020:RMC,
author = "Lenka Turo{\v{n}}ov{\'a} and Luk{\'a}{\v{s}}
Hol{\'{\i}}k and Ond{\v{r}}ej Leng{\'a}l and Olli
Saarikivi and Margus Veanes and Tom{\'a}{\v{s}}
Vojnar",
title = "Regex matching with counting-set automata",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "218:1--218:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428286",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
http://www.math.utah.edu/pub/tex/bib/string-matching.bib",
URL = "https://dl.acm.org/doi/10.1145/3428286",
abstract = "We propose a solution to the problem of efficient
matching regular expressions (regexes) with bounded
repetition, such as (ab){1,100}, using deterministic
automata. For this, we introduce novel counting-set
automata (CsAs), automata with registers that
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "218",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gao:2020:FDS,
author = "Xiang Gao and Shraddha Barke and Arjun Radhakrishna
and Gustavo Soares and Sumit Gulwani and Alan Leung and
Nachiappan Nagappan and Ashish Tiwari",
title = "Feedback-driven semi-supervised synthesis of program
transformations",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "219:1--219:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428287",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428287",
abstract = "While editing code, it is common for developers to
make multiple related repeated edits that are all
instances of a more general program transformation.
Since this process can be tedious and error-prone, we
study the problem of automatically learning \ldots{}",
acknowledgement = ack-nhfb,
articleno = "219",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Fluckiger:2020:CDF,
author = "Olivier Fl{\"u}ckiger and Guido Chari and Ming-Ho Yee
and Jan Jecmen and Jakob Hain and Jan Vitek",
title = "Contextual dispatch for function specialization",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "220:1--220:24",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428288",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428288",
abstract = "In order to generate efficient code, dynamic language
compilers often need information, such as dynamic
types, not readily available in the program source.
Leveraging a mixture of static and dynamic information,
these compilers speculate on the missing \ldots{}",
acknowledgement = ack-nhfb,
articleno = "220",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gupta:2020:CGC,
author = "Shubhani Gupta and Abhishek Rose and Sorav Bansal",
title = "Counterexample-guided correlation algorithm for
translation validation",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "221:1--221:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428289",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428289",
abstract = "Automatic translation validation across the
unoptimized intermediate representation (IR) of the
original source code and the optimized executable
assembly code is a desirable capability, and has the
potential to compete with existing approaches to
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "221",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Andersen:2020:AIV,
author = "Leif Andersen and Michael Ballantyne and Matthias
Felleisen",
title = "Adding interactive visual syntax to textual code",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "222:1--222:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428290",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428290",
abstract = "Many programming problems call for turning geometrical
thoughts into code: tables, hierarchical structures,
nests of objects, trees, forests, graphs, and so on.
Linear text does not do justice to such thoughts. But,
it has been the dominant programming \ldots{}",
acknowledgement = ack-nhfb,
articleno = "222",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Zhou:2020:RIR,
author = "Yaoda Zhou and Bruno C. d. S. Oliveira and Jinxu
Zhao",
title = "Revisiting iso-recursive subtyping",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "223:1--223:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428291",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428291",
abstract = "The Amber rules are well-known and widely used for
subtyping iso-recursive types. They were first briefly
and informally introduced in 1985 by Cardelli in a
manuscript describing the Amber language. Despite their
use over many years, important aspects \ldots{}",
acknowledgement = ack-nhfb,
articleno = "223",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ji:2020:GDP,
author = "Ruyi Ji and Yican Sun and Yingfei Xiong and Zhenjiang
Hu",
title = "Guiding dynamic programming via structural probability
for accelerating programming by example",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "224:1--224:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428292",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428292",
abstract = "Programming by example (PBE) is an important
subproblem of program synthesis, and PBE techniques
have been applied to many domains. Though many
techniques for accelerating PBE systems have been
explored, the scalability remains one of the main
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "224",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{David:2020:NRE,
author = "Yaniv David and Uri Alon and Eran Yahav",
title = "Neural reverse engineering of stripped binaries using
augmented control flow graphs",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "225:1--225:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428293",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428293",
abstract = "We address the problem of reverse engineering of
stripped executables, which contain no debug
information. This is a challenging problem because of
the low amount of syntactic information available in
stripped executables, and the diverse assembly code
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "225",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kirkham:2020:FEM,
author = "Jake Kirkham and Tyler Sorensen and Esin Tureci and
Margaret Martonosi",
title = "Foundations of empirical memory consistency testing",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "226:1--226:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428294",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428294",
abstract = "Modern memory consistency models are complex, and it
is difficult to reason about the relaxed behaviors that
current systems allow. Programming languages, such as C
and OpenCL, offer a memory model interface that
developers can use to safely write \ldots{}",
acknowledgement = ack-nhfb,
articleno = "226",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barke:2020:JTL,
author = "Shraddha Barke and Hila Peleg and Nadia Polikarpova",
title = "Just-in-time learning for bottom-up enumerative
synthesis",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "227:1--227:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428295",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428295",
abstract = "A key challenge in program synthesis is the
astronomical size of the search space the synthesizer
has to explore. In response to this challenge, recent
work proposed to guide synthesis using learned
probabilistic models. Obtaining such a model, however,
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "227",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Wise:2020:GVR,
author = "Jenna Wise and Johannes Bader and Cameron Wong and
Jonathan Aldrich and {\'E}ric Tanter and Joshua
Sunshine",
title = "Gradual verification of recursive heap data
structures",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "228:1--228:28",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428296",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428296",
abstract = "Current static verification techniques do not provide
good support for incrementality, making it difficult
for developers to focus on specifying and verifying the
properties and components that are most important.
Dynamic verification approaches support \ldots{}",
acknowledgement = ack-nhfb,
articleno = "228",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ballantyne:2020:MDS,
author = "Michael Ballantyne and Alexis King and Matthias
Felleisen",
title = "Macros for domain-specific languages",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "229:1--229:29",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428297",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428297",
abstract = "Macros provide a powerful means of extending
languages. They have proven useful in both
general-purpose and domain-specific programming
contexts. This paper presents an architecture for
implementing macro-extensible DSLs on top of
macro-extensible host \ldots{}",
acknowledgement = ack-nhfb,
articleno = "229",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Mukherjee:2020:LBC,
author = "Suvam Mukherjee and Pantazis Deligiannis and Arpita
Biswas and Akash Lal",
title = "Learning-based controlled concurrency testing",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "230:1--230:31",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428298",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428298",
abstract = "Concurrency bugs are notoriously hard to detect and
reproduce. Controlled concurrency testing (CCT)
techniques aim to offer a solution, where a scheduler
explores the space of possible interleavings of a
concurrent program looking for bugs. Since the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "230",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{First:2020:TSA,
author = "Emily First and Yuriy Brun and Arjun Guha",
title = "{TacTok}: semantics-aware proof synthesis",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "231:1--231:31",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428299",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428299",
abstract = "Formally verifying software correctness is a highly
manual process. However, because verification proof
scripts often share structure, it is possible to learn
from existing proof scripts to fully automate some
formal verification. The goal of this paper \ldots{}",
acknowledgement = ack-nhfb,
articleno = "231",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Ghosh:2020:KLP,
author = "Ritwika Ghosh and Chiao Hsieh and Sasa Misailovic and
Sayan Mitra",
title = "{Koord}: a language for programming and verifying
distributed robotics application",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "232:1--232:30",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428300",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428300",
abstract = "A robot's code needs to sense the environment, control
the hardware, and communicate with other robots.
Current programming languages do not provide suitable
abstractions that are independent of hardware
platforms. Currently, developing robot \ldots{}",
acknowledgement = ack-nhfb,
articleno = "232",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sui:2020:FVF,
author = "Yulei Sui and Xiao Cheng and Guanqin Zhang and Haoyu
Wang",
title = "{Flow2Vec}: value-flow-based precise code embedding",
journal = j-PACMPL,
volume = "4",
number = "OOPSLA",
pages = "233:1--233:27",
month = nov,
year = "2020",
DOI = "https://doi.org/10.1145/3428301",
bibdate = "Tue Mar 30 08:10:50 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3428301",
abstract = "Code embedding, as an emerging paradigm for source
code analysis, has attracted much attention over the
past few years. It aims to represent code semantics
through distributed vector representations, which can
be used to support a variety of program \ldots{}",
acknowledgement = ack-nhfb,
articleno = "233",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Kuperberg:2021:CPS,
author = "Denis Kuperberg and Laureline Pinault and Damien
Pous",
title = "Cyclic proofs, system t, and the power of
contraction",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "1:1--1:28",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434282",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434282",
abstract = "We study a cyclic proof system C over regular
expression types, inspired by linear logic and
non-wellfounded proof theory. Proofs in C can be seen
as strongly typed goto programs. We show that they
denote computable total functions and we analyse the
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "1",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Bahr:2021:DFL,
author = "Patrick Bahr and Christian Uldal Graulund and Rasmus
Ejlers M{\o}gelberg",
title = "Diamonds are not forever: liveness in reactive
programming with guarded recursion",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "2:1--2:28",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434283",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434283",
abstract = "When designing languages for functional reactive
programming (FRP) the main challenge is to provide the
user with a simple, flexible interface for writing
programs on a high level of abstraction while ensuring
that all programs can be implemented \ldots{}",
acknowledgement = ack-nhfb,
articleno = "2",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sherman:2021:CSD,
author = "Benjamin Sherman and Jesse Michel and Michael
Carbin",
title = "$ \lambda_s $: computable semantics for differentiable
programming with higher-order functions and datatypes",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "3:1--3:31",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434284",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434284",
abstract = "Deep learning is moving towards increasingly
sophisticated optimization objectives that employ
higher-order functions, such as integration, continuous
optimization, and root-finding. Since differentiable
programming frameworks such as PyTorch and \ldots{}",
acknowledgement = ack-nhfb,
articleno = "3",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Margalit:2021:VOR,
author = "Roy Margalit and Ori Lahav",
title = "Verifying observational robustness against a
{C11}-style memory model",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "4:1--4:33",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434285",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434285",
abstract = "We study the problem of verifying the robustness of
concurrent programs against a C11-style memory model
that includes relaxed accesses and release/acquire
accesses and fences, and show that this verification
problem can be reduced to a standard \ldots{}",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Farka:2021:AAC,
author = "Franti{\v{s}}ek Farka and Aleksandar Nanevski and
Anindya Banerjee and Germ{\'a}n Andr{\'e}s Delbianco
and Ignacio F{\'a}bregas",
title = "On algebraic abstractions for concurrent separation
logics",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "5:1--5:32",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434286",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434286",
abstract = "Concurrent separation logic is distinguished by
transfer of state ownership upon parallel composition
and framing. The algebraic structure that underpins
ownership transfer is that of partial commutative
monoids (PCMs). Extant research considers \ldots{}",
acknowledgement = ack-nhfb,
articleno = "5",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Georges:2021:EPL,
author = "A{\"\i}na Linn Georges and Arma{\"e}l Gu{\'e}neau and
Thomas {Van Strydonck} and Amin Timany and Alix Trieu
and Sander Huyghebaert and Dominique Devriese and Lars
Birkedal",
title = "Efficient and provable local capability revocation
using uninitialized capabilities",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "6:1--6:30",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434287",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434287",
abstract = "Capability machines are a special form of CPUs that
offer fine-grained privilege separation using a form of
authority-carrying values known as capabilities. The
CHERI capability machine offers local capabilities,
which could be used as a cheap but \ldots{}",
acknowledgement = ack-nhfb,
articleno = "6",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Jacobs:2021:FAS,
author = "Koen Jacobs and Amin Timany and Dominique Devriese",
title = "Fully abstract from static to gradual",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "7:1--7:30",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434288",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434288",
abstract = "What is a good gradual language? Siek et al. have
previously proposed the refined criteria, a set of
formal ideas that characterize a range of guarantees
typically expected from a gradual language. While these
go a long way, they are mostly focused on \ldots{}",
acknowledgement = ack-nhfb,
articleno = "7",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Barthe:2021:DAD,
author = "Gilles Barthe and Rohit Chadha and Paul Krogmeier and
A. Prasad Sistla and Mahesh Viswanathan",
title = "Deciding accuracy of differential privacy schemes",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "8:1--8:30",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434289",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434289",
abstract = "Differential privacy is a mathematical framework for
developing statistical computations with provable
guarantees of privacy and accuracy. In contrast to the
privacy component of differential privacy, which has a
clear mathematical and intuitive meaning,. \ldots{}",
acknowledgement = ack-nhfb,
articleno = "8",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Chen:2021:CIC,
author = "Chao-Hong Chen and Amr Sabry",
title = "A computational interpretation of compact closed
categories: reversible programming with negative and
fractional types",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "9:1--9:29",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434290",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434290",
abstract = "Compact closed categories include objects representing
higher-order functions and are well-established as
models of linear logic, concurrency, and quantum
computing. We show that it is possible to construct
such compact closed categories for \ldots{}",
acknowledgement = ack-nhfb,
articleno = "9",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Gregersen:2021:MLR,
author = "Simon Oddershede Gregersen and Johan Bay and Amin
Timany and Lars Birkedal",
title = "Mechanized logical relations for
termination-insensitive noninterference",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "10:1--10:29",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434291",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434291",
abstract = "We present an expressive information-flow control type
system with recursive types, existential types, label
polymorphism, and impredicative type polymorphism for a
higher-order programming language with higher-order
state. We give a novel semantic \ldots{}",
acknowledgement = ack-nhfb,
articleno = "10",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Sabok:2021:PPS,
author = "Marcin Sabok and Sam Staton and Dario Stein and
Michael Wolman",
title = "Probabilistic programming semantics for name
generation",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "11:1--11:29",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434292",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434292",
abstract = "We make a formal analogy between random sampling and
fresh name generation. We show that quasi-Borel spaces,
a model for probabilistic programming, can soundly
interpret the \nu -calculus, a calculus for name
generation. Moreover, we prove that this \ldots{}",
acknowledgement = ack-nhfb,
articleno = "11",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Angiuli:2021:IRI,
author = "Carlo Angiuli and Evan Cavallo and Anders M{\"o}rtberg
and Max Zeuner",
title = "Internalizing representation independence with
univalence",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "12:1--12:30",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434293",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434293",
abstract = "In their usual form, representation independence
metatheorems provide an external guarantee that two
implementations of an abstract interface are
interchangeable when they are related by an
operation-preserving correspondence. If our programming
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "12",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Spies:2021:TSI,
author = "Simon Spies and Neel Krishnaswami and Derek Dreyer",
title = "Transfinite step-indexing for termination",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "13:1--13:29",
month = jan,
year = "2021",
DOI = "https://doi.org/10.1145/3434294",
bibdate = "Tue Mar 30 08:10:58 MDT 2021",
bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib",
URL = "https://dl.acm.org/doi/10.1145/3434294",
abstract = "Step-indexed logical relations are an extremely useful
technique for building operational-semantics-based
models and program logics for realistic, richly-typed
programming languages. They have proven to be
indispensable for modeling features like higher-.
\ldots{}",
acknowledgement = ack-nhfb,
articleno = "13",
fjournal = "Proceedings of the ACM on Programming Languages",
journal-URL = "https://pacmpl.acm.org/",
}
@Article{Benedikt:2021:GCT,
author = "Michael Benedikt and Pierre Pradic",
title = "Generating collection transformations from proofs",
journal = j-PACMPL,
volume = "5",
number = "POPL",
pages = "14:1--14:28",
month = jan,
year = "2021",