License
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.SNAPL.2017.2
URN: urn:nbn:de:0030-drops-71334
URL: http://drops.dagstuhl.de/opus/volltexte/2017/7133/
Go to the corresponding LIPIcs Volume Portal


Bodík, Rastislav ; Chandra, Kartik ; Phothilimthana, Phitchaya Mangpo ; Yazdani, Nathaniel

Domain-Specific Symbolic Compilation

pdf-format:
LIPIcs-SNAPL-2017-2.pdf (2 MB)


Abstract

A symbolic compiler translates a program to symbolic constraints, automatically reducing model checking and synthesis to constraint solving. We show that new applications of constraint solving require domain-specific encodings that yield the required orders of magnitude improvements in solver efficiency. Unfortunately, these encodings cannot be obtained with today's symbolic compilation. We introduce symbolic languages that encapsulate domain-specific encodings under abstractions that behave as their non-symbolic counterparts: client code using the abstractions can be tested and debugged on concrete inputs. When client code is symbolically compiled, the resulting constraints use domain-specific encodings. We demonstrate the idea on the first fully symbolic checker of type systems; a program partitioner; and a parallelizer of tree computations. In each of these case studies, symbolic languages improved on classical symbolic compilers by orders of magnitude.

BibTeX - Entry

@InProceedings{bodk_et_al:LIPIcs:2017:7133,
  author =	{Rastislav Bod{\'i}k and Kartik Chandra and Phitchaya Mangpo Phothilimthana and Nathaniel Yazdani},
  title =	{{Domain-Specific Symbolic Compilation}},
  booktitle =	{2nd Summit on Advances in Programming Languages (SNAPL 2017)},
  pages =	{2:1--2:17},
  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/7133},
  URN =		{urn:nbn:de:0030-drops-71334},
  doi =		{10.4230/LIPIcs.SNAPL.2017.2},
  annote =	{Keywords: Symbolic evaluation, program synthesis, DSLs}
}

Keywords: Symbolic evaluation, program synthesis, DSLs
Seminar: 2nd Summit on Advances in Programming Languages (SNAPL 2017)
Issue Date: 2017
Date of publication: 30.04.2017


DROPS-Home | Fulltext Search | Imprint Published by LZI