3Rd Summit on Advances in Programming Languages (SNAPL 2019)
Total Page:16
File Type:pdf, Size:1020Kb
3rd Summit on Advances in Programming Languages SNAPL 2019, May 16–17, 2019, Providence, RI, USA Edited by Benjamin S. Lerner Rastislav Bodík Shriram Krishnamurthi L I P I c s – Vo l . 136 – SNAPL 2019 w w w . d a g s t u h l . d e / l i p i c s Editors Benjamin S. Lerner Northeastern University, USA [email protected] Rastislav Bodík University of California Berkeley, USA [email protected] Shriram Krishnamurthi Brown University, USA [email protected] ACM Classification 2012 Software and its engineering → General programming languages; Software and its engineering → Semantics ISBN 978-3-95977-113-9 Published online and open access by Schloss Dagstuhl – Leibniz-Zentrum für Informatik GmbH, Dagstuhl Publishing, Saarbrücken/Wadern, Germany. Online available at https://www.dagstuhl.de/dagpub/978-3-95977-113-9. Publication date July, 2019 Bibliographic information published by the Deutsche Nationalbibliothek The Deutsche Nationalbibliothek lists this publication in the Deutsche Nationalbibliografie; detailed bibliographic data are available in the Internet at https://portal.dnb.de. License This work is licensed under a Creative Commons Attribution 3.0 Unported license (CC-BY 3.0): https://creativecommons.org/licenses/by/3.0/legalcode. In brief, this license authorizes each and everybody to share (to copy, distribute and transmit) the work under the following conditions, without impairing or restricting the authors’ moral rights: Attribution: The work must be attributed to its authors. The copyright is retained by the corresponding authors. Digital Object Identifier: 10.4230/LIPIcs.SNAPL.2019.0 ISBN 978-3-95977-113-9 ISSN 1868-8969 https://www.dagstuhl.de/lipics 0:iii LIPIcs – Leibniz International Proceedings in Informatics LIPIcs is a series of high-quality conference proceedings across all fields in informatics. LIPIcs volumes are published according to the principle of Open Access, i.e., they are available online and free of charge. Editorial Board Luca Aceto (Chair, Gran Sasso Science Institute and Reykjavik University) Christel Baier (TU Dresden) Mikolaj Bojanczyk (University of Warsaw) Roberto Di Cosmo (INRIA and University Paris Diderot) Javier Esparza (TU München) Meena Mahajan (Institute of Mathematical Sciences) Dieter van Melkebeek (University of Wisconsin-Madison) Anca Muscholl (University Bordeaux) Luke Ong (University of Oxford) Catuscia Palamidessi (INRIA) Thomas Schwentick (TU Dortmund) Raimund Seidel (Saarland University and Schloss Dagstuhl – Leibniz-Zentrum für Informatik) ISSN 1868-8969 https://www.dagstuhl.de/lipics S N A P L 2 0 1 9 Contents Preface Benjamin S. Lerner, Rastislav Bodík, and Shriram Krishnamurthi . 0:vii Regular Papers Overparameterization: A Connection Between Software 1.0 and Software 2.0 Michael Carbin . 1:1–1:13 Blame Tracking and Type Error Debugging Sheng Chen and John Peter Campora III . 2:1–2:14 What is a Secure Programming Language? Cristina Cifuentes and Gavin Bierman . 3:1–3:15 From Theory to Systems: A Grounded Approach to Programming Language Education Will Crichton .................................................................... 4:1–4:9 From Macros to DSLs: The Evolution of Racket Ryan Culpepper, Matthias Felleisen, Matthew Flatt, and Shriram Krishnamurthi . 5:1–5:19 The Dynamic Practice and Static Theory of Gradual Typing Michael Greenberg . 6:1–6:20 A Golden Age of Hardware Description Languages: Applying Programming Language Techniques to Improve Design Productivity Lenny Truong and Pat Hanrahan . 7:1–7:21 Version Control Is for Your Data Too Gowtham Kaki, KC Sivaramakrishnan, and Suresh Jagannathan . 8:1–8:18 The Next 700 Semantics: A Research Challenge Shriram Krishnamurthi, Benjamin S. Lerner, and Liam Elberty . 9:1–9:14 Toward Domain-Specific Solvers for Distributed Consistency Lindsey Kuper and Peter Alvaro . 10:1–10:14 A Tour of Gallifrey, a Language for Geodistributed Programming Matthew Milano, Rolph Recto, Tom Magrino, and Andrew C. Myers . 11:1–11:19 Formal Verification vs. Quantum Uncertainty Robert Rand, Kesha Hietala, and Michael Hicks . 12:1–12:11 3rd Summit on Advances in Programming Languages (SNAPL 2019). Editors: Benjamin S. Lerner, Rastislav Bodík, and Shriram Krishnamurthi Leibniz International Proceedings in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany Preface This is the third running of the Summit oNAdvances in Programming Languages (SNAPL), a relatively new venue for the programming languages community. The goal of SNAPL is to complement existing conferences by discussing big-picture questions. After the first two events, held in 2015 and 2017, we hope to continue evolving the venue into a place where our community comes to enjoy talks with inspiring ideas, fresh insights, and lots of discussion. Open to perspectives from both industry and academia, SNAPL values innovation, experience-based insight, and vision. Not affiliated with any other organization, SNAPL is organized by the PL community for the PL community. We planned to hold SNAPL every two years in early May. After two runnings in Asilomar, California, we decided to hold the third SNAPL in Providence, RI, USA, hoping that the East Coast location will make the conference more accessible to attendees from Europe. SNAPL has drawn on the elements from many successful meeting formats such as the database community’s CIDR conference, the security community’s NSPW workshop, and others, and continues to evolve its own particular flavor. The focus at SNAPL is not primarily on papers but rather on talks and interaction. Nevertheless, a short paper is the primary medium by which authors request and obtain time to speak. A good SNAPL entry, however, does not have the character of a regular conference submission — we already have plenty of venues for those. Rather, it is closer to the character of an invited talk, encompassing all the diversity that designation suggests: visionary ideas, progress reports, retrospectives, analyses of mistakes, calls to action, and more. Thus, a SNAPL submission should be viewed more as a “request to give an invited talk.” Overall, the submissions suggest SNAPL remains an interesting and valuable venue. We have received 21 submissions and decided to accept twelve. The program will also include talks by members of the program committee. We look forward to discussions that will hopefully be as lively as in the previous instances of SNAPL. Benjamin S. Lerner, Rastislav Bodík, and Shriram Krishnamurthi May, 2019 3rd Summit on Advances in Programming Languages (SNAPL 2019). Editors: Benjamin S. Lerner, Rastislav Bodík, and Shriram Krishnamurthi Leibniz International Proceedings in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany Overparameterization: A Connection Between Software 1.0 and Software 2.0 Michael Carbin MIT CSAIL, Cambridge, MA, USA [email protected] Abstract A new ecosystem of machine-learning driven applications, titled Software 2.0, has arisen that integrates neural networks into a variety of computational tasks. Such applications include image recognition, natural language processing, and other traditional machine learning tasks. However, these techniques have also grown to include other structured domains, such as program analysis and program optimization for which novel, domain-specific insights mate with model design. In this paper, we connect the world of Software 2.0 with that of traditional software – Software 1.0 – through overparameterization: a program may provide more computational capacity and precision than is necessary for the task at hand. In Software 2.0, overparamterization – when a machine learning model has more parameters than datapoints in the dataset – arises as a contemporary understanding of the ability for modern, gradient- based learning methods to learn models over complex datasets with high-accuracy. Specifically, the more parameters a model has, the better it learns. In Software 1.0, the results of the approximate computing community show that traditional software is also overparameterized in that software often simply computes results that are more precise than is required by the user. Approximate computing exploits this overparameterization to improve performance by eliminating unnecessary, excess computation. For example, one – of many techniques – is to reduce the precision of arithmetic in the application. In this paper, we argue that the gap between available precision and that that is required for either Software 1.0 or Software 2.0 is a fundamental aspect of software design that illustrates the balance between software designed for general-purposes and domain-adapted solutions. A general- purpose solution is easier to develop and maintain versus a domain-adapted solution. However, that ease comes at the expense of performance. We show that the approximate computing community and the machine learning community have developed overlapping techniques to improve performance by reducing overparameterization. We also show that because of these shared techniques, questions, concerns, and answers on how to construct software can translate from one software variant to the other. 2012 ACM Subject Classification Software and its engineering → General programming languages; Computing methodologies → Machine learning Keywords and phrases Approximate Computing, Machine Learning, Software 2.0 Digital Object Identifier 10.4230/LIPIcs.SNAPL.2019.1 Funding This work was supported in part by the Office of Naval Research (ONR N00014-17-1-2699) and the