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.ECOOP.2016.6
URN: urn:nbn:de:0030-drops-61005
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2016/6100/
Go to the corresponding LIPIcs Volume Portal


Chen, Sheng ; Erwig, Martin ; Walkingshaw, Eric

A Calculus for Variational Programming

pdf-format:
LIPIcs-ECOOP-2016-6.pdf (0.7 MB)


Abstract

Variation is ubiquitous in software. Many applications can benefit from making this variation explicit, then manipulating and computing with it directly---a technique we call "variational programming". This idea has been independently discovered in several application domains, such as efficiently analyzing and verifying software product lines, combining bounded and symbolic model-checking, and computing with alternative privacy profiles. Although these
domains share similar core problems, and there are also many similarities in the solutions, there is no dedicated programming language support for variational programming. This makes the various implementations tedious, prone to errors, hard to maintain and reuse, and difficult to compare.

In this paper we present a calculus that forms the basis of a programming language with explicit support for representing, manipulating, and computing with variation in programs and data. We illustrate how such a language can simplify the implementation of variational programming tasks. We present the syntax and semantics of the core calculus, a sound type system, and a type inference algorithm that produces principal types.

BibTeX - Entry

@InProceedings{chen_et_al:LIPIcs:2016:6100,
  author =	{Sheng Chen and Martin Erwig and Eric Walkingshaw},
  title =	{{A Calculus for Variational Programming}},
  booktitle =	{30th European Conference on Object-Oriented Programming (ECOOP 2016)},
  pages =	{6:1--6:28},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-014-9},
  ISSN =	{1868-8969},
  year =	{2016},
  volume =	{56},
  editor =	{Shriram Krishnamurthi and Benjamin S. Lerner},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2016/6100},
  URN =		{urn:nbn:de:0030-drops-61005},
  doi =		{10.4230/LIPIcs.ECOOP.2016.6},
  annote =	{Keywords: Variational programming, variational types, variability-aware analyses}
}

Keywords: Variational programming, variational types, variability-aware analyses
Collection: 30th European Conference on Object-Oriented Programming (ECOOP 2016)
Issue Date: 2016
Date of publication: 18.07.2016


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