Synthesis of interface specifications for Java classes
By Rajeev Alur, Pavol Cerný, Parthasarathy Madhusudan, Wonhong Nam. ACM-SIGACT Symposium on Principles of Programming Languages, 2005
352 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Computational Theory and Mathematics, Information Systems
View Paper: https://www.semanticscholar.org/paper/cb586f104430710a98dce03d1339b127a76c5856
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Charles Sutton
- Koushik Sen
- Tien Nhut Nguyen
- Swarat Chaudhuri
- Eran Yahav
- Premkumar T. Devanbu
- Zhendong Su
- Hoan Anh Nguyen
In Computational Theory and Mathematics
- Zhendong Su
- Koushik Sen
- Andreas Zeller
- C. Jermaine
- Vijayaraghavan Murali
- Swarat Chaudhuri
- Tao Xie
- Westley Weimer
In Information Systems
- Charles Sutton
- Tien Nhut Nguyen
- Premkumar T. Devanbu
- Miltiadis Allamanis
- Swarat Chaudhuri
- Koushik Sen
- C. Jermaine
- Anh Tuan Nguyen
Citations in the corpus
- Mining API patterns as partial orders from source code: from usage scenarios to specifications (2007, methodology): “A number of approaches [3, 12, 24] have been developed to apply static analysis or model checking on the API implementation code to synthesize permissive API usage patterns that are allowed by the API implementation.”
- Bayesian specification learning for finding API usage errors (2017, background): “Most efforts in this area [6–8, 21, 25, 35, 42, 48, 55–57] focus on qualitative specifications, typically finite automata.”
- Detecting object usage anomalies (2007, methodology): “Other researchers used approaches such as grammar learning [3] or based on model checking [2, 16, 21].”
- Finding Likely Errors with Bayesian Specifications (2017, background): “The problem of specification learning has been studied for a long time (Ammons et al. 2002, 2003; Alur et al. 2005; Goues & Weimer 2009).”
- Perracotta: mining temporal API rules from imperfect traces (2006, methodology): “Although early work in this area emphasized st atic analysis of the program text [3, 16, 19, 48], more recently sev eral researchers have explored the possibility of using a program’s dynamic behavior on sample executions to infer a specificat on [4, 11, 17, 40, 49].”
- 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.”
- Jungloid mining: helping to navigate the API jungle (2005, background): “Whaley, Martin, and Lam [15] and Alur et al. [ 1 ] extract temporal interfaces from Java source code by static analysis rather than mining.”
- Graph-based mining of multiple object usage patterns (2009, methodology): “Some other approaches take as input a single type and derive the valid usage patterns as an FSA using static analysis or model checking [ 2 , 13, 20].”
- Finding application errors and security flaws using PQL: a program query language (2005, neutral): “[3] generalize this to automatically produce small, expressive finite state machines with respect to cert ain predicates over an object.”
- Guided GUI testing of android apps with minimal restart and approximate learning (2013, methodology): “The technique has been successfully applied to modular verification [13] and API specification inference [5].”
- DynaMine: finding common error patterns by mining software revision histories (2005, background): “[2] generalize this to automatically produce small, expressive finite state machines with respect to certain predicates over an object.”
- Prospex: Protocol Specification Extraction (2009, methodology): “Automatically extracting a protocol state machine from a set of observed protocol interactions is related to the problem of extracting temporal specifications for software components (such as API or method call sequences) from program traces [45], [55]–[58].”
- Synthesizing API usage examples (2012, background): “many specification mining techniques [30], [31], [32] where the edges represent method calls and an accepting sequence corresponds to a valid ordering) (lines 24–26).”
- Javert: fully automatic mining of general temporal properties from dynamic traces (2008, background): “Various static analyses [3,16,30] take as input a type and produce as output an automaton that encodes legal call sequences of operations on that type.”
- Extracting Automata from Recurrent Neural Networks Using Queries and Counterexamples (2017, methodology): “This version is adapted from Alur et al. (2005), where the membership and equivalence queries have been made more explicit than they appear in Angluin (1987).”