Valid HTML 4.0! Valid CSS!
%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author          = "Nelson H. F. Beebe",
%%%     version         = "1.10",
%%%     date            = "10 May 2024",
%%%     time            = "11:05:30 MST",
%%%     filename        = "pacmpl.bib",
%%%     address         = "University of Utah
%%%                        Department of Mathematics, 110 LCB
%%%                        155 S 1400 E RM 233
%%%                        Salt Lake City, UT 84112-0090
%%%                        USA",
%%%     telephone       = "+1 801 581 5254",
%%%     FAX             = "+1 801 581 4148",
%%%     URL             = "http://www.math.utah.edu/~beebe",
%%%     checksum        = "58583 40853 176735 1729543",
%%%     email           = "beebe at math.utah.edu, beebe at acm.org,
%%%                        beebe at computer.org (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "bibliography; BibTeX; Proceedings of the ACM
%%%                        on Programming Languages (PACMPL)",
%%%     license         = "public domain",
%%%     supported       = "yes",
%%%     docstring       = "This is a COMPLETE BibTeX bibliography for
%%%                        Proceedings of the ACM on Programming
%%%                        Languages (PACMPL) (CODEN ????, ISSN
%%%                        2475-1421).  The journal appears annually,
%%%                        and publication began with volume 1, number
%%%                        1, in September 2017.
%%%
%%%                        At version 1.10, the COMPLETE journal
%%%                        coverage looked like this:
%%%
%%%                             2017 ( 111)    2020 ( 233)    2023 ( 300)
%%%                             2018 ( 166)    2021 ( 167)    2024 ( 146)
%%%                             2019 ( 142)    2022 ( 192)
%%%
%%%                             Article:       1457
%%%
%%%                             Total entries: 1457
%%%
%%%                        The journal Web pages can be found at:
%%%
%%%                            http://pacmpl.acm.org/
%%%
%%%                        The journal table of contents page is at:
%%%
%%%                            https://pacmpl.acm.org/archive_toc.cfm
%%%
%%%                        Qualified subscribers can retrieve the full
%%%                        text of recent articles in PDF form.
%%%
%%%                        The initial draft was extracted from the ACM
%%%                        Web pages.
%%%
%%%                        ACM copyrights explicitly permit abstracting
%%%                        with credit, so article abstracts, keywords,
%%%                        and subject classifications have been
%%%                        included in this bibliography wherever
%%%                        available.  Article reviews have been
%%%                        omitted, until their copyright status has
%%%                        been clarified.
%%%
%%%                        bibsource keys in the bibliography entries
%%%                        below indicate the entry originally came
%%%                        from the computer science bibliography
%%%                        archive, even though it has likely since
%%%                        been corrected and updated.
%%%
%%%                        URL keys in the bibliography point to
%%%                        World Wide Web locations of additional
%%%                        information about the entry.
%%%
%%%                        BibTeX citation tags are uniformly chosen
%%%                        as name:year:abbrev, where name is the
%%%                        family name of the first author or editor,
%%%                        year is a 4-digit number, and abbrev is a
%%%                        3-letter condensation of important title
%%%                        words. Citation tags were automatically
%%%                        generated by software developed for the
%%%                        BibNet Project.
%%%
%%%                        In this bibliography, entries are sorted in
%%%                        publication order, using ``bibsort -byvolume.''
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%  }
%%% ====================================================================
@Preamble{"\input bibnames.sty" #
    "\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"
}

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

%%% ====================================================================
%%% Journal abbreviations:
@String{j-PACMPL                = "Proceedings of the ACM on Programming
                                   Languages (PACMPL)"}

%%% ====================================================================
%%% Bibliography entries:
@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",