Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation 2019
DOI: 10.1145/3314221.3314591
|View full text |Cite
|
Sign up to set email alerts
|

Using active learning to synthesize models of applications that access databases

Abstract: We present Konure, a new system that uses active learning to infer models of applications that access relational databases. Konure comprises a domain-specific language (each model is a program in this language) and associated inference algorithm that infers models of applications whose behavior can be expressed in this language. The inference algorithm generates inputs and database contents, runs the application, then observes the resulting database traffic and outputs to progressively refine its current model… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
12
0

Year Published

2019
2019
2020
2020

Publication Types

Select...
5

Relationship

4
1

Authors

Journals

citations
Cited by 12 publications
(12 citation statements)
references
References 66 publications
0
12
0
Order By: Relevance
“…In contrast to these techniques, our proposed techniques 1) provide deterministic guarantees (as opposed to either probabilistic guarantees as in [15] or no guarantees at all as in [10,14]), 2) do not require the use of oracles as in [15], 3) can operate successfully even on data sets in which most or even all of the input-output examples are corrupted, and 4) do not require the explicit selection of a subset of the data set to drive the synthesis as in [10,15]. Active Learning: Recent research exploits the availability of a reference implementation to use active learning for program synthesis [17]. Our technique, in contrast, works directly from given input-output examples with no reference implementation.…”
Section: Related Workmentioning
confidence: 99%
“…In contrast to these techniques, our proposed techniques 1) provide deterministic guarantees (as opposed to either probabilistic guarantees as in [15] or no guarantees at all as in [10,14]), 2) do not require the use of oracles as in [15], 3) can operate successfully even on data sets in which most or even all of the input-output examples are corrupted, and 4) do not require the explicit selection of a subset of the data set to drive the synthesis as in [10,15]. Active Learning: Recent research exploits the availability of a reference implementation to use active learning for program synthesis [17]. Our technique, in contrast, works directly from given input-output examples with no reference implementation.…”
Section: Related Workmentioning
confidence: 99%
“…To deimplicitize programs that use these frameworks, we implemented an approach, Konure [6], that uses active learning to infer programs that access relational databases. The Konure paper presents experiments where Konure infers the functionality of programs in various languages (Ruby on Rails, Java, and Python) and regenerates the functionality in Python.…”
Section: Deimplicitizationmentioning
confidence: 99%
“…As part of our study objects we use open source applications of various sizes and complexities that are built with application frameworks. Specifically, we use the Ruby on Rails projects in the experiments of the Konure paper [6]: Each of these applications consist of a user interface as a web page and a back-end server that accepts API calls from the web browser. When an API is called, the application server translates the input parameters into SQL queries against a relational database and returns results extracted from the results of the queries.…”
Section: Materials and Objectsmentioning
confidence: 99%
See 1 more Smart Citation
“…• Section 4 presents a technique to infer and regenerate binary data parsers, similar to the one needed by the social network application. • Section 5 discusses Shen and Rinard's [73] technique for inferring programs that use databases, and how this can be applied to the account management back-end of our social network application. • Section 6 presents a technique for upgrading a program that uses in-memory data structures such as maps and lists to one that uses a database.…”
Section: Structure Of the Papermentioning
confidence: 99%