SQL for Deep Dynamic Analysis?

Workshop Paper: WODA'15, October, 2015

If we develop a new dynamic analysis tool, how should we expose its functionalities? Through an interactive user interface, a DSL, a specific API, or in some other way? In this paper we discuss how to use an already existing language familiar to most software engineers, SQL, to perform deep dynamic analyses. The goal is to explore the trade-off between expressiveness and ease-of-use. We use BLAST as the dynamic analysis tool and map its trace information to a relational database. We find that, even though SQL is expressive enough for deep analysis of program executions and information flow, it is not quite straight forward to express some of the queries software engineers might be interested in. However, it removes the burden of learning a new language from scratch, which could make it worthwhile as an option in some cases.

@inproceedings{Azadmanesh15b, author = {Azadmanesh, Mohammad R. and Hauswirth, Matthias}, title = {SQL for Deep Dynamic Analysis?}, booktitle = {Proceedings of the 13th International Workshop on Dynamic Analysis}, series = {WODA 2015}, year = {2015}, isbn = {978-1-4503-3909-4}, location = {Pittsburgh, PA, USA}, pages = {2--7}, numpages = {6}, url = {http://doi.acm.org/10.1145/2823363.2823365}, doi = {10.1145/2823363.2823365}, acmid = {2823365}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {Dynamic analysis, SQL, program trace, query-based analysis}, }