Using Active Learning to Synthesize Models of Applications That Access Databases
We present a new technique that uses active learning to infer models of applications that manipulate relational databases. This technique comprises a domain-specific language for modeling applications that access databases (each model is a program in this language) and an associated inferenc...
Main Authors: | , |
---|---|
Format: | Article |
Published: |
2018
|
Online Access: | http://hdl.handle.net/1721.1/117593 |
_version_ | 1826188060060024832 |
---|---|
author | Shen, Jiasi Rinard, Martin |
author_facet | Shen, Jiasi Rinard, Martin |
author_sort | Shen, Jiasi |
collection | MIT |
description | We present a new technique that uses active learning to infer models of
applications that manipulate relational databases. This technique
comprises a domain-specific language for modeling applications that
access databases (each model is a program in this language) and an
associated inference algorithm that infers models of applications whose
behavior can be expressed in this language. The inference algorithm
generates test inputs and database configurations, runs the application,
then observes the resulting database traffic and outputs to
progressively refine its current model hypothesis. The end result is a
model that completely captures the behavior of the application. Because
the technique works only with the externally observable inputs, outputs,
and databases, it can infer the behavior of applications written in
arbitrary languages using arbitrary coding styles (as long as the
behavior of the application is expressible in the domain-specific language).
We also present a technique for automatically regenerating an
implementation from the inferred model. The regenerator can produce a
translated implementation in a different language and systematically
include relevant security and error checks. |
first_indexed | 2024-09-23T07:53:59Z |
format | Article |
id | mit-1721.1/117593 |
institution | Massachusetts Institute of Technology |
last_indexed | 2024-09-23T07:53:59Z |
publishDate | 2018 |
record_format | dspace |
spelling | mit-1721.1/1175932019-04-09T15:25:11Z Using Active Learning to Synthesize Models of Applications That Access Databases Shen, Jiasi Rinard, Martin We present a new technique that uses active learning to infer models of applications that manipulate relational databases. This technique comprises a domain-specific language for modeling applications that access databases (each model is a program in this language) and an associated inference algorithm that infers models of applications whose behavior can be expressed in this language. The inference algorithm generates test inputs and database configurations, runs the application, then observes the resulting database traffic and outputs to progressively refine its current model hypothesis. The end result is a model that completely captures the behavior of the application. Because the technique works only with the externally observable inputs, outputs, and databases, it can infer the behavior of applications written in arbitrary languages using arbitrary coding styles (as long as the behavior of the application is expressible in the domain-specific language). We also present a technique for automatically regenerating an implementation from the inferred model. The regenerator can produce a translated implementation in a different language and systematically include relevant security and error checks. 2018-08-28T17:22:15Z 2018-08-28T17:22:15Z 2018-08-28 Article http://hdl.handle.net/1721.1/117593 application/pdf |
spellingShingle | Shen, Jiasi Rinard, Martin Using Active Learning to Synthesize Models of Applications That Access Databases |
title | Using Active Learning to Synthesize Models of Applications That Access Databases |
title_full | Using Active Learning to Synthesize Models of Applications That Access Databases |
title_fullStr | Using Active Learning to Synthesize Models of Applications That Access Databases |
title_full_unstemmed | Using Active Learning to Synthesize Models of Applications That Access Databases |
title_short | Using Active Learning to Synthesize Models of Applications That Access Databases |
title_sort | using active learning to synthesize models of applications that access databases |
url | http://hdl.handle.net/1721.1/117593 |
work_keys_str_mv | AT shenjiasi usingactivelearningtosynthesizemodelsofapplicationsthataccessdatabases AT rinardmartin usingactivelearningtosynthesizemodelsofapplicationsthataccessdatabases |