2018
DOI: 10.1145/3276519
|View full text |Cite
|
Sign up to set email alerts
|

Finding code that explodes under symbolic evaluation

Abstract: Solver-aided tools rely on symbolic evaluation to reduce programming tasks, such as verification and synthesis, to satisfiability queries. Many reusable symbolic evaluation engines are now available as part of solver-aided languages and frameworks, which have made it possible for a broad population of programmers to create and apply solver-aided tools to new domains. But to achieve results for real-world problems, programmers still need to write code that makes effective use of the underlying engine, and under… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
23
0

Year Published

2019
2019
2024
2024

Publication Types

Select...
5
2
1

Relationship

1
7

Authors

Journals

citations
Cited by 25 publications
(23 citation statements)
references
References 41 publications
0
23
0
Order By: Relevance
“…In contrast to solver-based and symbolic execution techniques for partially evaluating programs with holes (e.g. [Bornholt and Torlak 2018;Feng et al 2017a;), live evaluation is a form of concrete evaluation, adapting ideas from contextual modal type theory [Nanevski et al 2008]. Omar et al [2019, §5] detail the relationship to related work on partial evaluation.…”
Section: Live Evaluation and Bidirectional Evaluationmentioning
confidence: 99%
See 1 more Smart Citation
“…In contrast to solver-based and symbolic execution techniques for partially evaluating programs with holes (e.g. [Bornholt and Torlak 2018;Feng et al 2017a;), live evaluation is a form of concrete evaluation, adapting ideas from contextual modal type theory [Nanevski et al 2008]. Omar et al [2019, §5] detail the relationship to related work on partial evaluation.…”
Section: Live Evaluation and Bidirectional Evaluationmentioning
confidence: 99%
“…Compared to the aforementioned logic-based and other symbolic evaluation techniques (e.g. [Bornholt and Torlak 2018;Feng et al 2017a;), live bidirectional evaluation employs concrete evaluation to collect example constraints łgloballyž across multiple holes in the sketch.…”
Section: Introductionmentioning
confidence: 99%
“…At control-flow decisions, both branches are explored under corresponding symbolic path conditions; afterward, state is merged again into conditional values to exploit sharing in subsequent statements. In a nutshell, variational execution can be considered as an extreme design choice among various forms of symbolic program evaluation [5,6,8,34,69] for finite domains, in which computations are maximally performed on concrete values, but Boolean symbolic values may distinguish between multiple concrete values in program state [3,53,75].…”
Section: Variational Executionmentioning
confidence: 99%
“…However, the overall approaches are quite different. Serval uses Rosette [37] and relies on SMT solving, which allows for more automation. Our approach uses Coq, which can express richer properties that Serval cannot.…”
Section: Related Workmentioning
confidence: 99%