Browsing by Autor "Eduardo Rosales"
Now showing 1 - 4 of 4
- Results Per Page
- Sort Options
Item type: Item , Automated Large-Scale Multi-Language Dynamic Program Analysis in the Wild (Artifact)(Schloss Dagstuhl – Leibniz Center for Informatics, 2019) Alex Villazón; Haiyang Sun; Andrea Rosà; Eduardo Rosales; Daniele Bonetta; Isabella Defilippis; Sergio Oporto; Walter BinderThis artifact provides a preliminary release of NAB, a distributed infrastructure for executing large-scale dynamic program analyses (DPAs). The artifact consists of ready-to-use Docker containers that allow one to run different DPA tools (Deep-Promise, JITProf, and tgp) on Node.js, Java, and Scala projects hosted on GitHub. The artifact enables the reproduction of the figures and tables of the related paper "Automated Large-scale Multi-language Dynamic Program Analysis in the Wild" with pre-collected data (several GBs) and the execution of DPAs on specific sets of GitHub projects.Item type: Item , Automated Large-Scale Multi-Language Dynamic Program Analysis in the Wild (Tool Insights Paper)(Schloss Dagstuhl – Leibniz Center for Informatics, 2019) Alex Villazón; Haiyang Sun; Andrea Rosà; Eduardo Rosales; Daniele Bonetta; Isabella Defilippis; Sergio Oporto; Walter BinderToday’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.Item type: Item , Characterizing Java Streams in the Wild(2022) Eduardo Rosales; Andrea Rosà; Matteo Basso; Alex Villazón; Adriana Orellana; Angel Zenteno; Jhon Rivero; Walter BinderSince Java 8, streams ease the development of data transformations using a declarative style based on functional programming. Some recent studies aim at shedding light on how streams are used. However, they consider only small sets of applications and mainly apply static analysis techniques, leaving the large-scale analysis of dynamic metrics focusing on stream processing an open research question. In this paper, we present the first large-scale empirical study on the use of streams in Java. We present a novel dynamic analysis for collecting runtime information and key metrics that enable the fine-grained characterization of sequential and parallel stream processing. We massively apply our dynamic analysis using a fully automated approach, supported by a distributed infrastructure to mine public software projects hosted on GitHub. Our findings advance the understanding of the use of streams, both confirming some of the results of previous studies at a much larger scale, as well as revealing previously unobserved findings in the use of streams.Item type: Item , NAB: automated large-scale multi-language dynamic program analysis in public code repositories(2019) Alex Villazón; Haiyang Sun; Andrea Rosà; Eduardo Rosales; Daniele Bonetta; Isabella Defilippis; Sergio Oporto; Walter BinderThis paper describes NAB, a novel framework to execute custom dynamic analysis on open-source software hosted in public repositories. NAB is fully-automatic, language-agnostic and scalable. We present NAB's key features and its architecture. We also discuss three large-scale case studies enabled by NAB on more than 56K Node.js, Java, and Scala projects