License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.SNAPL.2017.11
URN: urn:nbn:de:0030-drops-71273
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2017/7127/
Go to the corresponding LIPIcs Volume Portal


Omar, Cyrus ; Voysey, Ian ; Hilton, Michael ; Sunshine, Joshua ; Le Goues, Claire ; Aldrich, Jonathan ; Hammer, Matthew A.

Toward Semantic Foundations for Program Editors

pdf-format:
LIPIcs-SNAPL-2017-11.pdf (0.5 MB)


Abstract

Programming language definitions assign formal meaning to complete programs. Programmers, however, spend a substantial amount of time interacting with incomplete programs - programs with holes, type inconsistencies and binding inconsistencies - using tools like program editors and live programming environments (which interleave editing and evaluation). Semanticists have done comparatively little to formally characterize (1) the static and dynamic semantics of incomplete programs; (2) the actions available to programmers as they edit and inspect incomplete programs; and (3) the behavior of editor services that suggest likely edit actions to the programmer based on semantic information extracted from the incomplete program being edited, and from programs that the system has encountered in the past.

This paper serves as a vision statement for a research program that seeks to develop these "missing" semantic foundations. Our hope is that these contributions, which will take the form of a series of simple formal calculi equipped with a tractable metatheory, will guide the design of a variety of current and future interactive programming tools, much as various lambda calculi have guided modern language designs. Our own research will apply these principles in the design of Hazel, an experimental live lab notebook programming environment designed for data science tasks. We plan to co-design the Hazel language with the editor so that we can explore concepts such as edit-time semantic conflict resolution mechanisms and mechanisms that allow library providers to install library-specific editor services.

BibTeX - Entry

@InProceedings{omar_et_al:LIPIcs:2017:7127,
  author =	{Cyrus Omar and Ian Voysey and Michael Hilton and Joshua Sunshine and Claire Le Goues and Jonathan Aldrich and Matthew A. Hammer},
  title =	{{Toward Semantic Foundations for Program Editors}},
  booktitle =	{2nd Summit on Advances in Programming Languages (SNAPL 2017)},
  pages =	{11:1--11:12},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-032-3},
  ISSN =	{1868-8969},
  year =	{2017},
  volume =	{71},
  editor =	{Benjamin S. Lerner and Rastislav Bod{\'i}k and Shriram Krishnamurthi},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2017/7127},
  URN =		{urn:nbn:de:0030-drops-71273},
  doi =		{10.4230/LIPIcs.SNAPL.2017.11},
  annote =	{Keywords: program editors, type systems, live programming, program prediction}
}

Keywords: program editors, type systems, live programming, program prediction
Collection: 2nd Summit on Advances in Programming Languages (SNAPL 2017)
Issue Date: 2017
Date of publication: 05.05.2017


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI