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.2
URN: urn:nbn:de:0030-drops-71334
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2017/7133/
BodÃk, Rastislav ;
Chandra, Kartik ;
Phothilimthana, Phitchaya Mangpo ;
Yazdani, Nathaniel
Domain-Specific Symbolic Compilation
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 |
Collection: |
|
2nd Summit on Advances in Programming Languages (SNAPL 2017) |
Issue Date: |
|
2017 |
Date of publication: |
|
05.05.2017 |