Mining specifications
By Glenn Ammons, Rastislav Bodík, J. Larus. ACM-SIGACT Symposium on Principles of Programming Languages, 2002
777 citations recorded by the source corpus.
Subfields: Computer Networks and Communications, Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/dc1817567355cd08e9d0d1669211e0d964c0ad17
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
- Charles Sutton
- Andreas Zeller
- Engin Kirda
- Paolo Milani Comparetti
- Christopher Krügel
- Thomas Zimmermann
- Yuanyuan Zhou
- Zhendong Su
In Information Systems
- Charles Sutton
- Tao Xie
- Zhendong Su
- Jian Pei
- Westley Weimer
- Tien Nhut Nguyen
- Benjamin Livshits
- Premkumar T. Devanbu
In Software
- Zhendong Su
- Westley Weimer
- Tao Xie
- Benjamin Livshits
- Jian Pei
- Charles Sutton
- Mark Gabel
- Swarat Chaudhuri
Citations in the corpus
- Automatic generation of software behavioral models (2008, methodology): “…software behavior are used to dynamically detect anomalous behaviors [30] [12], statically and dynamically check compatibility between software components [19] [18], verify protocols [2], generate test cases [13] [17], capture unexpected event sequences [34] and verify program properties [8] [20].”
- Genetic programming for Reverse Engineering (2013, background): “Program slicing and dependence analysis has been widely studied in the reverse engineering literature, because slices have applications on comprehension [15], re-use [9], specification mining [4], understanding bug reports and tool traces [50], code salvaging [21] and testing [38], [67].”
- Mining API patterns as partial orders from source code: from usage scenarios to specifications (2007, background): “This mechanism is based on an assumption [4, 8, 27] that a client generally uses an API or a set of APIs correctly most of the times.”
- MAPO: Mining and Recommending API Usage Patterns (2009, methodology): “To mine automata, some approaches [4, 5, 21] use the Angluin’s algorithm [6], and other approaches [9, 11, 14, 28, 31, 36] adopt various customized techniques.”
- Finding Likely Errors with Bayesian Specifications (2017, background): “While many such definitions are possible, the one we pick models F as a class of automata, called generative probabilistic automata (Ammons et al. 2002; Murawski & 3 2017/3/7 Ouaknine 2005).”
- Detecting object usage anomalies (2007, methodology): “[3] require manual annotations to relate functions to objects, while Alur et al.”
- DynaMine: finding common error patterns by mining software revision histories (2005, methodology): “The Strauss system [3] uses machine learning techniques to infer a state machine representing the proper sequence of function calls in an interface.”
- Javert: fully automatic mining of general temporal properties from dynamic traces (2008, methodology): “This figure has been reproduced from the original paper [4] and translated to Java.”
- Finding application errors and security flaws using PQL: a program query language (2005, neutral): “The Strauss system [4] uses machine learning techniques to infer a state machine representing the proper sequence of function calls in an interface.”
- Synthesizing API usage examples (2012, methodology): “Next we identify use seeds [14], expressions which represent a static instantiation of the target type: new object allocations, field references, and function parameters (lines 15–16).”
- DeepBugs: a learning approach to name-based bug detection (2018, neutral): “A related line of research is specification mining [Ammons et al. 2002] and the use of mined specifications to detect unusual and possibly incorrect code [Liang et al. 2016; Pradel et al. 2012; Wasylkowski and Zeller 2009].”