2015
DOI: 10.1007/978-3-662-48899-7_41
|View full text |Cite
|
Sign up to set email alerts
|

Gamifying Program Analysis

Abstract: interpretation is a powerful tool in program verification. Several commercial or industrial scale implementations of abstract interpretation have demonstrated that this approach can verify safety properties of real-world code. However, using abstract interpretation tools is not always simple. If no user-provided hints are available, the abstract interpretation engine may lose precision during widening and produce an overwhelming number of false alarms. However, manually providing these hints is time consuming … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2

Citation Types

0
4
0

Year Published

2016
2016
2019
2019

Publication Types

Select...
3

Relationship

2
1

Authors

Journals

citations
Cited by 3 publications
(4 citation statements)
references
References 18 publications
0
4
0
Order By: Relevance
“…Binary Fission was developed as part of the Crowd Sourced Formal Verification (CSFV) program, funded by DARPA in the United States. This program has resulted in the creation of ten games focused on the intersection with formal software verification [7,18,12]; a summary of the games developed in this program can be found in [5], and many of the games can be played at verigames.com.…”
Section: Related Workmentioning
confidence: 99%
“…Binary Fission was developed as part of the Crowd Sourced Formal Verification (CSFV) program, funded by DARPA in the United States. This program has resulted in the creation of ten games focused on the intersection with formal software verification [7,18,12]; a summary of the games developed in this program can be found in [5], and many of the games can be played at verigames.com.…”
Section: Related Workmentioning
confidence: 99%
“…For example, a loop invariant can indicate a relation among the program variables at the loop entrance. Invariants help prove program correctness, e.g., classical verification approaches by Floyd-Hoare and Dijkstra [13,21] can be automated when given needed loop invariants and the infamous Heartbleed bug can be avoided by preserving an invariant capturing the proper size of the received payload message [16]. Invariants also help developers understand programs, e.g., showing interesting or unexpected behaviors, and even discover nonfunctional bugs, e.g., revealing that the program has an unusual high runtime complexity [37].…”
Section: Introductionmentioning
confidence: 99%
“…As discussed in the introduction, several projects investigated the idea of crowdsourcing verification tasks [7,8,12,13,21,23,30]. The main focus of these projects is to investigate to gamification potential and how to create a problem representation that is appealing to gamers.…”
Section: Related Workmentioning
confidence: 99%
“…For example, one of the developed games, GhostMap [23,30], crowdsources the problem of finding suitable refinements in a CEGAR-based model checker. Another game, Xylem [13], crowdsources predicate discovery to assist the abstract interpretation tool Frama-C. Other tools, like BinaryFission [12] crowdsource invariant discovery to obtain more readable invariants than existing machine learning approaches, and Paradox or Pipejam [8] turn constraint systems from type checking into puzzle games.…”
Section: Introductionmentioning
confidence: 99%