%%% -*-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", DOI = "https://doi.org/10.1145/3434295", 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/3434295", abstract = "Nested relations, built up from atomic types via product and set types, form a rich data model. Over the last decades the nested relational calculus, NRC, has emerged as a standard language for defining transformations on nested collections. NRC is a \ldots{}", acknowledgement = ack-nhfb, articleno = "14", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Feldman:2021:LBI, author = "Yotam M. Y. Feldman and Mooly Sagiv and Sharon Shoham and James R. Wilcox", title = "Learning the boundary of inductive invariants", journal = j-PACMPL, volume = "5", number = "POPL", pages = "15:1--15:30", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434296", 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/3434296", abstract = "We study the complexity of invariant inference and its connections to exact concept learning. We define a condition on invariants and their geometry, called the fence condition, which permits applying theoretical results from exact concept learning to \ldots{}", acknowledgement = ack-nhfb, articleno = "15", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Ghilezan:2021:PSA, author = "Silvia Ghilezan and Jovanka Pantovi{\'c} and Ivan Proki{\'c} and Alceste Scalas and Nobuko Yoshida", title = "Precise subtyping for asynchronous multiparty sessions", journal = j-PACMPL, volume = "5", number = "POPL", pages = "16:1--16:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434297", 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/3434297", abstract = "Session subtyping is a cornerstone of refinement of communicating processes: a process implementing a session type (i.e., a communication protocol) T can be safely used whenever a process implementing one of its supertypes T ' is expected, in any context,. \ldots{}", acknowledgement = ack-nhfb, articleno = "16", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Ferles:2021:VCU, author = "Kostas Ferles and Jon Stephens and Isil Dillig", title = "Verifying correct usage of context-free {API} protocols", journal = j-PACMPL, volume = "5", number = "POPL", pages = "17:1--17:30", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434298", 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/3434298", abstract = "Several real-world libraries (e.g., reentrant locks, GUI frameworks, serialization libraries) require their clients to use the provided API in a manner that conforms to a context-free specification. Motivated by this observation, this paper describes a \ldots{}", acknowledgement = ack-nhfb, articleno = "17", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Arora:2021:PSE, author = "Jatin Arora and Sam Westrick and Umut A. Acar", title = "Provably space-efficient parallel functional programming", journal = j-PACMPL, volume = "5", number = "POPL", pages = "18:1--18:33", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434299", 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/3434299", abstract = "Because of its many desirable properties, such as its ability to control effects and thus potentially disastrous race conditions, functional programming offers a viable approach to programming modern multicore computers. Over the past decade several \ldots{}", acknowledgement = ack-nhfb, articleno = "18", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Pavlinovic:2021:DFR, author = "Zvonimir Pavlinovic and Yusen Su and Thomas Wies", title = "Data flow refinement type inference", journal = j-PACMPL, volume = "5", number = "POPL", pages = "19:1--19:31", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434300", 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/3434300", abstract = "Refinement types enable lightweight verification of functional programs. Algorithms for statically inferring refinement types typically work by reduction to solving systems of constrained Horn clauses extracted from typing derivations. An example is \ldots{}", acknowledgement = ack-nhfb, articleno = "19", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Yang:2021:SDR, author = "Cambridge Yang and Eric Atkinson and Michael Carbin", title = "Simplifying dependent reductions in the polyhedral model", journal = j-PACMPL, volume = "5", number = "POPL", pages = "20:1--20:33", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434301", 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/3434301", abstract = "A Reduction --- an accumulation over a set of values, using an associative and commutative operator --- is a common computation in many numerical computations, including scientific computations, machine learning, computer vision, and financial analytics. \ldots{}", acknowledgement = ack-nhfb, articleno = "20", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Patrignani:2021:SER, author = "Marco Patrignani and Eric Mark Martin and Dominique Devriese", title = "On the semantic expressiveness of recursive types", journal = j-PACMPL, volume = "5", number = "POPL", pages = "21:1--21:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434302", 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/3434302", abstract = "Recursive types extend the simply-typed lambda calculus (STLC) with the additional expressive power to enable diverging computation and to encode recursive data-types (e.g., lists). Two formulations of recursive types exist: iso-recursive and equi-. \ldots{}", acknowledgement = ack-nhfb, articleno = "21", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Rouvoet:2021:ITC, author = "Arjen Rouvoet and Robbert Krebbers and Eelco Visser", title = "Intrinsically typed compilation with nameless labels", journal = j-PACMPL, volume = "5", number = "POPL", pages = "22:1--22:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434303", 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/3434303", abstract = "To avoid compilation errors it is desirable to verify that a compiler is type correct -i.e., given well-typed source code, it always outputs well-typed target code. This can be done intrinsically by implementing it as a function in a dependently typed \ldots{}", acknowledgement = ack-nhfb, articleno = "22", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Willsey:2021:EFE, author = "Max Willsey and Chandrakana Nandi and Yisu Remy Wang and Oliver Flatt and Zachary Tatlock and Pavel Panchekha", title = "egg: Fast and extensible equality saturation", journal = j-PACMPL, volume = "5", number = "POPL", pages = "23:1--23:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434304", 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/3434304", abstract = "An e-graph efficiently represents a congruence relation over many expressions. Although they were originally developed in the late 1970s for use in automated theorem provers, a more recent technique known as equality saturation repurposes e-graphs to \ldots{}", acknowledgement = ack-nhfb, articleno = "23", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Ahman:2021:AE, author = "Danel Ahman and Matija Pretnar", title = "Asynchronous effects", journal = j-PACMPL, volume = "5", number = "POPL", pages = "24:1--24:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434305", 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/3434305", abstract = "We explore asynchronous programming with algebraic effects. We complement their conventional synchronous treatment by showing how to naturally also accommodate asynchrony within them, namely, by decoupling the execution of operation calls into \ldots{}", acknowledgement = ack-nhfb, articleno = "24", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Muller:2021:MAE, author = "Stefan K. Muller and Jan Hoffmann", title = "Modeling and analyzing evaluation cost of {CUDA} kernels", journal = j-PACMPL, volume = "5", number = "POPL", pages = "25:1--25:31", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434306", bibdate = "Tue Mar 30 08:10:58 MDT 2021", 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/10.1145/3434306", abstract = "General-purpose programming on GPUs (GPGPU) is becoming increasingly in vogue as applications such as machine learning and scientific computing demand high throughput in vector-parallel applications. NVIDIA's CUDA toolkit seeks to make GPGPU programming \ldots{}", acknowledgement = ack-nhfb, articleno = "25", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Silver:2021:DMF, author = "Lucas Silver and Steve Zdancewic", title = "{Dijkstra} monads forever: termination-sensitive specifications for interaction trees", journal = j-PACMPL, volume = "5", number = "POPL", pages = "26:1--26:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434307", 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/3434307", abstract = "This paper extends the Dijkstra monad framework, designed for writing specifications over effectful programs using monadic effects, to handle termination sensitive specifications over interactive programs. We achieve this by introducing base \ldots{}", acknowledgement = ack-nhfb, articleno = "26", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Rajani:2021:UTT, author = "Vineet Rajani and Marco Gaboardi and Deepak Garg and Jan Hoffmann", title = "A unifying type-theory for higher-order (amortized) cost analysis", journal = j-PACMPL, volume = "5", number = "POPL", pages = "27:1--27:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434308", 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/3434308", abstract = "This paper presents \lambda -amor, a new type-theoretic framework for amortized cost analysis of higher-order functional programs and shows that existing type systems for cost analysis can be embedded in it. \lambda -amor introduces a new modal type for representing \ldots{}", acknowledgement = ack-nhfb, articleno = "27", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Mazza:2021:ADP, author = "Damiano Mazza and Michele Pagani", title = "Automatic differentiation in {PCF}", journal = j-PACMPL, volume = "5", number = "POPL", pages = "28:1--28:27", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434309", 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/3434309", abstract = "We study the correctness of automatic differentiation (AD) in the context of a higher-order, Turing-complete language (PCF with real numbers), both in forward and reverse mode. Our main result is that, under mild hypotheses on the primitive functions \ldots{}", acknowledgement = ack-nhfb, articleno = "28", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Lim:2021:AGC, author = "Jay P. Lim and Mridul Aanjaneya and John Gustafson and Santosh Nagarakatte", title = "An approach to generate correctly rounded math libraries for new floating point variants", journal = j-PACMPL, volume = "5", number = "POPL", pages = "29:1--29:30", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434310", 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/3434310", abstract = "Given the importance of floating point (FP) performance in numerous domains, several new variants of FP and its alternatives have been proposed (e.g., Bfloat16, TensorFloat32, and posits). These representations do not have correctly rounded math \ldots{}", acknowledgement = ack-nhfb, articleno = "29", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Kim:2021:SGS, author = "Jinwoo Kim and Qinheping Hu and Loris D'Antoni and Thomas Reps", title = "Semantics-guided synthesis", journal = j-PACMPL, volume = "5", number = "POPL", pages = "30:1--30:32", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434311", 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/3434311", abstract = "This paper develops a new framework for program synthesis, called semantics-guided synthesis (SemGuS), that allows a user to provide both the syntax and the semantics for the constructs in the language. SemGuS accepts a recursively defined big-step \ldots{}", acknowledgement = ack-nhfb, articleno = "30", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Rosemann:2021:AIS, author = "Julian Rosemann and Simon Moll and Sebastian Hack", title = "An abstract interpretation for {SPMD} divergence on reducible control flow graphs", journal = j-PACMPL, volume = "5", number = "POPL", pages = "31:1--31:31", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434312", 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/3434312", abstract = "Vectorizing compilers employ divergence analysis to detect at which program point a specific variable is uniform, i.e. has the same value on all SPMD threads that execute this program point. They exploit uniformity to retain branching to counter branch \ldots{}", acknowledgement = ack-nhfb, articleno = "31", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{DalLago:2021:ITP, author = "Ugo {Dal Lago} and Claudia Faggian and Simona Ronchi {Della Rocca}", title = "Intersection types and (positive) almost-sure termination", journal = j-PACMPL, volume = "5", number = "POPL", pages = "32:1--32:32", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434313", 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/3434313", abstract = "Randomized higher-order computation can be seen as being captured by a \lambda -calculus endowed with a single algebraic operation, namely a construct for binary probabilistic choice. What matters about such computations is the probability of obtaining any \ldots{}", acknowledgement = ack-nhfb, articleno = "32", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{deVilhena:2021:SLE, author = "Paulo Em{\'\i}lio de Vilhena and Fran{\c{c}}ois Pottier", title = "A separation logic for effect handlers", journal = j-PACMPL, volume = "5", number = "POPL", pages = "33:1--33:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434314", 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/3434314", abstract = "User-defined effects and effect handlers are advertised and advocated as a relatively easy-to-understand and modular approach to delimited control. They offer the ability of suspending and resuming a computation and allow information to be transmitted \ldots{}", acknowledgement = ack-nhfb, articleno = "33", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Mathiasen:2021:FGP, author = "Anders Alnor Mathiasen and Andreas Pavlogiannis", title = "The fine-grained and parallel complexity of {Andersen}'s pointer analysis", journal = j-PACMPL, volume = "5", number = "POPL", pages = "34:1--34:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434315", 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/3434315", abstract = "Pointer analysis is one of the fundamental problems in static program analysis. Given a set of pointers, the task is to produce a useful over-approximation of the memory locations that each pointer may point-to at runtime. The most common formulation is \ldots{}", acknowledgement = ack-nhfb, articleno = "34", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Hirsch:2021:GSP, author = "Andrew K. Hirsch and Ethan Cecchetti", title = "Giving semantics to program-counter labels via secure effects", journal = j-PACMPL, volume = "5", number = "POPL", pages = "35:1--35:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434316", 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/3434316", abstract = "Type systems designed for information-flow control commonly use a program-counter label to track the sensitivity of the context and rule out data leakage arising from effectful computation in a sensitive context. Currently, type-system designers reason \ldots{}", acknowledgement = ack-nhfb, articleno = "35", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Mathur:2021:OPS, author = "Umang Mathur and Andreas Pavlogiannis and Mahesh Viswanathan", title = "Optimal prediction of synchronization-preserving races", journal = j-PACMPL, volume = "5", number = "POPL", pages = "36:1--36:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434317", 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/3434317", abstract = "Concurrent programs are notoriously hard to write correctly, as scheduling nondeterminism introduces subtle errors that are both hard to detect and to reproduce. The most common concurrency errors are (data) races, which occur when memory-conflicting \ldots{}", acknowledgement = ack-nhfb, articleno = "36", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Hietala:2021:VOQ, author = "Kesha Hietala and Robert Rand and Shih-Han Hung and Xiaodi Wu and Michael Hicks", title = "A verified optimizer for quantum circuits", journal = j-PACMPL, volume = "5", number = "POPL", pages = "37:1--37:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434318", 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/3434318", abstract = "We present VOQC, the first fully verified optimizer for quantum circuits, written using the Coq proof assistant. Quantum circuits are expressed as programs in a simple, low-level language called SQIR, a simple quantum intermediate representation, which \ldots{}", acknowledgement = ack-nhfb, articleno = "37", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Gutsfeld:2021:AFA, author = "Jens Oliver Gutsfeld and Markus M{\"u}ller-Olm and Christoph Ohrem", title = "Automata and fixpoints for asynchronous hyperproperties", journal = j-PACMPL, volume = "5", number = "POPL", pages = "38:1--38:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434319", 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/3434319", abstract = "Hyperproperties have received increasing attention in the last decade due to their importance e.g. for security analyses. Past approaches have focussed on synchronous analyses, i.e. techniques in which different paths are compared lockstepwise. In this \ldots{}", acknowledgement = ack-nhfb, articleno = "38", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Batz:2021:RCV, author = "Kevin Batz and Benjamin Lucien Kaminski and Joost-Pieter Katoen and Christoph Matheja", title = "Relatively complete verification of probabilistic programs: an expressive language for expectation-based reasoning", journal = j-PACMPL, volume = "5", number = "POPL", pages = "39:1--39:30", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434320", 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/3434320", abstract = "We study a syntax for specifying quantitative assertions -functions mapping program states to numbers-for probabilistic program verification. We prove that our syntax is expressive in the following sense: Given any probabilistic program C, if a function \ldots{}", acknowledgement = ack-nhfb, articleno = "39", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Courant:2021:VCG, author = "Nathana{\"e}l Courant and Xavier Leroy", title = "Verified code generation for the polyhedral model", journal = j-PACMPL, volume = "5", number = "POPL", pages = "40:1--40:24", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434321", 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/3434321", abstract = "The polyhedral model is a high-level intermediate representation for loop nests that supports elegantly a great many loop optimizations. In a compiler, after polyhedral loop optimizations have been performed, it is necessary and difficult to regenerate \ldots{}", acknowledgement = ack-nhfb, articleno = "40", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Doenges:2021:PFF, author = "Ryan Doenges and Mina Tahmasbi Arashloo and Santiago Bautista and Alexander Chang and Newton Ni and Samwise Parkinson and Rudy Peterson and Alaia Solko-Breslin and Amanda Xu and Nate Foster", title = "{Petr4}: formal foundations for p4 data planes", journal = j-PACMPL, volume = "5", number = "POPL", pages = "41:1--41:32", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434322", 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/3434322", abstract = "P4 is a domain-specific language for programming and specifying packet-processing systems. It is based on an elegant design with high-level abstractions like parsers and match-action pipelines that can be compiled to efficient implementations in \ldots{}", acknowledgement = ack-nhfb, articleno = "41", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Gondelman:2021:DCM, author = "L{\'e}on Gondelman and Simon Oddershede Gregersen and Abel Nieto and Amin Timany and Lars Birkedal", title = "Distributed causal memory: modular specification and verification in higher-order distributed separation logic", journal = j-PACMPL, volume = "5", number = "POPL", pages = "42:1--42:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434323", 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/3434323", abstract = "We present the first specification and verification of an implementation of a causally-consistent distributed database that supports modular verification of full functional correctness properties of clients and servers. We specify and reason about the \ldots{}", acknowledgement = ack-nhfb, articleno = "42", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Kokologiannakis:2021:PPS, author = "Michalis Kokologiannakis and Ilya Kaysin and Azalea Raad and Viktor Vafeiadis", title = "{PerSeVerE}: persistency semantics for verification under ext4", journal = j-PACMPL, volume = "5", number = "POPL", pages = "43:1--43:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434324", 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/3434324", abstract = "Although ubiquitous, modern filesystems have rather complex behaviours that are hardly understood by programmers and lead to severe software bugs such as data corruption. As a first step to ensure correctness of software performing file I/O, we \ldots{}", acknowledgement = ack-nhfb, articleno = "43", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Baumann:2021:CBV, author = "Pascal Baumann and Rupak Majumdar and Ramanathan S. Thinniyam and Georg Zetzsche", title = "Context-bounded verification of liveness properties for multithreaded shared-memory programs", journal = j-PACMPL, volume = "5", number = "POPL", pages = "44:1--44:31", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434325", 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/3434325", abstract = "We study context-bounded verification of liveness properties of multi-threaded, shared-memory programs, where each thread can spawn additional threads. Our main result shows that context-bounded fair termination is decidable for the model; context-. \ldots{}", acknowledgement = ack-nhfb, articleno = "44", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Reynaud:2021:PMS, author = "Alban Reynaud and Gabriel Scherer and Jeremy Yallop", title = "A practical mode system for recursive definitions", journal = j-PACMPL, volume = "5", number = "POPL", pages = "45:1--45:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434326", 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/3434326", abstract = "In call-by-value languages, some mutually-recursive definitions can be safely evaluated to build recursive functions or cyclic data structures, but some definitions (let rec x = x + 1) contain vicious circles and their evaluation fails at runtime. We \ldots{}", acknowledgement = ack-nhfb, articleno = "45", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Barriere:2021:FVS, author = "Aur{\`e}le Barri{\`e}re and Sandrine Blazy and Olivier Fl{\"u}ckiger and David Pichardie and Jan Vitek", title = "Formally verified speculation and deoptimization in a {JIT} compiler", journal = j-PACMPL, volume = "5", number = "POPL", pages = "46:1--46:26", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434327", 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/3434327", abstract = "Just-in-time compilers for dynamic languages routinely generate code under assumptions that may be invalidated at run-time, this allows for specialization of program code to the common case in order to avoid unnecessary overheads due to uncommon cases. \ldots{}", acknowledgement = ack-nhfb, articleno = "46", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Khyzha:2021:TXT, author = "Artem Khyzha and Ori Lahav", title = "Taming {x86-TSO} persistency", journal = j-PACMPL, volume = "5", number = "POPL", pages = "47:1--47:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434328", 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/3434328", abstract = "We study the formal semantics of non-volatile memory in the x86-TSO architecture. We show that while the explicit persist operations in the recent model of Raad et al. from POPL'20 only enforce order between writes to the non-volatile memory, it is \ldots{}", acknowledgement = ack-nhfb, articleno = "47", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Almagor:2021:DRP, author = "Shaull Almagor and Toghrul Karimov and Edon Kelmendi and Jo{\"e}l Ouaknine and James Worrell", title = "Deciding $ \omega $-regular properties on linear recurrence sequences", journal = j-PACMPL, volume = "5", number = "POPL", pages = "48:1--48:24", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434329", 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/3434329", abstract = "We consider the problem of deciding $ \omega $-regular properties on infinite traces produced by linear loops. Here we think of a given loop as producing a single infinite trace that encodes information about the signs of program variables at each time step. \ldots{}", acknowledgement = ack-nhfb, articleno = "48", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Vassena:2021:AES, author = "Marco Vassena and Craig Disselkoen and Klaus von Gleissenthall and Sunjay Cauligi and Rami G{\"o}khan K{\i}c{\i} and Ranjit Jhala and Dean Tullsen and Deian Stefan", title = "Automatically eliminating speculative leaks from cryptographic code with {Blade}", journal = j-PACMPL, volume = "5", number = "POPL", pages = "49:1--49:30", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434330", bibdate = "Tue Mar 30 08:10:58 MDT 2021", 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/10.1145/3434330", abstract = "We introduce Blade, a new approach to automatically and efficiently eliminate speculative leaks from cryptographic code. Blade is built on the insight that to stop leaks via speculative execution, it suffices to cut the dataflow from expressions that \ldots{}", acknowledgement = ack-nhfb, articleno = "49", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Choudhury:2021:GDT, author = "Pritam Choudhury and Harley {Eades III} and Richard A. Eisenberg and Stephanie Weirich", title = "A graded dependent type system with a usage-aware semantics", journal = j-PACMPL, volume = "5", number = "POPL", pages = "50:1--50:32", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434331", 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/3434331", abstract = "Graded Type Theory provides a mechanism to track and reason about resource usage in type systems. In this paper, we develop GraD, a novel version of such a graded dependent type system that includes functions, tensor products, additive sums, and a unit \ldots{}", acknowledgement = ack-nhfb, articleno = "50", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Accattoli:2021:EI, author = "Beniamino Accattoli and Ugo {Dal Lago} and Gabriele Vanoni", title = "The (in)efficiency of interaction", journal = j-PACMPL, volume = "5", number = "POPL", pages = "51:1--51:33", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434332", 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/3434332", abstract = "Evaluating higher-order functional programs through abstract machines inspired by the geometry of the interaction is known to induce space efficiencies, the price being time performances often poorer than those obtainable with traditional, environment-. \ldots{}", acknowledgement = ack-nhfb, articleno = "51", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Aguirre:2021:PEC, author = "Alejandro Aguirre and Gilles Barthe and Justin Hsu and Benjamin Lucien Kaminski and Joost-Pieter Katoen and Christoph Matheja", title = "A pre-expectation calculus for probabilistic sensitivity", journal = j-PACMPL, volume = "5", number = "POPL", pages = "52:1--52:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434333", 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/3434333", abstract = "Sensitivity properties describe how changes to the input of a program affect the output, typically by upper bounding the distance between the outputs of two runs by a monotone function of the distance between the corresponding inputs. When programs are \ldots{}", acknowledgement = ack-nhfb, articleno = "52", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Moy:2021:CRS, author = "Cameron Moy and Ph{\'u}c C. Nguy{\~{\^e}}n and Sam Tobin-Hochstadt and David {Van Horn}", title = "Corpse reviver: sound and efficient gradual typing via contract verification", journal = j-PACMPL, volume = "5", number = "POPL", pages = "53:1--53:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434334", 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/3434334", abstract = "Gradually typed programming languages permit the incremental addition of static types to untyped programs. To remain sound, languages insert run-time checks at the boundaries between typed and untyped code. Unfortunately, performance studies have shown \ldots{}", acknowledgement = ack-nhfb, articleno = "53", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Lee:2021:CTP, author = "Woosuk Lee", title = "Combining the top-down propagation and bottom-up enumeration for inductive program synthesis", journal = j-PACMPL, volume = "5", number = "POPL", pages = "54:1--54:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434335", 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/3434335", abstract = "We present an effective method for scalable and general-purpose inductive program synthesis. There have been two main approaches for inductive synthesis: enumerative search, which repeatedly enumerates possible candidate programs, and the top-down \ldots{}", acknowledgement = ack-nhfb, articleno = "54", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Jones:2021:IDR, author = "Eddie Jones and Steven Ramsay", title = "Intensional datatype refinement: with application to scalable verification of pattern-match safety", journal = j-PACMPL, volume = "5", number = "POPL", pages = "55:1--55:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434336", 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/3434336", abstract = "The pattern-match safety problem is to verify that a given functional program will never crash due to non-exhaustive patterns in its function definitions. We present a refinement type system that can be used to solve this problem. The system extends ML-. \ldots{}", acknowledgement = ack-nhfb, articleno = "55", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Abdulla:2021:DRU, author = "Parosh Aziz Abdulla and Mohamed Faouzi Atig and Ahmed Bouajjani and K. Narayan Kumar and Prakash Saivasan", title = "Deciding reachability under persistent {x86-TSO}", journal = j-PACMPL, volume = "5", number = "POPL", pages = "56:1--56:32", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434337", 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/3434337", abstract = "We address the problem of verifying the reachability problem in programs running under the formal model Px86 defined recently by Raad et al. in POPL'20 for the persistent Intel x86 architecture. We prove that this problem is decidable. To achieve that, \ldots{}", acknowledgement = ack-nhfb, articleno = "56", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{DiLiberti:2021:FSP, author = "Ivan {Di Liberti} and Fosco Loregian and Chad Nester and Pawe{\l} Soboci{\'n}ski", title = "Functorial semantics for partial theories", journal = j-PACMPL, volume = "5", number = "POPL", pages = "57:1--57:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434338", 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/3434338", abstract = "We provide a Lawvere-style definition for partial theories, extending the classical notion of equational theory by allowing partially defined operations. As in the classical case, our definition is syntactic: we use an appropriate class of string \ldots{}", acknowledgement = ack-nhfb, articleno = "57", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Jacobs:2021:PPP, author = "Jules Jacobs", title = "Paradoxes of probabilistic programming: and how to condition on events of measure zero with infinitesimal probabilities", journal = j-PACMPL, volume = "5", number = "POPL", pages = "58:1--58:26", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434339", 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/3434339", abstract = "Abstract Probabilistic programming languages allow programmers to write down conditional probability distributions that represent statistical and machine learning models as programs that use observe statements. These programs are run by accumulating \ldots{}", acknowledgement = ack-nhfb, articleno = "58", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Li:2021:CBI, author = "Yuanbo Li and Qirun Zhang and Thomas Reps", title = "On the complexity of bidirected interleaved {Dyck}-reachability", journal = j-PACMPL, volume = "5", number = "POPL", pages = "59:1--59:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434340", 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/3434340", abstract = "Many program analyses need to reason about pairs of matching actions, such as call/return, lock/unlock, or set-field/get-field. The family of Dyck languages { D$_k$ }, where D$_k$ has k kinds of parenthesis pairs, can be used to model matching actions as \ldots{}", acknowledgement = ack-nhfb, articleno = "59", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Cockx:2021:TRT, author = "Jesper Cockx and Nicolas Tabareau and Th{\'e}o Winterhalter", title = "The taming of the rew: a type theory with computational assumptions", journal = j-PACMPL, volume = "5", number = "POPL", pages = "60:1--60:29", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434341", 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/3434341", abstract = "Dependently typed programming languages and proof assistants such as Agda and Coq rely on computation to automatically simplify expressions during type checking. To overcome the lack of certain programming primitives or logical principles in those \ldots{}", acknowledgement = ack-nhfb, articleno = "60", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Schwerter:2021:AGT, author = "Felipe Ba{\~n}ados Schwerter and Alison M. Clark and Khurram A. Jafery and Ronald Garcia", title = "Abstracting gradual typing moving forward: precise and space-efficient", journal = j-PACMPL, volume = "5", number = "POPL", pages = "61:1--61:28", month = jan, year = "2021", DOI = "https://doi.org/10.1145/3434342", 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/3434342", abstract = "Abstracting Gradual Typing (AGT) is a systematic approach to designing gradually-typed languages. Languages developed using AGT automatically satisfy the formal semantic criteria for gradual languages identified by Siek et al. Nonetheless, vanilla AGT \ldots{}", acknowledgement = ack-nhfb, articleno = "61", fjournal = "Proceedings of the ACM on Programming Languages", journal-URL = "https://pacmpl.acm.org/", } @Article{Qian:2021:CSS, author = "Zesen Qian and G. A. Kavvos and Lars Birkedal", title = "Client-server sessions in linear logic", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "62:1--62:31", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473567", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473567", abstract = "We introduce coexponentials, a new set of modalities for Classical Linear Logic. As duals to exponentials, the coexponentials codify a distributed form of the structural rules of weakening and contraction. This makes them a suitable logical device for \ldots{}", acknowledgement = ack-nhfb, articleno = "62", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Krauter:2021:PST, author = "Nicolas Krauter and Patrick Raaf and Peter Braam and Reza Salkhordeh and Sebastian Erdweg and Andr{\'e} Brinkmann", title = "Persistent software transactional memory in {Haskell}", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "63:1--63:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473568", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473568", abstract = "Emerging persistent memory in commodity hardware allows byte-granular accesses to persistent state at memory speeds. However, to prevent inconsistent state in persistent memory due to unexpected system failures, different write-semantics are required \ldots{}", acknowledgement = ack-nhfb, articleno = "63", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Eisenberg:2021:ECR, author = "Richard A. Eisenberg and Guillaume Duboc and Stephanie Weirich and Daniel Lee", title = "An existential crisis resolved: type inference for first-class existential types", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "64:1--64:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473569", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473569", abstract = "Despite the great success of inferring and programming with universal types, their dual-existential types-are much harder to work with. Existential types are useful in building abstract types, working with indexed types, and providing first-class \ldots{}", acknowledgement = ack-nhfb, articleno = "64", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Handa:2021:OAD, author = "Shivam Handa and Konstantinos Kallas and Nikos Vasilakis and Martin C. Rinard", title = "An order-aware dataflow model for parallel {Unix} pipelines", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "65:1--65:28", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473570", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib; http://www.math.utah.edu/pub/tex/bib/unix.bib", URL = "https://dl.acm.org/doi/10.1145/3473570", abstract = "We present a dataflow model for modelling parallel Unix shell pipelines. To accurately capture the semantics of complex Unix pipelines, the dataflow model is order-aware, i.e., the order in which a node in the dataflow graph consumes inputs from \ldots{}", acknowledgement = ack-nhfb, articleno = "65", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Mevel:2021:FVC, author = "Glen M{\'e}vel and Jacques-Henri Jourdan", title = "Formal verification of a concurrent bounded queue in a weak memory model", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "66:1--66:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473571", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473571", abstract = "We use Cosmo, a modern concurrent separation logic, to formally specify and verify an implementation of a multiple-producer multiple-consumer concurrent queue in the setting of the Multicore OCaml weak memory model. We view this result as a \ldots{}", acknowledgement = ack-nhfb, articleno = "66", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zakowski:2021:MCE, author = "Yannick Zakowski and Calvin Beck and Irene Yoon and Ilia Zaichuk and Vadim Zaliva and Steve Zdancewic", title = "Modular, compositional, and executable formal semantics for {LLVM IR}", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "67:1--67:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473572", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473572", abstract = "This paper presents a novel formal semantics, mechanized in Coq, for a large, sequential subset of the LLVM IR. In contrast to previous approaches, which use relationally-specified operational semantics, this new semantics is based on monadic \ldots{}", acknowledgement = ack-nhfb, articleno = "67", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Lazarek:2021:HEB, author = "Lukas Lazarek and Ben Greenman and Matthias Felleisen and Christos Dimoulas", title = "How to evaluate blame for gradual types", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "68:1--68:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473573", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473573", abstract = "Programming language theoreticians develop blame assignment systems and prove blame theorems for gradually typed programming languages. Practical implementations of gradual typing almost completely ignore the idea of blame assignment. This contrast \ldots{}", acknowledgement = ack-nhfb, articleno = "68", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Stucki:2021:THO, author = "Sandro Stucki and Paolo G. Giarrusso", title = "A theory of higher-order subtyping with type intervals", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "69:1--69:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473574", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473574", abstract = "The calculus of Dependent Object Types (DOT) has enabled a more principled and robust implementation of Scala, but its support for type-level computation has proven insufficient. As a remedy, we propose \ldots{}", acknowledgement = ack-nhfb, articleno = "69", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Serrano:2021:JAC, author = "Manuel Serrano", title = "Of {JavaScript AOT} compilation performance", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "70:1--70:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473575", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", 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/3473575", abstract = "The fastest JavaScript production implementations use just-in-time (JIT) compilation and the vast majority of academic publications about implementations of dynamic languages published during the last two decades focus on JIT compilation. This does not \ldots{}", acknowledgement = ack-nhfb, articleno = "70", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Xie:2021:GEP, author = "Ningning Xie and Daan Leijen", title = "Generalized evidence passing for effect handlers: efficient compilation of effect handlers to {C}", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "71:1--71:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473576", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473576", abstract = "This paper studies compilation techniques for algebraic effect handlers. In particular, we present a sequence of refinements of algebraic effects, going via multi-prompt delimited control, generalized evidence passing, yield bubbling, and finally a \ldots{}", acknowledgement = ack-nhfb, articleno = "71", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Kidney:2021:AWS, author = "Donnacha Ois{\'\i}n Kidney and Nicolas Wu", title = "Algebras for weighted search", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "72:1--72:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473577", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473577", abstract = "Weighted search is an essential component of many fundamental and useful algorithms. Despite this, it is relatively under explored as a computational effect, receiving not nearly as much attention as either depth- or breadth-first search. This paper \ldots{}", acknowledgement = ack-nhfb, articleno = "72", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Yang:2021:RAE, author = "Zhixuan Yang and Nicolas Wu", title = "Reasoning about effect interaction by fusion", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "73:1--73:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473578", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473578", abstract = "Effect handlers can be composed by applying them sequentially, each handling some operations and leaving other operations uninterpreted in the syntax tree. However, the semantics of composed handlers can be subtle---it is well known that different \ldots{}", acknowledgement = ack-nhfb, articleno = "73", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Li:2021:DEP, author = "John M. Li and Andrew W. Appel", title = "Deriving efficient program transformations from rewrite rules", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "74:1--74:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473579", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473579", abstract = "An efficient optimizing compiler can perform many cascading rewrites in a single pass, using auxiliary data structures such as variable binding maps, delayed substitutions, and occurrence counts. Such optimizers often perform transformations according \ldots{}", acknowledgement = ack-nhfb, articleno = "74", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zyuzin:2021:CMT, author = "Nikita Zyuzin and Aleksandar Nanevski", title = "Contextual modal types for algebraic effects and handlers", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "75:1--75:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473580", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473580", abstract = "Programming languages with algebraic effects often track the computations' effects using type-and-effect systems. In this paper, we propose to view an algebraic effect theory of a computation as a variable context; consequently, we propose to track \ldots{}", acknowledgement = ack-nhfb, articleno = "75", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Kahn:2021:AAR, author = "David M. Kahn and Jan Hoffmann", title = "Automatic amortized resource analysis with the quantum physicist's method", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "76:1--76:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473581", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473581", abstract = "We present a novel method for working with the physicist's method of amortized resource analysis, which we call the quantum physicist's method. These principles allow for more precise analyses of resources that are not monotonically consumed, like \ldots{}", acknowledgement = ack-nhfb, articleno = "76", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Merigoux:2021:PCP, author = "Denis Merigoux and Nicolas Chataing and Jonathan Protzenko", title = "\pkg{Catala}: a programming language for the law", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "77:1--77:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473582", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473582", abstract = "Law at large underpins modern society, codifying and governing many aspects of citizens' daily lives. Oftentimes, law is subject to interpretation, debate and challenges throughout various courts and jurisdictions. But in some other areas, law leaves \ldots{}", acknowledgement = ack-nhfb, articleno = "77", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Elliott:2021:SAD, author = "Conal Elliott", title = "Symbolic and automatic differentiation of languages", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "78:1--78:18", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473583", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473583", abstract = "Formal languages are usually defined in terms of set theory. Choosing type theory instead gives us languages as type-level predicates over strings. Applying a language to a string yields a type whose elements are language membership proofs describing \ldots{}", acknowledgement = ack-nhfb, articleno = "78", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Rocha:2021:PTS, author = "Pedro Rocha and Lu{\'\i}s Caires", title = "Propositions-as-types and shared state", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "79:1--79:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473584", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473584", abstract = "We develop a principled integration of shared mutable state into a proposition-as-types linear logic interpretation of a session-based concurrent programming language. While the foundation of type systems for the functional core of programming languages \ldots{}", acknowledgement = ack-nhfb, articleno = "79", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Li:2021:RAG, author = "Yao Li and Li-yao Xia and Stephanie Weirich", title = "Reasoning about the garden of forking paths", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "80:1--80:28", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473585", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473585", abstract = "Lazy evaluation is a powerful tool for functional programmers. It enables the concise expression of on-demand computation and a form of compositionality not available under other evaluation strategies. However, the stateful nature of lazy evaluation \ldots{}", acknowledgement = ack-nhfb, articleno = "80", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Birkedal:2021:TFS, author = "Lars Birkedal and Thomas Dinsdale-Young and Arma{\"e}l Gu{\'e}neau and Guilhem Jaber and Kasper Svendsen and Nikos Tzevelekos", title = "Theorems for free from separation logic specifications", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "81:1--81:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473586", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473586", abstract = "Separation logic specifications with abstract predicates intuitively enforce a discipline that constrains when and how calls may be made between a client and a library. Thus a separation logic specification of a library intuitively enforces a protocol \ldots{}", acknowledgement = ack-nhfb, articleno = "81", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Pickard:2021:CDT, author = "Mitchell Pickard and Graham Hutton", title = "Calculating dependently-typed compilers (functional pearl)", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "82:1--82:27", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473587", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473587", abstract = "Compilers are difficult to write, and difficult to get right. Bahr and Hutton recently developed a new technique for calculating compilers directly from specifications of their correctness, which ensures that the resulting compilers are correct-by-. \ldots{}", acknowledgement = ack-nhfb, articleno = "82", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Houshmand:2021:PGD, author = "Farzin Houshmand and Mohsen Lesani and Keval Vora", title = "\pkg{Grafs}: declarative graph analytics", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "83:1--83:32", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473588", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473588", abstract = "Graph analytics elicits insights from large graphs to inform critical decisions for business, safety and security. Several large-scale graph processing frameworks feature efficient runtime systems; however, they often provide programming models that are \ldots{}", acknowledgement = ack-nhfb, articleno = "83", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Watanabe:2021:CSH, author = "Yasunari Watanabe and Kiran Gopinathan and George P{\^\i}rlea and Nadia Polikarpova and Ilya Sergey", title = "Certifying the synthesis of heap-manipulating programs", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "84:1--84:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473589", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473589", abstract = "Automated deductive program synthesis promises to generate executable programs from concise specifications, along with proofs of correctness that can be independently verified using third-party tools. However, an attempt to exercise this promise using \ldots{}", acknowledgement = ack-nhfb, articleno = "84", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Fromherz:2021:PSP, author = "Aymeric Fromherz and Aseem Rastogi and Nikhil Swamy and Sydney Gibson and Guido Mart{\'\i}nez and Denis Merigoux and Tahina Ramananandro", title = "\pkg{Steel}: proof-oriented programming in a dependently typed concurrent separation logic", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "85:1--85:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473590", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473590", abstract = "Steel is a language for developing and proving concurrent programs embedded in \ldots{}", acknowledgement = ack-nhfb, articleno = "85", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Paraskevopoulou:2021:COC, author = "Zoe Paraskevopoulou and John M. Li and Andrew W. Appel", title = "Compositional optimizations for {CertiCoq}", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "86:1--86:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473591", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473591", abstract = "Compositional compiler verification is a difficult problem that focuses on separate compilation of program components with possibly different verified compilers. Logical relations are widely used in proving correctness of program transformations in \ldots{}", acknowledgement = ack-nhfb, articleno = "86", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Avanzini:2021:CPT, author = "Martin Avanzini and Gilles Barthe and Ugo {Dal Lago}", title = "On continuation-passing transformations and expected cost analysis", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "87:1--87:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473592", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473592", abstract = "We define a continuation-passing style (CPS) translation for a typed $\lambda$-calculus with probabilistic choice, unbounded recursion, and a tick operator --- for modeling cost. The target language is a (non-probabilistic) $\lambda$-calculus, enriched with a type of \ldots{}", acknowledgement = ack-nhfb, articleno = "87", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Paszke:2021:GPI, author = "Adam Paszke and Daniel D. Johnson and David Duvenaud and Dimitrios Vytiniotis and Alexey Radul and Matthew J. Johnson and Jonathan Ragan-Kelley and Dougal Maclaurin", title = "Getting to the point: index sets and parallelism-preserving autodiff for pointful array programming", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "88:1--88:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473593", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473593", abstract = "We present a novel programming language design that attempts to combine the clarity and safety of high-level functional languages with the efficiency and parallelism of low-level numerical languages. We treat arrays as eagerly-memoized functions on \ldots{}", acknowledgement = ack-nhfb, articleno = "88", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Huang:2021:DIU, author = "Xuejing Huang and Bruno C. d. S. Oliveira", title = "Distributing intersection and union types with splits and duality (functional pearl)", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "89:1--89:24", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473594", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473594", abstract = "Subtyping with intersection and union types is nowadays common in many programming languages. From the perspective of logic, the subtyping problem is essentially the problem of determining logical entailment: does a logical statement follow from another \ldots{}", acknowledgement = ack-nhfb, articleno = "89", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Giannarakis:2021:PPP, author = "Nick Giannarakis and Alexandra Silva and David Walker", title = "\pkg{ProbNV}: probabilistic verification of network control planes", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "90:1--90:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473595", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473595", abstract = "ProbNV is a new framework for probabilistic network control plane verification that strikes a balance between generality and scalability. ProbNV is general enough to encode a wide range of features from the most common protocols (eBGP and OSPF) and yet \ldots{}", acknowledgement = ack-nhfb, articleno = "90", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Koparkar:2021:ETT, author = "Chaitanya Koparkar and Mike Rainey and Michael Vollmer and Milind Kulkarni and Ryan R. Newton", title = "Efficient tree-traversals: reconciling parallelism and dense data representations", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "91:1--91:29", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473596", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473596", abstract = "Recent work showed that compiling functional programs to use dense, serialized memory representations for recursive algebraic datatypes can yield significant constant-factor speedups for sequential programs. But serializing data in a maximally dense \ldots{}", acknowledgement = ack-nhfb, articleno = "91", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Yanovski:2021:PGS, author = "Joshua Yanovski and Hoang-Hai Dang and Ralf Jung and Derek Dreyer", title = "\pkg{GhostCell}: separating permissions from data in {Rust}", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "92:1--92:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473597", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", 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/3473597", abstract = "The Rust language offers a promising approach to safe systems programming based on the principle of aliasing XOR mutability: a value may be either aliased or mutable, but not both at the same time. However, to implement pointer-based data structures \ldots{}", acknowledgement = ack-nhfb, articleno = "92", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Aguirre:2021:HOP, author = "Alejandro Aguirre and Gilles Barthe and Marco Gaboardi and Deepak Garg and Shin-ya Katsumata and Tetsuya Sato", title = "Higher-order probabilistic adversarial computations: categorical semantics and program logics", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "93:1--93:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473598", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473598", abstract = "Adversarial computations are a widely studied class of computations where resource-bounded probabilistic adversaries have access to oracles, i.e., probabilistic procedures with private state. These computations arise routinely in several domains, \ldots{}", acknowledgement = ack-nhfb, articleno = "93", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Chlipala:2021:SBB, author = "Adam Chlipala", title = "Skipping the binder bureaucracy with mixed embeddings in a semantics course (functional pearl)", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "94:1--94:28", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473599", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473599", abstract = "Rigorous reasoning about programs calls for some amount of bureaucracy in managing details like variable binding, but, in guiding students through big ideas in semantics, we might hope to minimize the overhead. We describe our experiment introducing a \ldots{}", acknowledgement = ack-nhfb, articleno = "94", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Sekiyama:2021:CTA, author = "Taro Sekiyama and Takeshi Tsukada", title = "{CPS} transformation with affine types for call-by-value implicit polymorphism", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "95:1--95:30", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473600", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473600", abstract = "Transformation of programs into continuation-passing style (CPS) reveals the notion of continuations, enabling many applications such as control operators and intermediate representations in compilers. Although type preservation makes CPS transformation \ldots{}", acknowledgement = ack-nhfb, articleno = "95", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Germane:2021:NSL, author = "Kimball Germane and Jay McCarthy", title = "Newly-single and loving it: improving higher-order must-alias analysis with heap fragments", journal = j-PACMPL, volume = "5", number = "ICFP", pages = "96:1--96:28", month = aug, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3473601", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:41 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3473601", abstract = "Theories of higher-order must-alias analysis, often under the guise of environment analysis, provide deep behavioral insight. But these theories---in particular those that are most insightful otherwise---can reason about recursion only in limited cases. \ldots{}", acknowledgement = ack-nhfb, articleno = "96", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Honore:2021:MAA, author = "Wolf Honor{\'e} and Jieung Kim and Ji-Yong Shin and Zhong Shao", title = "Much {ADO} about failures: a fault-aware model for compositional verification of strongly consistent distributed systems", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "97:1--97:31", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485474", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485474", abstract = "Despite recent advances, guaranteeing the correctness of large-scale distributed applications without compromising performance remains a challenging problem. Network and node failures are inevitable and, for some applications, careful control over how \ldots{}", acknowledgement = ack-nhfb, articleno = "97", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Lahav:2021:MWM, author = "Ori Lahav and Egor Namakonov and Jonas Oberhauser and Anton Podkopaev and Viktor Vafeiadis", title = "Making weak memory models fair", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "98:1--98:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485475", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485475", abstract = "Liveness properties, such as termination, of even the simplest shared-memory concurrent programs under sequential consistency typically require some fairness assumptions about the scheduler. Under weak memory models, we observe that the standard notions \ldots{}", acknowledgement = ack-nhfb, articleno = "98", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Yan:2021:PSS, author = "Pengbo Yan and Toby Murray", title = "\pkg{SecRSL}: security separation logic for {C11} release-acquire concurrency", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "99:1--99:26", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485476", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485476", abstract = "We present Security Relaxed Separation Logic (SecRSL), a separation logic for proving information-flow security of C11 programs in the Release-Acquire fragment with relaxed accesses. SecRSL is the first security logic that (1) supports weak-memory \ldots{}", acknowledgement = ack-nhfb, articleno = "99", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Verbruggen:2021:SPE, author = "Gust Verbruggen and Vu Le and Sumit Gulwani", title = "Semantic programming by example with pre-trained models", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "100:1--100:25", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485477", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485477", abstract = "The ability to learn programs from few examples is a powerful technology with disruptive applications in many domains, as it allows users to automate repetitive tasks in an intuitive way. Existing frameworks on inductive synthesis only perform syntactic \ldots{}", acknowledgement = ack-nhfb, articleno = "100", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Goel:2021:PMB, author = "Aviral Goel and Jan Jecmen and Sebasti{\'a}n Krynski and Olivier Fl{\"u}ckiger and Jan Vitek", title = "Promises are made to be broken: migrating {R} to strict semantics", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "101:1--101:20", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485478", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485478", abstract = "Function calls in the R language do not evaluate their arguments, these are passed to the callee as suspended computations and evaluated if needed. After 25 years of experience with the language, there are very few cases where programmers leverage \ldots{}", acknowledgement = ack-nhfb, articleno = "101", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Karachalias:2021:ECA, author = "Georgios Karachalias and Filip Koprivec and Matija Pretnar and Tom Schrijvers", title = "Efficient compilation of algebraic effect handlers", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "102:1--102:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485479", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485479", abstract = "The popularity of algebraic effect handlers as a programming language feature for user-defined computational effects is steadily growing. Yet, even though efficient runtime representations have already been studied, most handler-based programs are still \ldots{}", acknowledgement = ack-nhfb, articleno = "102", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Popescu:2021:SSA, author = "Natalie Popescu and Ziyang Xu and Sotiris Apostolakis and David I. August and Amit Levy", title = "Safer at any speed: automatic context-aware safety enhancement for {Rust}", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "103:1--103:23", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485480", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485480", abstract = "Type-safe languages improve application safety by eliminating whole classes of vulnerabilities-such as buffer overflows-by construction. However, this safety sometimes comes with a performance cost. As a result, many modern type-safe languages provide \ldots{}", acknowledgement = ack-nhfb, articleno = "103", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Astorga:2021:SCC, author = "Angello Astorga and Shambwaditya Saha and Ahmad Dinkins and Felicia Wang and P. Madhusudan and Tao Xie", title = "Synthesizing contracts correct modulo a test generator", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "104:1--104:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485481", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485481", abstract = "We present an approach to learn contracts for object-oriented programs where guarantees of correctness of the contracts are made with respect to a test generator. Our contract synthesis approach is based on a novel notion of tight contracts and an \ldots{}", acknowledgement = ack-nhfb, articleno = "104", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Yamaguchi:2021:PSS, author = "Masaomi Yamaguchi and Kazutaka Matsuda and Cristina David and Meng Wang", title = "\pkg{Synbit}: synthesizing bidirectional programs using unidirectional sketches", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "105:1--105:31", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485482", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485482", abstract = "We propose a technique for synthesizing bidirectional programs from the corresponding unidirectional code plus a few input/output examples. The core ideas are: (1) constructing a sketch using the given unidirectional program as a specification, and (2) \ldots{}", acknowledgement = ack-nhfb, articleno = "105", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Kazerounian:2021:PSS, author = "Milod Kazerounian and Jeffrey S. Foster and Bonan Min", title = "\pkg{SimTyper}: sound type inference for {Ruby} using type equality prediction", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "106:1--106:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485483", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485483", abstract = "Many researchers have explored type inference for dynamic languages. However, traditional type inference computes most general types which, for complex type systems-which are often needed to type dynamic languages-can be verbose, complex, and difficult \ldots{}", acknowledgement = ack-nhfb, articleno = "106", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{DePorre:2021:PEB, author = "Kevin {De Porre} and Carla Ferreira and Nuno Pregui{\c{c}}a and Elisa {Gonzalez Boix}", title = "\pkg{ECROs}: building global scale systems from sequential code", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "107:1--107:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485484", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485484", abstract = "To ease the development of geo-distributed applications, replicated data types (RDTs) offer a familiar programming interface while ensuring state convergence, low latency, and high availability. However, RDTs are still designed exclusively by experts \ldots{}", acknowledgement = ack-nhfb, articleno = "107", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Fu:2021:LDL, author = "Weili Fu and Fabian Krause and Peter Thiemann", title = "Label dependent lambda calculus and gradual typing", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "108:1--108:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485485", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485485", abstract = "Dependently-typed programming languages are gaining importance, because they can guarantee a wide range of properties at compile time. Their use in practice is often hampered because programmers have to provide very precise types. Gradual typing is a \ldots{}", acknowledgement = ack-nhfb, articleno = "108", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Anderson:2021:EAS, author = "Luke Anderson and Andrew Adams and Karima Ma and Tzu-Mao Li and Tian Jin and Jonathan Ragan-Kelley", title = "Efficient automatic scheduling of imaging and vision pipelines for the {GPU}", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "109:1--109:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485486", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485486", abstract = "We present a new algorithm to quickly generate high-performance GPU implementations of complex imaging and vision pipelines, directly from high-level Halide algorithm code. It is fully automatic, requiring no schedule templates or hand-optimized \ldots{}", acknowledgement = ack-nhfb, articleno = "109", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Madsen:2021:RNT, author = "Magnus Madsen and Jaco van de Pol", title = "Relational nullable types with {Boolean} unification", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "110:1--110:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485487", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485487", abstract = "We present a simple, practical, and expressive relational nullable type system. A relational nullable type system captures whether an expression may evaluate to null based on its type, but also based on the type of other related expressions. The type \ldots{}", acknowledgement = ack-nhfb, articleno = "110", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Phipps-Costin:2021:SBG, author = "Luna Phipps-Costin and Carolyn Jane Anderson and Michael Greenberg and Arjun Guha", title = "Solver-based gradual type migration", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "111:1--111:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485488", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485488", abstract = "Gradually typed languages allow programmers to mix statically and dynamically typed code, enabling them to incrementally reap the benefits of static typing as they add type annotations to their code. However, this type migration process is typically a \ldots{}", acknowledgement = ack-nhfb, articleno = "111", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zhang:2021:UST, author = "Guoqiang Zhang and Yuanchao Xu and Xipeng Shen and Isil Dillig", title = "{UDF} to {SQL} translation through compositional lazy inductive synthesis", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "112:1--112:26", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485489", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485489", abstract = "Many data processing systems allow SQL queries that call user-defined functions (UDFs) written in conventional programming languages. While such SQL extensions provide convenience and flexibility to users, queries involving UDFs are not as efficient as \ldots{}", acknowledgement = ack-nhfb, articleno = "112", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Patel:2021:VCM, author = "Nisarg Patel and Siddharth Krishna and Dennis Shasha and Thomas Wies", title = "Verifying concurrent multicopy search structures", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "113:1--113:32", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485490", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485490", abstract = "Multicopy search structures such as log-structured merge (LSM) trees are optimized for high insert/update/delete (collectively known as upsert) performance. In such data structures, an upsert on key k, which adds ( k, v ) where v can be a value or a \ldots{}", acknowledgement = ack-nhfb, articleno = "113", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Paraskevopoulou:2021:CCC, author = "Zoe Paraskevopoulou and Anvay Grover", title = "Compiling with continuations, correctly", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "114:1--114:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485491", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485491", abstract = "In this paper we present a novel simulation relation for proving correctness of program transformations that combines syntactic simulations and logical relations. In particular, we establish a new kind of simulation diagram that uses a small-step or big-. \ldots{}", acknowledgement = ack-nhfb, articleno = "114", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Atkinson:2021:SBM, author = "Eric Atkinson and Guillaume Baudart and Louis Mandel and Charles Yuan and Michael Carbin", title = "Statically bounded-memory delayed sampling for probabilistic streams", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "115:1--115:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485492", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485492", abstract = "Probabilistic programming languages aid developers performing Bayesian inference. These languages provide programming constructs and tools for probabilistic modeling and automated inference. Prior work introduced a probabilistic programming language, \ldots{}", acknowledgement = ack-nhfb, articleno = "115", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zhou:2021:DDA, author = "Zhe Zhou and Robert Dickerson and Benjamin Delaware and Suresh Jagannathan", title = "Data-driven abductive inference of library specifications", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "116:1--116:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485493", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485493", abstract = "Programmers often leverage data structure libraries that provide useful and reusable abstractions. Modular verification of programs that make use of these libraries naturally rely on specifications that capture important properties about how the library \ldots{}", acknowledgement = ack-nhfb, articleno = "116", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Herklotz:2021:FVH, author = "Yann Herklotz and James D. Pollard and Nadesh Ramanathan and John Wickerson", title = "Formal verification of high-level synthesis", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "117:1--117:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485494", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485494", abstract = "High-level synthesis (HLS), which refers to the automatic compilation of software into hardware, is rapidly gaining popularity. In a world increasingly reliant on application-specific hardware accelerators, HLS promises hardware designs of comparable \ldots{}", acknowledgement = ack-nhfb, articleno = "117", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Yao:2021:PAE, author = "Peisen Yao and Qingkai Shi and Heqing Huang and Charles Zhang", title = "Program analysis via efficient symbolic abstraction", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "118:1--118:32", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485495", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485495", abstract = "This paper concerns the scalability challenges of symbolic abstraction: given a formula $ \varphi$ in a logic L and an abstract domain A, find a most precise element in the abstract domain that over-approximates the meaning of $\varphi$. Symbolic abstraction is an \ldots{}", acknowledgement = ack-nhfb, articleno = "118", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Nandi:2021:RRI, author = "Chandrakana Nandi and Max Willsey and Amy Zhu and Yisu Remy Wang and Brett Saiki and Adam Anderson and Adriana Schulz and Dan Grossman and Zachary Tatlock", title = "Rewrite rule inference using equality saturation", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "119:1--119:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485496", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485496", abstract = "Many compilers, synthesizers, and theorem provers rely on rewrite rules to simplify expressions or prove equivalences. Developing rewrite rules can be difficult: rules may be subtly incorrect, profitable rules are easy to miss, and rulesets must be \ldots{}", acknowledgement = ack-nhfb, articleno = "119", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Iorga:2021:SSM, author = "Dan Iorga and Alastair F. Donaldson and Tyler Sorensen and John Wickerson", title = "The semantics of shared memory in {Intel CPU\slash FPGA} systems", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "120:1--120:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485497", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485497", abstract = "Heterogeneous CPU/FPGA devices, in which a CPU and an FPGA can execute together while sharing memory, are becoming popular in several computing sectors. In this paper, we study the shared-memory semantics of these devices, with a view to providing a \ldots{}", acknowledgement = ack-nhfb, articleno = "120", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Emre:2021:TCS, author = "Mehmet Emre and Ryan Schroeder and Kyle Dewey and Ben Hardekopf", title = "Translating {C} to safer {Rust}", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "121:1--121:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485498", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485498", abstract = "Rust is a relatively new programming language that targets efficient and safe systems-level applications. It includes a sophisticated type system that allows for provable memory- and thread-safety, and is explicitly designed to take the place of unsafe \ldots{}", acknowledgement = ack-nhfb, articleno = "121", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Bartha:2021:OGS, author = "S{\'a}ndor Bartha and James Cheney and Vaishak Belle", title = "One down, 699 to go: or, synthesising compositional desugarings", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "122:1--122:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485499", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485499", abstract = "Programming or scripting languages used in real-world systems are seldom designed with a formal semantics in mind from the outset. Therefore, developing well-founded analysis tools for these systems requires reverse-engineering a formal semantics as a \ldots{}", acknowledgement = ack-nhfb, articleno = "122", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Chaliasos:2021:WTP, author = "Stefanos Chaliasos and Thodoris Sotiropoulos and Georgios-Petros Drosos and Charalambos Mitropoulos and Dimitris Mitropoulos and Diomidis Spinellis", title = "Well-typed programs can go wrong: a study of typing-related bugs in {JVM} compilers", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "123:1--123:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485500", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485500", abstract = "Despite the substantial progress in compiler testing, research endeavors have mainly focused on detecting compiler crashes and subtle miscompilations caused by bugs in the implementation of compiler optimizations. Surprisingly, this growing body of work \ldots{}", acknowledgement = ack-nhfb, articleno = "123", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Viering:2021:MST, author = "Malte Viering and Raymond Hu and Patrick Eugster and Lukasz Ziarek", title = "A multiparty session typing discipline for fault-tolerant event-driven distributed programming", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "124:1--124:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485501", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485501", abstract = "This paper presents a formulation of multiparty session types (MPSTs) for practical fault-tolerant distributed programming. We tackle the challenges faced by session types in the context of distributed systems involving asynchronous and concurrent \ldots{}", acknowledgement = ack-nhfb, articleno = "124", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Goel:2021:WWE, author = "Aviral Goel and Pierre Donat-Bouillud and Filip Krikava and Christoph M. Kirsch and Jan Vitek", title = "What we eval in the shadows: a large-scale study of eval in {R} programs", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "125:1--125:23", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485502", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485502", abstract = "Most dynamic languages allow users to turn text into code using various functions, often named \ldots{}", acknowledgement = ack-nhfb, articleno = "125", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Malewski:2021:GSD, author = "Stefan Malewski and Michael Greenberg and {\'E}ric Tanter", title = "Gradually structured data", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "126:1--126:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485503", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485503", abstract = "Dynamically-typed languages offer easy interaction with ad hoc data such as JSON and S-expressions; statically-typed languages offer powerful tools for working with structured data, notably algebraic datatypes, which are a core feature of typed \ldots{}", acknowledgement = ack-nhfb, articleno = "126", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Muehlboeck:2021:TSN, author = "Fabian Muehlboeck and Ross Tate", title = "Transitioning from structural to nominal code with efficient gradual typing", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "127:1--127:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485504", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485504", abstract = "Gradual typing is a principled means for mixing typed and untyped code. But typed and untyped code often exhibit different programming patterns. There is already substantial research investigating gradually giving types to code exhibiting typical \ldots{}", acknowledgement = ack-nhfb, articleno = "127", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Henry:2021:CSA, author = "Rawn Henry and Olivia Hsu and Rohan Yadav and Stephen Chou and Kunle Olukotun and Saman Amarasinghe and Fredrik Kjolstad", title = "Compilation of sparse array programming models", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "128:1--128:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485505", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485505", abstract = "This paper shows how to compile sparse array programming languages. A sparse array programming language is an array programming language that supports element-wise application, reduction, and broadcasting of arbitrary functions over dense and sparse \ldots{}", acknowledgement = ack-nhfb, articleno = "128", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Brotzman:2021:PSD, author = "Robert Brotzman and Danfeng Zhang and Mahmut Taylan Kandemir and Gang Tan", title = "\pkg{SpecSafe}: detecting cache side channels in a speculative world", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "129:1--129:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485506", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485506", abstract = "The high-profile Spectre attack and its variants have revealed that speculative execution may leave secret-dependent footprints in the cache, allowing an attacker to learn confidential data. However, existing static side-channel detectors either ignore \ldots{}", acknowledgement = ack-nhfb, articleno = "129", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Shen:2021:COD, author = "Xipeng Shen and Guoqiang Zhang and Irene Dea and Samantha Andow and Emilio Arroyo-Fang and Neal Gafter and Johann George and Melissa Grueter and Erik Meijer and Olin Grigsby Shivers and Steffi Stumpos and Alanna Tempest and Christy Warden and Shannon Yang", title = "Coarsening optimization for differentiable programming", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "130:1--130:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485507", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485507", abstract = "This paper presents a novel optimization for differentiable programming named coarsening optimization. It offers a systematic way to synergize symbolic differentiation and algorithmic differentiation (AD). Through it, the granularity of the computations \ldots{}", acknowledgement = ack-nhfb, articleno = "130", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Sorensen:2021:STG, author = "Tyler Sorensen and Lucas F. Salvador and Harmit Raval and Hugues Evrard and John Wickerson and Margaret Martonosi and Alastair F. Donaldson", title = "Specifying and testing {GPU} workgroup progress models", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "131:1--131:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485508", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485508", abstract = "As GPU availability has increased and programming support has matured, a wider variety of applications are being ported to these platforms. Many parallel applications contain fine-grained synchronization idioms; as such, their correct execution depends \ldots{}", acknowledgement = ack-nhfb, articleno = "131", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Biswas:2021:PME, author = "Ranadeep Biswas and Diptanshu Kakwani and Jyothi Vedurada and Constantin Enea and Akash Lal", title = "\pkg{MonkeyDB}: effectively testing correctness under weak isolation levels", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "132:1--132:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485546", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485546", abstract = "Modern applications, such as social networking systems and e-commerce platforms are centered around using large-scale storage systems for storing and retrieving data. In the presence of concurrent accesses, these storage systems trade off isolation for \ldots{}", acknowledgement = ack-nhfb, articleno = "132", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Burckhardt:2021:DFS, author = "Sebastian Burckhardt and Chris Gillum and David Justo and Konstantinos Kallas and Connor McMahon and Christopher S. Meiklejohn", title = "Durable functions: semantics for stateful serverless", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "133:1--133:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485510", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485510", abstract = "Serverless, or Functions-as-a-Service (FaaS), is an increasingly popular paradigm for application development, as it provides implicit elastic scaling and load based billing. However, the weak execution guarantees and intrinsic compute-storage \ldots{}", acknowledgement = ack-nhfb, articleno = "133", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Bavishi:2021:PGP, author = "Rohan Bavishi and Caroline Lemieux and Koushik Sen and Ion Stoica", title = "\pkg{Gauss}: program synthesis by reasoning over graphs", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "134:1--134:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485511", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485511", abstract = "While input-output examples are a natural form of specification for program synthesis engines, they can be imprecise for domains such as table transformations. In this paper, we investigate how extracting readily-available information about the user \ldots{}", acknowledgement = ack-nhfb, articleno = "134", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{He:2021:TSE, author = "Paul He and Eddy Westbrook and Brent Carmer and Chris Phifer and Valentin Robert and Karl Smeltzer and Andrei {\c{S}}tef{\u{a}}nescu and Aaron Tomb and Adam Wick and Matthew Yacavone and Steve Zdancewic", title = "A type system for extracting functional specifications from memory-safe imperative programs", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "135:1--135:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485512", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485512", abstract = "Verifying imperative programs is hard. A key difficulty is that the specification of what an imperative program does is often intertwined with details about pointers and imperative state. Although there are a number of powerful separation logics that \ldots{}", acknowledgement = ack-nhfb, articleno = "135", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Xu:2021:CPC, author = "Haoran Xu and Fredrik Kjolstad", title = "Copy-and-patch compilation: a fast compilation algorithm for high-level languages and bytecode", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "136:1--136:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485513", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485513", abstract = "Fast compilation is important when compilation occurs at runtime, such as query compilers in modern database systems and WebAssembly virtual machines in modern browsers. We present copy-and-patch, an extremely fast compilation technique that also \ldots{}", acknowledgement = ack-nhfb, articleno = "136", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Roth:2021:SSM, author = "Ori Roth", title = "Study of the subtyping machine of nominal subtyping with variance", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "137:1--137:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485514", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485514", abstract = "This is a study of the computing power of the subtyping machine behind Kennedy and Pierce's nominal subtyping with variance. We depict the lattice of fragments of Kennedy and Pierce's type system and characterize their computing power in terms of \ldots{}", acknowledgement = ack-nhfb, articleno = "137", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Ishimwe:2021:PDA, author = "Didier Ishimwe and KimHao Nguyen and ThanhVu Nguyen", title = "\pkg{Dynaplex}: analyzing program complexity using dynamically inferred recurrence relations", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "138:1--138:23", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485515", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485515", abstract = "Being able to detect program runtime complexity is useful in many tasks (e.g., checking expected performance and identifying potential security vulnerabilities). In this work, we introduce a new dynamic approach for inferring the asymptotic complexity \ldots{}", acknowledgement = ack-nhfb, articleno = "138", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Bao:2021:RTT, author = "Yuyan Bao and Guannan Wei and Oliver Bracevac and Yuxuan Jiang and Qiyang He and Tiark Rompf", title = "Reachability types: tracking aliasing and separation in higher-order functional programs", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "139:1--139:32", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485516", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485516", abstract = "Ownership type systems, based on the idea of enforcing unique access paths, have been primarily focused on objects and top-level classes. However, existing models do not as readily reflect the finer aspects of nested lexical scopes, capturing, or \ldots{}", acknowledgement = ack-nhfb, articleno = "139", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zhang:2021:SDS, author = "Jialu Zhang and Ruzica Piskac and Ennan Zhai and Tianyin Xu", title = "Static detection of silent misconfigurations with deep interaction analysis", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "140:1--140:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485517", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485517", abstract = "The behavior of large systems is guided by their configurations: users set parameters in the configuration file to dictate which corresponding part of the system code is executed. However, it is often the case that, although some parameters are set in \ldots{}", acknowledgement = ack-nhfb, articleno = "140", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zhou:2021:INM, author = "Ziqiao Zhou and Michael K. Reiter", title = "Interpretable noninterference measurement and its application to processor designs", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "141:1--141:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485518", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485518", abstract = "Noninterference measurement quantifies the secret information that might leak to an adversary from what the adversary can observe and influence about the computation. Static and high-fidelity noninterference measurement has been difficult to scale to \ldots{}", acknowledgement = ack-nhfb, articleno = "141", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Vu:2021:ROS, author = "Son Tuan Vu and Albert Cohen and Arnaud {De Grandmaison} and Christophe Guillon and Karine Heydemann", title = "Reconciling optimization with secure compilation", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "142:1--142:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485519", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485519", abstract = "Software protections against side-channel and physical attacks are essential to the development of secure applications. Such protections are meaningful at machine code or micro-architectural level, but they typically do not carry observable semantics at \ldots{}", acknowledgement = ack-nhfb, articleno = "142", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Lanzinger:2021:SPC, author = "Florian Lanzinger and Alexander Weigl and Mattias Ulbrich and Werner Dietl", title = "Scalability and precision by combining expressive type systems and deductive verification", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "143:1--143:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485520", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485520", abstract = "Type systems and modern type checkers can be used very successfully to obtain formal correctness guarantees with little specification overhead. However, type systems in practical scenarios have to trade precision for decidability and scalability. Tools \ldots{}", acknowledgement = ack-nhfb, articleno = "143", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Moreira:2021:PVS, author = "Ang{\'e}lica Aparecida Moreira and Guilherme Ottoni and Fernando Magno Quint{\~a}o Pereira", title = "\pkg{VESPA}: static profiling for binary optimization", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "144:1--144:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485521", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485521", abstract = "Over the past few years, there has been a surge in the popularity of binary optimizers such as BOLT, Propeller, Janus and HALO. These tools use dynamic profiling information to make optimization decisions. Although effective, gathering runtime data \ldots{}", acknowledgement = ack-nhfb, articleno = "144", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Wolff:2021:MSV, author = "Fabian Wolff and Aurel B{\'\i}l{\'y} and Christoph Matheja and Peter M{\"u}ller and Alexander J. Summers", title = "Modular specification and verification of closures in {Rust}", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "145:1--145:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485522", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485522", abstract = "Closures are a language feature supported by many mainstream languages, combining the ability to package up references to code blocks with the possibility of capturing state from the environment of the closure's declaration. Closures are powerful, but complicate understanding and formal reasoning, especially when closure invocations may mutate objects reachable from the captured state or from closure arguments. This paper presents a novel technique for the modular specification and verification of closure-manipulating code in Rust. Our technique combines Rust's type system guarantees and novel specification features to enable formal verification of rich functional properties. It encodes higher-order concerns into a first-order logic, which enables automation via SMT solvers. Our technique is implemented as an extension of the deductive verifier Prusti, with which we have successfully verified many common idioms of closure usage.", acknowledgement = ack-nhfb, articleno = "145", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Bram:2021:RSE, author = "Christian Br{\"a}m and Marco Eilers and Peter M{\"u}ller and Robin Sierra and Alexander J. Summers", title = "Rich specifications for {Ethereum} smart contract verification", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "146:1--146:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485523", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485523", abstract = "Smart contracts are programs that execute in blockchains such as Ethereum to manipulate digital assets. Since bugs in smart contracts may lead to substantial financial losses, there is considerable interest in formally proving their correctness. However,. \ldots{}", acknowledgement = ack-nhfb, articleno = "146", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Tan:2021:MPA, author = "Tian Tan and Yue Li and Xiaoxing Ma and Chang Xu and Yannis Smaragdakis", title = "Making pointer analysis more precise by unleashing the power of selective context sensitivity", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "147:1--147:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485524", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485524", abstract = "Traditional context-sensitive pointer analysis is hard to scale for large and complex Java programs. To address this issue, a series of selective context-sensitivity approaches have been proposed and exhibit promising results. In this work, we move one \ldots{}", acknowledgement = ack-nhfb, articleno = "147", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Steele:2021:PLB, author = "Guy L. {Steele Jr.} and Sebastiano Vigna", title = "\pkg{LXM}: better splittable pseudorandom number generators (and almost as fast)", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "148:1--148:31", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485525", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib; http://www.math.utah.edu/pub/tex/bib/prng.bib", URL = "https://dl.acm.org/doi/10.1145/3485525", abstract = "In 2014, Steele, Lea, and Flood presented SplitMix, an object-oriented pseudorandom number generator (prng) that is quite fast (9 64-bit arithmetic/logical operations per 64 bits generated) and also splittable. A conventional prng object provides a generate method that returns one pseudorandom value and updates the state of the prng; a splittable prng object also has a second operation, split, that replaces the original prng object with two (seemingly) independent prng objects, by creating and returning a new such object and updating the state of the original object. Splittable prng objects make it easy to organize the use of pseudorandom numbers in multithreaded programs structured using fork-join parallelism. This overall strategy still appears to be sound, but the specific arithmetic calculation used for generate in the SplitMix algorithm has some detectable weaknesses, and the period of any one generator is limited to 264.\par Here we present the LXM family of prng algorithms. The idea is an old one: combine the outputs of two independent prng algorithms, then (optionally) feed the result to a mixing function. An LXM algorithm uses a linear congruential subgenerator and an F2-linear subgenerator; the examples studied in this paper use a linear congruential generator (LCG) of period 216, 232, 264, or 2128 with one of the multipliers recommended by L'Ecuyer or by Steele and Vigna, and an F2-linear xor-based generator (XBG) of the xoshiro family or xoroshiro family as described by Blackman and Vigna. For mixing functions we study the MurmurHash3 finalizer function; variants by David Stafford, Doug Lea, and degski; and the null (identity) mixing function.\par Like SplitMix, LXM provides both a generate operation and a split operation. Also like SplitMix, LXM requires no locking or other synchronization (other than the usual memory fence after instance initialization), and is suitable for use with simd instruction sets because it has no branches or loops.\par We analyze the period and equidistribution properties of LXM generators, and present the results of thorough testing of specific members of this family, using the TestU01 and PractRand test suites, not only on single instances of the algorithm but also for collections of instances, used in parallel, ranging in size from 2 to 224. Single instances of LXM that include a strong mixing function appear to have no major weaknesses, and LXM is significantly more robust than SplitMix against accidental correlation in a multithreaded setting. We believe that LXM, like SplitMix, is suitable for ``everyday'' scientific and machine-learning applications (but not cryptographic applications), especially when concurrent threads or distributed processes are involved.", acknowledgement = ack-nhfb, articleno = "148", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Cronburg:2021:PPT, author = "Karl Cronburg and Samuel Z. Guyer", title = "\pkg{Permchecker}: a toolchain for debugging memory managers with typestate", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "149:1--149:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485526", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485526", abstract = "Dynamic memory managers are a crucial component of almost every modern software system. In addition to implementing efficient allocation and reclamation, memory managers provide the essential abstraction of memory as distinct objects, which underpins \ldots{}", acknowledgement = ack-nhfb, articleno = "149", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Pelenitsyn:2021:TSJ, author = "Artem Pelenitsyn and Julia Belyakova and Benjamin Chung and Ross Tate and Jan Vitek", title = "Type stability in {Julia}: avoiding performance pathologies in {JIT} compilation", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "150:1--150:26", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485527", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485527", abstract = "As a scientific programming language, Julia strives for performance but also provides high-level productivity features. To avoid performance pathologies, Julia users are expected to adhere to a coding discipline that enables so-called type stability. \ldots{}", acknowledgement = ack-nhfb, articleno = "150", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Jia:2021:DBP, author = "Xiaodong Jia and Ashish Kumar and Gang Tan", title = "A derivative-based parser generator for visibly pushdown grammars", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "151:1--151:24", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485528", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485528", abstract = "In this paper, we present a derivative-based, functional recognizer and parser generator for visibly pushdown grammars. The generated parser accepts ambiguous grammars and produces a parse forest containing all valid parse trees for an input string in \ldots{}", acknowledgement = ack-nhfb, articleno = "151", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Park:2021:GTA, author = "Jiwon Park and Dominik Winterer and Chengyu Zhang and Zhendong Su", title = "Generative type-aware mutation for testing {SMT} solvers", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "152:1--152:19", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485529", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485529", abstract = "We propose Generative Type-Aware Mutation, an effective approach for testing SMT solvers. The key idea is to realize generation through the mutation of expressions rooted with parametric operators from the SMT-LIB specification. Generative Type-Aware \ldots{}", acknowledgement = ack-nhfb, articleno = "152", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Ferdowsifard:2021:PLI, author = "Kasra Ferdowsifard and Shraddha Barke and Hila Peleg and Sorin Lerner and Nadia Polikarpova", title = "\pkg{LooPy}: interactive program synthesis with control structures", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "153:1--153:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485530", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485530", abstract = "One vision for program synthesis, and specifically for programming by example (PBE), is an interactive programmer's assistant, integrated into the development environment. To make program synthesis practical for interactive use, prior work on Small-Step \ldots{}", acknowledgement = ack-nhfb, articleno = "153", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Brown:2021:FUM, author = "Michael D. Brown and Matthew Pruett and Robert Bigelow and Girish Mururu and Santosh Pande", title = "Not so fast: understanding and mitigating negative impacts of compiler optimizations on code reuse gadget sets", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "154:1--154:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485531", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485531", abstract = "Despite extensive testing and correctness certification of their functional semantics, a number of compiler optimizations have been shown to violate security guarantees implemented in source code. While prior work has shed light on how such \ldots{}", acknowledgement = ack-nhfb, articleno = "154", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Lubin:2021:HST, author = "Justin Lubin and Sarah E. Chasins", title = "How statically-typed functional programmers write code", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "155:1--155:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485532", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485532", abstract = "How working statically-typed functional programmers write code is largely understudied. And yet, a better understanding of developer practices could pave the way for the design of more useful and usable tooling, more ergonomic languages, and more \ldots{}", acknowledgement = ack-nhfb, articleno = "155", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Su:2021:FAF, author = "Ting Su and Yichen Yan and Jue Wang and Jingling Sun and Yiheng Xiong and Geguang Pu and Ke Wang and Zhendong Su", title = "Fully automated functional fuzzing of {Android} apps for detecting non-crashing logic bugs", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "156:1--156:31", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485533", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485533", abstract = "Android apps are GUI-based event-driven software and have become ubiquitous in recent years. Obviously, functional correctness is critical for an app's success. However, in addition to crash bugs, non-crashing functional bugs (in short as \ldots{})", acknowledgement = ack-nhfb, articleno = "156", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Jaber:2021:PQM, author = "Nouraldin Jaber and Christopher Wagner and Swen Jacobs and Milind Kulkarni and Roopsha Samanta", title = "\pkg{QuickSilver}: modeling and parameterized verification for distributed agreement-based systems", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "157:1--157:31", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485534", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485534", abstract = "The last decade has sparked several valiant efforts in deductive verification of distributed agreement protocols such as consensus and leader election. Oddly, there have been far fewer verification efforts that go beyond the core protocols and target \ldots{}", acknowledgement = ack-nhfb, articleno = "157", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Rahmani:2021:MMP, author = "Kia Rahmani and Mohammad Raza and Sumit Gulwani and Vu Le and Daniel Morris and Arjun Radhakrishna and Gustavo Soares and Ashish Tiwari", title = "Multi-modal program inference: a marriage of pre-trained language models and component-based synthesis", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "158:1--158:29", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485535", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485535", abstract = "Multi-modal program synthesis refers to the task of synthesizing programs (code) from their specification given in different forms, such as a combination of natural language and examples. Examples provide a precise but incomplete specification, and \ldots{}", acknowledgement = ack-nhfb, articleno = "158", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Barbar:2021:CPS, author = "Mohamad Barbar and Yulei Sui", title = "Compacting points-to sets through object clustering", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "159:1--159:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485547", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485547", abstract = "Inclusion-based set constraint solving is the most popular technique for whole-program points-to analysis whereby an analysis is typically formulated as repeatedly resolving constraints between points-to sets of program variables. The set union \ldots{}", acknowledgement = ack-nhfb, articleno = "159", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Gokhale:2021:AMS, author = "Satyajit Gokhale and Alexi Turcotte and Frank Tip", title = "Automatic migration from synchronous to asynchronous {JavaScript APIs}", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "160:1--160:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485537", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485537", abstract = "The JavaScript ecosystem provides equivalent synchronous and asynchronous Application Programming Interfaces (APIs) for many commonly used I/O operations. Synchronous APIs involve straightforward sequential control flow that makes them easy to use and \ldots{}", acknowledgement = ack-nhfb, articleno = "160", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Gao:2021:PAO, author = "Xiang Gao and Arjun Radhakrishna and Gustavo Soares and Ridwan Shariffdeen and Sumit Gulwani and Abhik Roychoudhury", title = "\pkg{APIfix}: output-oriented program synthesis for combating breaking changes in libraries", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "161:1--161:27", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485538", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485538", abstract = "Use of third-party libraries is extremely common in application software. The libraries evolve to accommodate new features or mitigate security vulnerabilities, thereby breaking the Application Programming Interface(API) used by the software. Such \ldots{}", acknowledgement = ack-nhfb, articleno = "161", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Pitchanathan:2021:PFF, author = "Arjun Pitchanathan and Christian Ulmann and Michel Weber and Torsten Hoefler and Tobias Grosser", title = "\pkg{FPL}: fast {Presburger} arithmetic through transprecision", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "162:1--162:26", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485539", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485539", abstract = "Presburger arithmetic provides the mathematical core for the polyhedral compilation techniques that drive analytical cache models, loop optimization for ML and HPC, formal verification, and even hardware design. Polyhedral compilation is widely regarded \ldots{}", acknowledgement = ack-nhfb, articleno = "162", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Smaragdakis:2021:SVF, author = "Yannis Smaragdakis and Neville Grech and Sifis Lagouvardos and Konstantinos Triantafyllou and Ilias Tsatiris", title = "Symbolic value-flow static analysis: deep, precise, complete modeling of {Ethereum} smart contracts", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "163:1--163:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485540", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485540", abstract = "We present a static analysis approach that combines concrete values and symbolic expressions. This symbolic value-flow (``symvalic'') analysis models program behavior with high precision, e.g., full path sensitivity. To achieve deep modeling of program \ldots{}", acknowledgement = ack-nhfb, articleno = "163", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Bui:2021:RET, author = "Truc Lam Bui and Krishnendu Chatterjee and Tushar Gautam and Andreas Pavlogiannis and Viktor Toman", title = "The reads-from equivalence for the {TSO} and {PSO} memory models", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "164:1--164:30", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485541", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485541", abstract = "The verification of concurrent programs remains an open challenge due to the non-determinism in inter-process communication. One recurring algorithmic problem in this challenge is the consistency verification of concurrent executions. In particular, \ldots{}", acknowledgement = ack-nhfb, articleno = "164", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Dura:2021:PJA, author = "Alexandru Dura and Christoph Reichenbach and Emma S{\"o}derberg", title = "\pkg{JavaDL}: automatically incrementalizing {Java} bug pattern detection", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "165:1--165:31", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485542", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", 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/3485542", abstract = "Static checker frameworks support software developers by automatically discovering bugs that fit general-purpose bug patterns. These frameworks ship with hundreds of detectors for such patterns and allow developers to add custom detectors for their own \ldots{}", acknowledgement = ack-nhfb, articleno = "165", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{AlAwar:2021:PEM, author = "Nader {Al Awar} and Kush Jain and Christopher J. Rossbach and Milos Gligoric", title = "Programming and execution models for parallel bounded exhaustive testing", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "166:1--166:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485543", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485543", abstract = "Bounded-exhaustive testing (BET), which exercises a program under test for all inputs up to some bounds, is an effective method for detecting software bugs. Systematic property-based testing is a BET approach where developers write test generation \ldots{}", acknowledgement = ack-nhfb, articleno = "166", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Ji:2021:GST, author = "Ruyi Ji and Jingtao Xia and Yingfei Xiong and Zhenjiang Hu", title = "Generalizable synthesis through unification", journal = j-PACMPL, volume = "5", number = "OOPSLA", pages = "167:1--167:28", month = oct, year = "2021", CODEN = "????", DOI = "https://doi.org/10.1145/3485544", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Wed Mar 2 07:00:43 MST 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3485544", abstract = "The generalizability of PBE solvers is the key to the empirical synthesis performance. Despite the importance of generalizability, related studies on PBE solvers are still limited. In theory, few existing solvers provide theoretical guarantees on \ldots{}", acknowledgement = ack-nhfb, articleno = "167", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Batz:2022:WPP, author = "Kevin Batz and Adrian Gallus and Benjamin Lucien Kaminski and Joost-Pieter Katoen and Tobias Winkler", title = "Weighted programming: a programming paradigm for specifying mathematical models", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "66:1--66:30", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527310", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527310", abstract = "We study weighted programming, a programming paradigm for specifying mathematical models. More specifically, the weighted programs we investigate are like usual imperative programs with two additional features: (1) nondeterministic branching and (2) \ldots{}", acknowledgement = ack-nhfb, articleno = "66", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Ferles:2022:SFG, author = "Kostas Ferles and Benjamin Sepanski and Rahul Krishnan and James Bornholt and Isil Dillig", title = "Synthesizing fine-grained synchronization protocols for implicit monitors", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "67:1--67:26", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527311", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527311", abstract = "A monitor is a widely-used concurrent programming abstraction that encapsulates all shared state between threads. Monitors can be classified as being either implicit or explicit depending on the primitives they provide. Implicit monitors are much easier \ldots{}", acknowledgement = ack-nhfb, articleno = "67", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Wang:2022:CGC, author = "Chengpeng Wang and Peisen Yao and Wensheng Tang and Qingkai Shi and Charles Zhang", title = "Complexity-guided container replacement synthesis", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "68:1--68:31", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527312", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527312", abstract = "Containers, such as lists and maps, are fundamental data structures in modern programming languages. However, improper choice of container types may lead to significant performance issues. This paper presents Cres, an approach that automatically \ldots{}", acknowledgement = ack-nhfb, articleno = "68", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Li:2022:LTL, author = "Jialin Li and Andrea Lattuada and Yi Zhou and Jonathan Cameron and Jon Howell and Bryan Parno and Chris Hawblitzel", title = "Linear types for large-scale systems verification", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "69:1--69:28", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527313", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527313", abstract = "Reasoning about memory aliasing and mutation in software verification is a hard problem. This is especially true for systems using SMT-based automated theorem provers. Memory reasoning in SMT verification typically requires a nontrivial amount of manual \ldots{}", acknowledgement = ack-nhfb, articleno = "69", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Labrada:2022:PSG, author = "Elizabeth Labrada and Mat{\'\i}as Toro and {\'E}ric Tanter and Dominique Devriese", title = "Plausible sealing for gradual parametricity", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "70:1--70:28", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527314", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527314", abstract = "Graduality and parametricity have proven to be extremely challenging notions to bring together. Intuitively, enforcing parametricity gradually requires possibly sealing values in order to detect violations of uniform behavior. Toro et al. (2019) argue \ldots{}", acknowledgement = ack-nhfb, articleno = "70", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Mariano:2022:ATI, author = "Benjamin Mariano and Yanju Chen and Yu Feng and Greg Durrett and Isil Dillig", title = "Automated transpilation of imperative to functional code using neural-guided program synthesis", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "71:1--71:27", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527315", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527315", abstract = "While many mainstream languages such as Java, Python, and C\# increasingly incorporate functional APIs to simplify programming and improve parallelization/performance, there are no effective techniques that can be used to automatically translate existing \ldots{}", acknowledgement = ack-nhfb, articleno = "71", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Yan:2022:ILQ, author = "Peng Yan and Hanru Jiang and Nengkun Yu", title = "On incorrectness logic for Quantum programs", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "72:1--72:28", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527316", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527316", abstract = "Bug-catching is important for developing quantum programs. Motivated by the incorrectness logic for classical programs, we propose an incorrectness logic towards a logical foundation for static bug-catching in quantum programming. The validity of \ldots{}", acknowledgement = ack-nhfb, articleno = "72", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Liu:2022:CGT, author = "Jiawei Liu and Yuxiang Wei and Sen Yang and Yinlin Deng and Lingming Zhang", title = "Coverage-guided tensor compiler fuzzing with joint {IR}-pass mutation", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "73:1--73:26", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527317", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527317", abstract = "In the past decade, Deep Learning (DL) systems have been widely deployed in various application domains to facilitate our daily life, e.g., natural language processing, healthcare, activity recognition, and autonomous driving. Meanwhile, it is extremely \ldots{}", acknowledgement = ack-nhfb, articleno = "73", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Georges:2022:TCE, author = "A{\"\i}na Linn Georges and Alix Trieu and Lars Birkedal", title = "Le temps des c{\'e}rises: efficient temporal stack safety on capability machines using directed capabilities", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "74:1--74:30", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527318", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527318", abstract = "Capability machines are a type of CPUs that support fine-grained privilege separation using capabilities, machine words that include forms of authority. Formal models of capability machines and associated calling conventions have so far focused on \ldots{}", acknowledgement = ack-nhfb, articleno = "74", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Ugare:2022:PTF, author = "Shubham Ugare and Gagandeep Singh and Sasa Misailovic", title = "Proof transfer for fast certification of multiple approximate neural networks", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "75:1--75:29", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527319", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527319", abstract = "Developers of machine learning applications often apply post-training neural network optimizations, such as quantization and pruning, that approximate a neural network to speed up inference and reduce energy consumption, while maintaining high accuracy \ldots{}", acknowledgement = ack-nhfb, articleno = "75", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Brachthauser:2022:ECB, author = "Jonathan Immanuel Brachth{\"a}user and Philipp Schuster and Edward Lee and Aleksander Boruch-Gruszecki", title = "Effects, capabilities, and boxes: from scope-based reasoning to type-based reasoning and back", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "76:1--76:30", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527320", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527320", abstract = "Reasoning about the use of external resources is an important aspect of many practical applications. Effect systems enable tracking such information in types, but at the cost of complicating signatures of common functions. Capabilities coupled with \ldots{}", acknowledgement = ack-nhfb, articleno = "76", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Grech:2022:EAD, author = "Neville Grech and Sifis Lagouvardos and Ilias Tsatiris and Yannis Smaragdakis", title = "{Elipmoc}: advanced decompilation of {Ethereum} smart contracts", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "77:1--77:27", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527321", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", 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/3527321", abstract = "Smart contracts on the Ethereum blockchain greatly benefit from cutting-edge analysis techniques and pose significant challenges. A primary challenge is the extremely low-level representation of deployed contracts. We present Elipmoc, a decompiler for \ldots{}", acknowledgement = ack-nhfb, articleno = "77", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Machiry:2022:CCC, author = "Aravind Machiry and John Kastner and Matt McCutchen and Aaron Eline and Kyle Headley and Michael Hicks", title = "{C} to checked {C} by {3C}", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "78:1--78:29", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527322", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527322", abstract = "Owing to the continued use of C (and C++), spatial safety violations (e.g., buffer overflows) still constitute one of today's most dangerous and prevalent security vulnerabilities. To combat these violations, Checked C extends C with bounds-enforced \ldots{}", acknowledgement = ack-nhfb, articleno = "78", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Dyer:2022:ACP, author = "Tristan Dyer and Tim Nelson and Kathi Fisler and Shriram Krishnamurthi", title = "Applying cognitive principles to model-finding output: the positive value of negative information", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "79:1--79:29", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527323", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527323", abstract = "Model-finders, such as SAT/SMT-solvers and Alloy, are used widely both directly and embedded in domain-specific tools. They support both conventional verification and, unlike other verification tools, property-free exploration. To do this effectively, \ldots{}", acknowledgement = ack-nhfb, articleno = "79", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Lesani:2022:CVT, author = "Mohsen Lesani and Li-yao Xia and Anders Kaseorg and Christian J. Bell and Adam Chlipala and Benjamin C. Pierce and Steve Zdancewic", title = "{C4}: verified transactional objects", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "80:1--80:31", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527324", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527324", abstract = "Transactional objects combine the performance of classical concurrent objects with the high-level programmability of transactional memory. However, verifying the correctness of transactional objects is tricky, requiring reasoning simultaneously about \ldots{}", acknowledgement = ack-nhfb, articleno = "80", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Le:2022:FRB, author = "Quang Loc Le and Azalea Raad and Jules Villard and Josh Berdine and Derek Dreyer and Peter W. O'Hearn", title = "Finding real bugs in big programs with incorrectness logic", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "81:1--81:27", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527325", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527325", abstract = "Incorrectness Logic (IL) has recently been advanced as a logical theory for compositionally proving the presence of bugs-dual to Hoare Logic, which is used to compositionally prove their absence. Though IL was motivated in large part by the aim of \ldots{}", acknowledgement = ack-nhfb, articleno = "81", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Jacobs:2022:PSM, author = "Koen Jacobs and Dominique Devriese and Amin Timany", title = "Purity of an {ST} monad: full abstraction by semantically typed back-translation", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "82:1--82:27", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527326", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527326", abstract = "In 1995, Launchbury and Peyton Jones extended Haskell with an ST monad that allows the programmer to use higher-order mutable state. They informally argued that these state computations were safely encapsulated, and as such, that the rich reasoning \ldots{}", acknowledgement = ack-nhfb, articleno = "82", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Benzaken:2022:TCS, author = "V{\'e}ronique Benzaken and {\'E}velyne Contejean and Mohammed Houssem Hachmaoui and Chantal Keller and Louis Mandel and Avraham Shinnar and J{\'e}r{\^o}me Sim{\'e}on", title = "Translating canonical {SQL} to imperative code in {Coq}", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "83:1--83:27", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527327", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527327", abstract = "SQL is by far the most widely used and implemented query language. Yet, on some key features, such as correlated queries and NULL value semantics, many implementations diverge or contain bugs. We leverage recent advances in the formalization of SQL and \ldots{}", acknowledgement = ack-nhfb, articleno = "83", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Clement:2022:EET, author = "Basile Cl{\'e}ment and Albert Cohen", title = "End-to-end translation validation for the {Halide} language", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "84:1--84:30", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527328", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527328", abstract = "This paper considers the correctness of domain-specific compilers for tensor programming languages through the study of Halide, a popular representative. It describes a translation validation algorithm for affine Halide specifications, independently of \ldots{}", acknowledgement = ack-nhfb, articleno = "84", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Pelsmaeker:2022:LPS, author = "Daniel A. A. Pelsmaeker and Hendrik van Antwerpen and Casper Bach Poulsen and Eelco Visser", title = "Language-parametric static semantic code completion", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "85:1--85:30", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527329", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527329", abstract = "Code completion is an editor service in IDEs that proposes code fragments for the user to insert at the caret position in their code. Code completion should be sound and complete. It should be sound, such that it only proposes fragments that do not \ldots{}", acknowledgement = ack-nhfb, articleno = "85", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Paltenghi:2022:BQC, author = "Matteo Paltenghi and Michael Pradel", title = "Bugs in Quantum computing platforms: an empirical study", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "86:1--86:27", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527330", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527330", abstract = "The interest in quantum computing is growing, and with it, the importance of software platforms to develop quantum programs. Ensuring the correctness of such platforms is important, and it requires a thorough understanding of the bugs they typically \ldots{}", acknowledgement = ack-nhfb, articleno = "86", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zhang:2022:QSP, author = "Linpeng Zhang and Benjamin Lucien Kaminski", title = "Quantitative strongest post: a calculus for reasoning about the flow of quantitative information", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "87:1--87:29", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527331", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527331", abstract = "We present a novel strongest-postcondition-style calculus for quantitative reasoning about non-deterministic programs with loops. Whereas existing quantitative weakest pre allows reasoning about the value of a quantity after a program terminates on a \ldots{}", acknowledgement = ack-nhfb, articleno = "87", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Liu:2022:SFI, author = "Bozhen Liu and Jeff Huang", title = "{SHARP}: fast incremental context-sensitive pointer analysis for {Java}", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "88:1--88:28", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527332", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", 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/3527332", abstract = "We present SHARP, an incremental context-sensitive pointer analysis algorithm that scales to real-world large complex Java programs and can also be efficiently parallelized. To our knowledge, SHARP is the first algorithm to tackle context-sensitivity in \ldots{}", acknowledgement = ack-nhfb, articleno = "88", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Shaikhha:2022:FCP, author = "Amir Shaikhha and Mathieu Huot and Jaclyn Smith and Dan Olteanu", title = "Functional collection programming with semi-ring dictionaries", journal = j-PACMPL, volume = "6", number = "OOPSLA1", pages = "89:1--89:33", month = apr, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3527333", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:46 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3527333", abstract = "This paper introduces semi-ring dictionaries, a powerful class of compositional and purely functional collections that subsume other collection types such as sets, multisets, arrays, vectors, and matrices. We developed SDQL, a statically typed language \ldots{}", acknowledgement = ack-nhfb, articleno = "89", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Jacobs:2022:CGM, author = "Jules Jacobs and Stephanie Balzer and Robbert Krebbers", title = "Connectivity graphs: a method for proving deadlock freedom based on separation logic", journal = j-PACMPL, volume = "6", number = "POPL", pages = "1:1--1:33", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498662", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498662", abstract = "We introduce the notion of a connectivity graph -an abstract representation of the topology of concurrently interacting entities, which allows us to encapsulate generic principles of reasoning about deadlock freedom. Connectivity graphs are parametric in \ldots{}", acknowledgement = ack-nhfb, articleno = "1", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Heunen:2022:QIE, author = "Chris Heunen and Robin Kaarsgaard", title = "Quantum information effects", journal = j-PACMPL, volume = "6", number = "POPL", pages = "2:1--2:27", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498663", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498663", abstract = "We study the two dual quantum information effects to manipulate the amount of information in quantum computation: hiding and allocation. The resulting type-and-effect system is fully expressive for irreversible quantum computing, including measurement. \ldots{}", acknowledgement = ack-nhfb, articleno = "2", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Lim:2022:OPA, author = "Jay P. Lim and Santosh Nagarakatte", title = "One polynomial approximation to produce correctly rounded results of an elementary function for multiple representations and rounding modes", journal = j-PACMPL, volume = "6", number = "POPL", pages = "3:1--3:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498664", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/elefunt.bib; 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/10.1145/3498664", abstract = "Mainstream math libraries for floating point (FP) do not produce correctly rounded results for all inputs. In contrast, CR-LIBM and RLIBM provide correctly rounded implementations for a specific FP representation with one rounding mode. Using such libraries for a representation with a new rounding mode or with different precision will result in wrong results due to double rounding. This paper proposes a novel method to generate a single polynomial approximation that produces correctly rounded results for all inputs for multiple rounding modes and multiple precision configurations. To generate a correctly rounded library for n-bits, our key idea is to generate a polynomial approximation for a representation with n+2-bits using the round-to-odd mode. We prove that the resulting polynomial approximation will produce correctly rounded results for all five rounding modes in the standard and for multiple representations with k-bits such that $ |E| + 1 < k \leq n $, where $ |E| $ is the number of exponent bits in the representation. Similar to our prior work in the RLIBM project, we approximate the correctly rounded result when we generate the library with n+2-bits using the round-to-odd mode. We also generate polynomial approximations by structuring it as a linear programming problem but propose enhancements to polynomial generation to handle the round-to-odd mode. Our prototype is the first 32-bit float library that produces correctly rounded results with all rounding modes in the IEEE standard for all inputs with a single polynomial approximation. It also produces correctly rounded results for any FP configuration ranging from 10-bits to 32-bits while also being faster than mainstream libraries.", acknowledgement = ack-nhfb, articleno = "3", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", keywords = "correct rounding; elementary functions", } @Article{Tan:2022:SRT, author = "Bryan Tan and Benjamin Mariano and Shuvendu K. Lahiri and Isil Dillig and Yu Feng", title = "{SolType}: refinement types for arithmetic overflow in {Solidity}", journal = j-PACMPL, volume = "6", number = "POPL", pages = "4:1--4:29", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498665", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", 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/10.1145/3498665", abstract = "As smart contracts gain adoption in financial transactions, it becomes increasingly important to ensure that they are free of bugs and security vulnerabilities. Of particular relevance in this context are arithmetic overflow bugs, as integers are often used to represent financial assets like account balances. Motivated by this observation, this paper presents SolType, a refinement type system for Solidity that can be used to prevent arithmetic over- and under-flows in smart contracts. SolType allows developers to add refinement type annotations and uses them to prove that arithmetic operations do not lead to over- and under-flows. SolType incorporates a rich vocabulary of refinement terms that allow expressing relationships between integer values and aggregate properties of complex data structures. Furthermore, our implementation, called Solid, incorporates a type inference engine and can automatically infer useful type annotations, including non-trivial contract invariants.\par To evaluate the usefulness of our type system, we use Solid to prove arithmetic safety of a total of 120 smart contracts. When used in its fully automated mode (i.e., using Solid's type inference capabilities), Solid is able to eliminate 86.3\% of redundant runtime checks used to guard against overflows. We also compare Solid against a state-of-the-art arithmetic safety verifier called VeriSmart and show that Solid has a significantly lower false positive rate, while being significantly faster in terms of verification time.", acknowledgement = ack-nhfb, articleno = "4", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Ciccone:2022:FTB, author = "Luca Ciccone and Luca Padovani", title = "Fair termination of binary sessions", journal = j-PACMPL, volume = "6", number = "POPL", pages = "5:1--5:30", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498666", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498666", abstract = "A binary session is a private communication channel that connects two processes, each adhering to a protocol description called session type. In this work, we study the first type system that ensures the fair termination of binary sessions. A session \ldots{}", acknowledgement = ack-nhfb, articleno = "5", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Choudhury:2022:SRP, author = "Vikraman Choudhury and Jacek Karwowski and Amr Sabry", title = "Symmetries in reversible programming: from symmetric rig groupoids to reversible programming languages", journal = j-PACMPL, volume = "6", number = "POPL", pages = "6:1--6:32", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498667", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498667", abstract = "The Pi family of reversible programming languages for boolean circuits is presented as a syntax of combinators witnessing type isomorphisms of algebraic data types. In this paper, we give a denotational semantics for this language, using weak groupoids \ldots{}", acknowledgement = ack-nhfb, articleno = "6", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Perera:2022:LVG, author = "Roly Perera and Minh Nguyen and Tomas Petricek and Meng Wang", title = "Linked visualisations via {Galois} dependencies", journal = j-PACMPL, volume = "6", number = "POPL", pages = "7:1--7:29", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498668", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498668", abstract = "We present new language-based dynamic analysis techniques for linking visualisations and other structured outputs to data in a fine-grained way, allowing users to explore how data attributes and visual or other output elements are related by selecting \ldots{}", acknowledgement = ack-nhfb, articleno = "7", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Kesner:2022:FGC, author = "Delia Kesner", title = "A fine-grained computational interpretation of {Girard}'s intuitionistic proof-nets", journal = j-PACMPL, volume = "6", number = "POPL", pages = "8:1--8:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498669", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498669", abstract = "This paper introduces a functional term calculus, called pn, that captures the essence of the operational semantics of Intuitionistic Linear Logic Proof-Nets with a faithful degree of granularity, both statically and dynamically. On the static side, we \ldots{}", acknowledgement = ack-nhfb, articleno = "8", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Niu:2022:CAL, author = "Yue Niu and Jonathan Sterling and Harrison Grodin and Robert Harper", title = "A cost-aware logical framework", journal = j-PACMPL, volume = "6", number = "POPL", pages = "9:1--9:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498670", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498670", abstract = "We present calf, a cost-aware logical framework for studying quantitative aspects of functional programs. Taking inspiration from recent work that reconstructs traditional aspects of programming languages in terms of a modal account of phase \ldots{}", acknowledgement = ack-nhfb, articleno = "9", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Krogmeier:2022:LFF, author = "Paul Krogmeier and P. Madhusudan", title = "Learning formulas in finite variable logics", journal = j-PACMPL, volume = "6", number = "POPL", pages = "10:1--10:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498671", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498671", abstract = "We consider grammar-restricted exact learning of formulas and terms in finite variable logics. We propose a novel and versatile automata-theoretic technique for solving such problems. We first show results for learning formulas that classify a set of \ldots{}", acknowledgement = ack-nhfb, articleno = "10", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Madiot:2022:SLH, author = "Jean-Marie Madiot and Fran{\c{c}}ois Pottier", title = "A separation logic for heap space under garbage collection", journal = j-PACMPL, volume = "6", number = "POPL", pages = "11:1--11:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498672", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498672", abstract = "We present SL$\diamond$, a Separation Logic that allows controlling the heap space consumption of a program in the presence of dynamic memory allocation and garbage collection. A user of the logic works with space credits, a resource that is consumed when an \ldots{}", acknowledgement = ack-nhfb, articleno = "11", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Kjelstrom:2022:DCI, author = "Adam Husted Kjelstr{\o}m and Andreas Pavlogiannis", title = "The decidability and complexity of interleaved bidirected {Dyck} reachability", journal = j-PACMPL, volume = "6", number = "POPL", pages = "12:1--12:26", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498673", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498673", abstract = "Dyck reachability is the standard formulation of a large domain of static analyses, as it achieves the sweet spot between precision and efficiency, and has thus been studied extensively. Interleaved Dyck reachability \ldots{}", acknowledgement = ack-nhfb, articleno = "12", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Castagna:2022:TCU, author = "Giuseppe Castagna and Micka{\"e}l Laurent and Kim Nguy{\~{\^e}}n and Matthew Lutze", title = "On type-cases, union elimination, and occurrence typing", journal = j-PACMPL, volume = "6", number = "POPL", pages = "13:1--13:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498674", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498674", abstract = "We extend classic union and intersection type systems with a type-case construction and show that the combination of the union elimination rule of the former and the typing rules for type-cases of our extension encompasses occurrence typing. To apply \ldots{}", acknowledgement = ack-nhfb, articleno = "13", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Wang:2022:IUA, author = "Zi Wang and Aws Albarghouthi and Gautam Prakriya and Somesh Jha", title = "Interval universal approximation for neural networks", journal = j-PACMPL, volume = "6", number = "POPL", pages = "14:1--14:29", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498675", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498675", abstract = "To verify safety and robustness of neural networks, researchers have successfully applied abstract interpretation, primarily using the interval abstract domain. In this paper, we study the theoretical power and limits of the interval domain for neural-\ldots{}", acknowledgement = ack-nhfb, articleno = "14", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Feldman:2022:PDR, author = "Yotam M. Y. Feldman and Mooly Sagiv and Sharon Shoham and James R. Wilcox", title = "Property-directed reachability as abstract interpretation in the monotone theory", journal = j-PACMPL, volume = "6", number = "POPL", pages = "15:1--15:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498676", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498676", abstract = "Inferring inductive invariants is one of the main challenges of formal verification. The theory of abstract interpretation provides a rich framework to devise invariant inference algorithms. One of the latest breakthroughs in invariant inference is \ldots{}", acknowledgement = ack-nhfb, articleno = "15", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zhang:2022:RAR, author = "Yizhou Zhang and Nada Amin", title = "Reasoning about ``reasoning about reasoning'': semantics and contextual equivalence for probabilistic programs with nested queries and recursion", journal = j-PACMPL, volume = "6", number = "POPL", pages = "16:1--16:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498677", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498677", abstract = "Metareasoning can be achieved in probabilistic programming languages (PPLs) using agent models that recursively nest inference queries inside inference queries. However, the semantics of this powerful, reflection-like language feature has defied an \ldots{}", acknowledgement = ack-nhfb, articleno = "16", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Baumann:2022:CBV, author = "Pascal Baumann and Rupak Majumdar and Ramanathan S. Thinniyam and Georg Zetzsche", title = "Context-bounded verification of thread pools", journal = j-PACMPL, volume = "6", number = "POPL", pages = "17:1--17:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498678", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498678", abstract = "Thread pooling is a common programming idiom in which a fixed set of worker threads are maintained to execute tasks concurrently. The workers repeatedly pick tasks and execute them to completion. Each task is sequential, with possibly recursive code, \ldots{}", acknowledgement = ack-nhfb, articleno = "17", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Sangiorgi:2022:ECT, author = "Davide Sangiorgi", title = "From enhanced coinduction towards enhanced induction", journal = j-PACMPL, volume = "6", number = "POPL", pages = "18:1--18:29", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498679", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498679", abstract = "There exist a rich and well-developed theory of enhancements of the coinduction proof method, widely used on behavioural relations such as bisimilarity. We study how to develop an analogous theory for inductive behaviour relations, i.e., relations \ldots{}", acknowledgement = ack-nhfb, articleno = "18", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{DalLago:2022:EPD, author = "Ugo {Dal Lago} and Francesco Gavazzo", title = "Effectful program distancing", journal = j-PACMPL, volume = "6", number = "POPL", pages = "19:1--19:30", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498680", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498680", abstract = "Semantics is traditionally concerned with program equivalence, in which all pairs of programs which are not equivalent are treated the same, and simply dubbed as incomparable. In recent years, various forms of program metrics have been introduced such \ldots{}", acknowledgement = ack-nhfb, articleno = "19", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Lepigre:2022:VVR, author = "Rodolphe Lepigre and Michael Sammler and Kayvan Memarian and Robbert Krebbers and Derek Dreyer and Peter Sewell", title = "{VIP}: verifying real-world {C} idioms with integer-pointer casts", journal = j-PACMPL, volume = "6", number = "POPL", pages = "20:1--20:32", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498681", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498681", abstract = "Systems code often requires fine-grained control over memory layout and pointers, expressed using low-level ( e.g., bitwise) operations on pointer values. Since these operations go beyond what basic pointer arithmetic in C allows, they are performed with \ldots{}", acknowledgement = ack-nhfb, articleno = "20", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Miltner:2022:BSR, author = "Anders Miltner and Adrian Trejo Nu{\~n}ez and Ana Brendel and Swarat Chaudhuri and Isil Dillig", title = "Bottom-up synthesis of recursive functional programs using angelic execution", journal = j-PACMPL, volume = "6", number = "POPL", pages = "21:1--21:29", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498682", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498682", abstract = "We present a novel bottom-up method for the synthesis of functional recursive programs. While bottom-up synthesis techniques can work better than top-down methods in certain settings, there is no prior technique for synthesizing recursive programs from \ldots{}", acknowledgement = ack-nhfb, articleno = "21", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Raad:2022:EIX, author = "Azalea Raad and Luc Maranget and Viktor Vafeiadis", title = "Extending {Intel-x86} consistency and persistency: formalising the semantics of {Intel-x86} memory types and non-temporal stores", journal = j-PACMPL, volume = "6", number = "POPL", pages = "22:1--22:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498683", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498683", abstract = "Existing semantic formalisations of the Intel-x86 architecture cover only a small fragment of its available features that are relevant for the consistency semantics of multi-threaded programs as well as the persistency semantics of programs interfacing \ldots{}", acknowledgement = ack-nhfb, articleno = "22", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Hirsch:2022:PHO, author = "Andrew K. Hirsch and Deepak Garg", title = "{Pirouette}: higher-order typed functional choreographies", journal = j-PACMPL, volume = "6", number = "POPL", pages = "23:1--23:27", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498684", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498684", abstract = "We present Pirouette, a language for typed higher-order functional choreographic programming. Pirouette offers programmers the ability to write a centralized functional program and compile it via endpoint projection into programs for each node in a \ldots{}", acknowledgement = ack-nhfb, articleno = "23", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Ikebuchi:2022:CDS, author = "Mirai Ikebuchi and Andres Erbsen and Adam Chlipala", title = "Certifying derivation of state machines from coroutines", journal = j-PACMPL, volume = "6", number = "POPL", pages = "24:1--24:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498685", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498685", abstract = "One of the biggest implementation challenges in security-critical network protocols is nested state machines. In practice today, state machines are either implemented manually at a low level, risking bugs easily missed in audits; or are written using \ldots{}", acknowledgement = ack-nhfb, articleno = "24", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Wang:2022:VCC, author = "Yuting Wang and Ling Zhang and Zhong Shao and J{\'e}r{\'e}mie Koenig", title = "Verified compilation of {C} programs with a nominal memory model", journal = j-PACMPL, volume = "6", number = "POPL", pages = "25:1--25:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498686", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498686", abstract = "Memory models play an important role in verified compilation of imperative programming languages. A representative one is the block-based memory model of CompCert---the state-of-the-art verified C compiler. Despite its success, the abstraction over \ldots{}", acknowledgement = ack-nhfb, articleno = "25", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Jia:2022:SVQ, author = "Xiaodong Jia and Andre Kornell and Bert Lindenhovius and Michael Mislove and Vladimir Zamdzhiev", title = "Semantics for variational Quantum programming", journal = j-PACMPL, volume = "6", number = "POPL", pages = "26:1--26:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498687", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498687", abstract = "We consider a programming language that can manipulate both classical and quantum information. Our language is type-safe and designed for variational quantum programming, which is a hybrid classical-quantum computational paradigm. The classical \ldots{}", acknowledgement = ack-nhfb, articleno = "26", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Kolosick:2022:ITN, author = "Matthew Kolosick and Shravan Narayan and Evan Johnson and Conrad Watt and Michael LeMay and Deepak Garg and Ranjit Jhala and Deian Stefan", title = "Isolation without taxation: near-zero-cost transitions for {WebAssembly} and {SFI}", journal = j-PACMPL, volume = "6", number = "POPL", pages = "27:1--27:30", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498688", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498688", abstract = "Software sandboxing or software-based fault isolation (SFI) is a lightweight approach to building secure systems out of untrusted components. Mozilla, for example, uses SFI to harden the Firefox browser by sandboxing third-party libraries, and companies \ldots{}", acknowledgement = ack-nhfb, articleno = "27", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Gaher:2022:SSL, author = "Lennard G{\"a}her and Michael Sammler and Simon Spies and Ralf Jung and Hoang-Hai Dang and Robbert Krebbers and Jeehoon Kang and Derek Dreyer", title = "{Simuliris}: a separation logic framework for verifying concurrent program optimizations", journal = j-PACMPL, volume = "6", number = "POPL", pages = "28:1--28:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498689", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498689", abstract = "Today's compilers employ a variety of non-trivial optimizations to achieve good performance. One key trick compilers use to justify transformations of concurrent programs is to assume that the source program has no data races: if it does, they cause the \ldots{}", acknowledgement = ack-nhfb, articleno = "28", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zhang:2022:ILK, author = "Cheng Zhang and Arthur Azevedo de Amorim and Marco Gaboardi", title = "On incorrectness logic and {Kleene} algebra with top and tests", journal = j-PACMPL, volume = "6", number = "POPL", pages = "29:1--29:30", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498690", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498690", abstract = "Kleene algebra with tests (KAT) is a foundational equational framework for reasoning about programs, which has found applications in program transformations, networking and compiler optimizations, among many other areas. In his seminal work, Kozen \ldots{}", acknowledgement = ack-nhfb, articleno = "29", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Yuan:2022:TSR, author = "Charles Yuan and Christopher McNally and Michael Carbin", title = "{Twist}: sound reasoning for purity and entanglement in Quantum programs", journal = j-PACMPL, volume = "6", number = "POPL", pages = "30:1--30:32", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498691", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498691", abstract = "Quantum programming languages enable developers to implement algorithms for quantum computers that promise computational breakthroughs in classically intractable tasks. Programming quantum computers requires awareness of entanglement, the phenomenon in \ldots{}", acknowledgement = ack-nhfb, articleno = "30", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{DalLago:2022:RTE, author = "Ugo {Dal Lago} and Francesco Gavazzo", title = "A relational theory of effects and coeffects", journal = j-PACMPL, volume = "6", number = "POPL", pages = "31:1--31:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498692", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498692", abstract = "Graded modal types systems and coeffects are becoming a standard formalism to deal with context-dependent, usage-sensitive computations, especially when combined with computational effects. From a semantic perspective, effectful and coeffectful \ldots{}", acknowledgement = ack-nhfb, articleno = "31", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Pujet:2022:OEN, author = "Lo{\"\i}c Pujet and Nicolas Tabareau", title = "Observational equality: now for good", journal = j-PACMPL, volume = "6", number = "POPL", pages = "32:1--32:27", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498693", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498693", abstract = "Building on the recent extension of dependent type theory with a universe of definitionally proof-irrelevant types, we introduce TTobs, a new type theory based on the setoidal interpretation of dependent type theory. TTobs equips every type with an \ldots{}", acknowledgement = ack-nhfb, articleno = "32", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Ohman:2022:VRC, author = "Joakim {\"O}hman and Aleksandar Nanevski", title = "Visibility reasoning for concurrent snapshot algorithms", journal = j-PACMPL, volume = "6", number = "POPL", pages = "33:1--33:30", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498694", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498694", abstract = "Visibility relations have been proposed by Henzinger et al. as an abstraction for proving linearizability of concurrent algorithms that obtains modular and reusable proofs. This is in contrast to the customary approach based on exhibiting the algorithm'. \ldots{}", acknowledgement = ack-nhfb, articleno = "33", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Raad:2022:CIS, author = "Azalea Raad and Josh Berdine and Derek Dreyer and Peter W. O'Hearn", title = "Concurrent incorrectness separation logic", journal = j-PACMPL, volume = "6", number = "POPL", pages = "34:1--34:29", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498695", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498695", abstract = "Incorrectness separation logic (ISL) was recently introduced as a theory of under-approximate reasoning, with the goal of proving that compositional bug catchers find actual bugs. However, ISL only considers sequential programs. Here, we develop \ldots{}", acknowledgement = ack-nhfb, articleno = "34", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zhang:2022:RM, author = "Yihong Zhang and Yisu Remy Wang and Max Willsey and Zachary Tatlock", title = "Relational e-matching", journal = j-PACMPL, volume = "6", number = "POPL", pages = "35:1--35:22", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498696", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498696", abstract = "We present a new approach to e-matching based on relational join; in particular, we apply recent database query execution techniques to guarantee worst-case optimal run time. Compared to the conventional backtracking approach that always searches the e-. \ldots{}", acknowledgement = ack-nhfb, articleno = "35", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Le:2022:QIS, author = "Xuan-Bach Le and Shang-Wei Lin and Jun Sun and David Sanan", title = "A Quantum interpretation of separating conjunction for local reasoning of Quantum programs based on separation logic", journal = j-PACMPL, volume = "6", number = "POPL", pages = "36:1--36:27", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498697", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498697", abstract = "It is well-known that quantum programs are not only complicated to design but also challenging to verify because the quantum states can have exponential size and require sophisticated mathematics to encode and manipulate. To tackle the state-space \ldots{}", acknowledgement = ack-nhfb, articleno = "36", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Blanvillain:2022:TLP, author = "Olivier Blanvillain and Jonathan Immanuel Brachth{\"a}user and Maxime Kjaer and Martin Odersky", title = "Type-level programming with match types", journal = j-PACMPL, volume = "6", number = "POPL", pages = "37:1--37:24", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498698", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498698", abstract = "Type-level programming is becoming more and more popular in the realm of functional programming. However, the combination of type-level programming and subtyping remains largely unexplored in practical programming languages. This paper presents match \ldots{}", acknowledgement = ack-nhfb, articleno = "37", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Loehr:2022:SMP, author = "Devon Loehr and David Walker", title = "Safe, modular packet pipeline programming", journal = j-PACMPL, volume = "6", number = "POPL", pages = "38:1--38:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498699", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498699", abstract = "The P4 language and programmable switch hardware, like the Intel Tofino, have made it possible for network engineers to write new programs that customize operation of computer networks, thereby improving performance, fault-tolerance, energy use, and \ldots{}", acknowledgement = ack-nhfb, articleno = "38", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Jang:2022:MMU, author = "Junyoung Jang and Samuel G{\'e}lineau and Stefan Monnier and Brigitte Pientka", title = "{Moebius}: metaprogramming using contextual types: the stage where system f can pattern match on itself", journal = j-PACMPL, volume = "6", number = "POPL", pages = "39:1--39:27", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498700", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498700", abstract = "We describe the foundation of the metaprogramming language, Moebius, which supports the generation of polymorphic code and, more importantly, the analysis of polymorphic code via pattern matching. Moebius has two main ingredients: (1) we exploit \ldots{}", acknowledgement = ack-nhfb, articleno = "39", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Eichholz:2022:DTD, author = "Matthias Eichholz and Eric Hayden Campbell and Matthias Krebs and Nate Foster and Mira Mezini", title = "Dependently-typed data plane programming", journal = j-PACMPL, volume = "6", number = "POPL", pages = "40:1--40:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498701", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498701", abstract = "Programming languages like P4 enable specifying the behavior of network data planes in software. However, with increasingly powerful and complex applications running in the network, the risk of faults also increases. Hence, there is growing recognition \ldots{}", acknowledgement = ack-nhfb, articleno = "40", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Chistikov:2022:SCC, author = "Dmitry Chistikov and Rupak Majumdar and Philipp Schepper", title = "Subcubic certificates for {CFL} reachability", journal = j-PACMPL, volume = "6", number = "POPL", pages = "41:1--41:29", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498702", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498702", abstract = "Many problems in interprocedural program analysis can be modeled as the context-free language (CFL) reachability problem on graphs and can be solved in cubic time. Despite years of efforts, there are no known truly sub-cubic algorithms for this problem. \ldots{}", acknowledgement = ack-nhfb, articleno = "41", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Vale:2022:LOB, author = "Arthur Oliveira Vale and Paul-Andr{\'e} Melli{\`e}s and Zhong Shao and J{\'e}r{\'e}mie Koenig and L{\'e}o Stefanesco", title = "Layered and object-based game semantics", journal = j-PACMPL, volume = "6", number = "POPL", pages = "42:1--42:32", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498703", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498703", abstract = "Large-scale software verification relies critically on the use of compositional languages, semantic models, specifications, and verification techniques. Recent work on certified abstraction layers synthesizes game semantics, the refinement calculus, and \ldots{}", acknowledgement = ack-nhfb, articleno = "42", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Muller:2022:PGP, author = "Mark Niklas M{\"u}ller and Gleb Makarchuk and Gagandeep Singh and Markus P{\"u}schel and Martin Vechev", title = "{PRIMA}: general and precise neural network certification via scalable convex hull approximations", journal = j-PACMPL, volume = "6", number = "POPL", pages = "43:1--43:33", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498704", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498704", abstract = "Formal verification of neural networks is critical for their safe adoption in real-world applications. However, designing a precise and scalable verifier which can handle different activation functions, realistic network architectures and relevant \ldots{}", acknowledgement = ack-nhfb, articleno = "43", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Kammar:2022:FAM, author = "Ohad Kammar and Shin-ya Katsumata and Philip Saville", title = "Fully abstract models for effectful $ \lambda $-calculi via category-theoretic logical relations", journal = j-PACMPL, volume = "6", number = "POPL", pages = "44:1--44:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498705", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498705", abstract = "We present a construction which, under suitable assumptions, takes a model of Moggi's computational $ \lambda $-calculus with sum types, effect operations and primitives, and yields a model that is adequate and fully abstract. The construction, which uses the \ldots{}", acknowledgement = ack-nhfb, articleno = "44", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Chen:2022:SSC, author = "Taolue Chen and Alejandro Flores-Lamas and Matthew Hague and Zhilei Han and Denghang Hu and Shuanglong Kan and Anthony W. Lin and Philipp R{\"u}mmer and Zhilin Wu", title = "Solving string constraints with Regex-dependent functions through transducers with priorities and variables", journal = j-PACMPL, volume = "6", number = "POPL", pages = "45:1--45:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498707", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", 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/string-matching.bib", URL = "https://dl.acm.org/doi/10.1145/3498707", abstract = "Regular expressions are a classical concept in formal language theory. Regular expressions in programming languages (RegEx) such as JavaScript, feature non-standard semantics of operators (e.g. greedy/lazy Kleene star), as well as additional features \ldots{}", acknowledgement = ack-nhfb, articleno = "45", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Muller:2022:SPP, author = "Stefan K. Muller", title = "Static prediction of parallel computation graphs", journal = j-PACMPL, volume = "6", number = "POPL", pages = "46:1--46:31", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498708", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498708", abstract = "Many algorithms for analyzing parallel programs, for example to detect deadlocks or data races or to calculate the execution cost, are based on a model variously known as a cost graph, computation graph or dependency graph, which captures the parallel \ldots{}", acknowledgement = ack-nhfb, articleno = "46", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Porncharoenwase:2022:FFS, author = "Sorawee Porncharoenwase and Luke Nelson and Xi Wang and Emina Torlak", title = "A formal foundation for symbolic evaluation with merging", journal = j-PACMPL, volume = "6", number = "POPL", pages = "47:1--47:28", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498709", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498709", abstract = "Reusable symbolic evaluators are a key building block of solver-aided verification and synthesis tools. A reusable evaluator reduces the semantics of all paths in a program to logical constraints, and a client tool uses these constraints to formulate a \ldots{}", acknowledgement = ack-nhfb, articleno = "47", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Krawiec:2022:PCA, author = "Faustyna Krawiec and Simon Peyton Jones and Neel Krishnaswami and Tom Ellis and Richard A. Eisenberg and Andrew Fitzgibbon", title = "Provably correct, asymptotically efficient, higher-order reverse-mode automatic differentiation", journal = j-PACMPL, volume = "6", number = "POPL", pages = "48:1--48:30", month = jan, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1145/3498710", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Thu May 26 06:32:48 MDT 2022", bibsource = "http://www.math.utah.edu/pub/tex/bib/pacmpl.bib", URL = "https://dl.acm.org/doi/10.1145/3498710", abstract = "In this paper, we give a simple and efficient implementation of reverse-mode automatic differentiation, which both extends easily to higher-order functions, and has run time and memory consumption linear in the run time of the original program. In \ldots{}", acknowledgement = ack-nhfb, articleno = "48", fjournal = "Proceedings of the ACM on Programming Languages (