License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2019.20
URN: urn:nbn:de:0030-drops-108127
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2019/10812/
Villazón, Alex ;
Sun, Haiyang ;
Rosà, Andrea ;
Rosales, Eduardo ;
Bonetta, Daniele ;
Defilippis, Isabella ;
Oporto, Sergio ;
Binder, Walter
Automated Large-Scale Multi-Language Dynamic Program Analysis in the Wild (Tool Insights Paper)
Abstract
Today's availability of open-source software is overwhelming, and the number of free, ready-to-use software components in package repositories such as NPM, Maven, or SBT is growing exponentially. In this paper we address two straightforward yet important research questions: would it be possible to develop a tool to automate dynamic program analysis on public open-source software at a large scale? Moreover, and perhaps more importantly, would such a tool be useful? We answer the first question by introducing NAB, a tool to execute large-scale dynamic program analysis of open-source software in the wild. NAB is fully-automatic, language-agnostic, and can scale dynamic program analyses on open-source software up to thousands of projects hosted in code repositories. Using NAB, we analyzed more than 56K Node.js, Java, and Scala projects. Using the data collected by NAB we were able to (1) study the adoption of new language constructs such as JavaScript Promises, (2) collect statistics about bad coding practices in JavaScript, and (3) identify Java and Scala task-parallel workloads suitable for inclusion in a domain-specific benchmark suite. We consider such findings and the collected data an affirmative answer to the second question.
BibTeX - Entry
@InProceedings{villazn_et_al:LIPIcs:2019:10812,
author = {Alex Villaz{\'o}n and Haiyang Sun and Andrea Ros{\`a} and Eduardo Rosales and Daniele Bonetta and Isabella Defilippis and Sergio Oporto and Walter Binder},
title = {{Automated Large-Scale Multi-Language Dynamic Program Analysis in the Wild (Tool Insights Paper)}},
booktitle = {33rd European Conference on Object-Oriented Programming (ECOOP 2019)},
pages = {20:1--20:27},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-111-5},
ISSN = {1868-8969},
year = {2019},
volume = {134},
editor = {Alastair F. Donaldson},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2019/10812},
URN = {urn:nbn:de:0030-drops-108127},
doi = {10.4230/LIPIcs.ECOOP.2019.20},
annote = {Keywords: Dynamic program analysis, code repositories, GitHub, Node.js, Java, Scala, promises, JIT-unfriendly code, task granularity}
}
Keywords: |
|
Dynamic program analysis, code repositories, GitHub, Node.js, Java, Scala, promises, JIT-unfriendly code, task granularity |
Collection: |
|
33rd European Conference on Object-Oriented Programming (ECOOP 2019) |
Issue Date: |
|
2019 |
Date of publication: |
|
10.07.2019 |
Supplementary Material: |
|
ECOOP 2019 Artifact Evaluation approved artifact available at https://dx.doi.org/10.4230/DARTS.5.2.11 |