Auflistung nach Autor:in "Sun, Haiyang"
1 - 2 von 2
Treffer pro Seite
Sortieroptionen
- ConferencePaperAutomated Large-scale Multi-language Dynamic Program Analysis in the Wild(Software Engineering 2021, 2021) Villazón, Alex; Sun, Haiyang; Rosà, Andrea; Rosales, Eduardo; Bonetta, Daniele; Defilippis, Isabella; Oporto, Sergio; Binder, WalterOur paper published in the proceedings of the 33rd European Conference on Object-Oriented Programming (ECOOP 2019) proposes NAB, a novel framework to execute custom dynamic analysis on open-source software hosted in public repositories. The publication is complemented by an accepted artifact. Analyzing today’s large code repositories has become an important research area for understanding and improving different aspects of modern software systems. Despite the presence of a large body of work on mining code repositories through static analysis, studies applying dynamic analysis to open-source projects are scarce and of limited scale. Nonetheless, being able to apply dynamic analysis to the projects hosted in public code repositories is fundamental for large-scale studies on the runtime behavior of applications, which can greatly benefit the programming-language and software-engineering communities. NAB is fully automatic, language-agnostic, and scalable. We describe NAB’s key features and architecture. We also present three case studies on more than 56K Node.js, Java, and Scala projects, enabling us to 1) understand how developers use JavaScript Promises, 2) identify bad coding practices in JavaScript applications, and 3) locate task-parallel Java and Scala workloads suitable for inclusion in a domain-specific benchmark suite. A preliminary version of NAB is available at http://dag.inf.usi.ch/software/nab/
- KonferenzbeitragComprehensive multi-platform dynamic program analysis for the Java and dalvik virtual machines(Software-engineering and management 2015, 2015) Binder, Walter; Zheng, Yudi; Bulej, Lubomír; Sun, Haiyang; Tuma, PetrDespite its importance for many software engineering tasks, dynamic program analysis is only insufficiently supported on the Java platform [KABM12]. Ex- isting Java Virtual Machines (JVMs) as well as Android's Dalvik Virtual Machine (DVM) lack dedicated mechanisms for expressing arbitrary dynamic program analysis tasks at a high abstraction level, for ensuring complete code coverage of the analysis, and for isolating analysis tasks from the observed program to prevent interference. For example, the JVM Tool Interface requires analysis tasks to be written in low-level native code, and some virtual machines (e.g., DVM) do not support it. As a consequence, dynamic program analysis tools are often implemented using low-level mechanisms, resulting in error-prone code that is difficult to maintain, and support only a particular virtual machine. Moreover, many analysis tools produce unsound profiles (due to interference of the analysis with the observed program) or incomplete profiles (due to limited code coverage).