A lightweight symbolic virtual machine for solver-aided host languages

@article{Torlak2014ALS,
  title={A lightweight symbolic virtual machine for solver-aided host languages},
  author={E. Torlak and R. Bod{\'i}k},
  journal={Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation},
  year={2014}
}
  • E. Torlak, R. Bodík
  • Published 2014
  • Computer Science
  • Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
Solver-aided domain-specific languages (SDSLs) are an emerging class of computer-aided programming systems. [...] Key Method Our symbolic virtual machine is lightweight because it compiles to constraints only a small subset of the host's constructs, while allowing SDSL designers to use the entire language, including constructs for DSL embedding. This lightweight compilation employs a novel symbolic execution technique with two key properties: it produces compact encodings, and it enables concrete evaluation to…Expand
Finding code that explodes under symbolic evaluation
Practical formal techniques and tools for developing LLVM’s peephole optimizations
SpaceSearch: a library for building and verifying solver-aided tools
Bonsai: synthesis-based reasoning for type systems
Scalable Synthesis with Symbolic Syntax Graphs
Using human-in-the-loop synthesis to author functional reactive programs
DeepSEA: a language for certified system software
...
1
2
3
4
5
...

References

SHOWING 1-9 OF 9 REFERENCES
Finding bugs efficiently with a SAT solver
Modular verification of code with SAT
A Tool for Checking ANSI-C Programs
A Comparison of Intermediate Verification Languages: Boogie and Sireum/Pilar
EDUCATIONAL PEARL: Automata via macros
An operational semantics for Scheme
A
  • Azevedo de Amorim, and L. Lampropoulos. Testing noninterference, quickly. In ICFP
  • 2013
Reference: Racket
  • Reference: Racket
  • 2010
The Racket programming language. racket-lang.org
  • The Racket programming language. racket-lang.org