Projekt

Zurück zur Übersicht

FAN: Foundations of dynamic program ANalysis

Gesuchsteller/in Binder Walter
Nummer 136225
Förderungsinstrument Sinergia
Forschungseinrichtung Facoltà di scienze informatiche Università della Svizzera italiana
Hochschule Università della Svizzera italiana - USI
Hauptdisziplin Informatik
Beginn/Ende 01.04.2012 - 30.09.2015
Bewilligter Betrag 868'056.00
Alle Daten anzeigen

Keywords (5)

Domain-specific languages, Dynamic program analysis, Debugging, Profiling, Java Virtual Machine

Lay Summary (Englisch)

Lead
Lay summary
As software systems grow in complexity and execution platforms become more and more sophisticated, it becomes harder and harder for a software engineer to understand, tune, or debug programs. Existing program analysis tools offer limited support, in part because there is a big gap between the abstractions provided by tools and the abstractions employed by software engineers. In this project, we explore a new approach to developing program analysis tools with considerably less programming effort. Our research will address the question: Can we raise the abstraction level for writing dynamic analysis tools, allowing software engineers to rapidly develop custom analysis tools, impairing neither expressiveness nor tool performance?

Program analysis for object-oriented programming languages is difficult. On the one hand, the use of polymorphism, reflection, and dynamic code loading limits the applicability of static analysis in modern object-oriented programming languages. So dynamic program analysis is becoming increasingly important as it supports a wide range of software engineering tasks such as profiling, debugging, testing, program comprehension, and reverse engineering. On the other hand, dynamic program analysis is poorly supported by tools. Writing dynamic analysis tools requires in-depth expert knowledge of low-level techniques such as program instrumentation, and as a result, the process is tedious, time-consuming, and error-prone. Consequently, most software engineers do not write custom dynamic analysis tools but rely on a limited number of tools provided by third parties. Sometimes, the available analysis tools do not exactly meet the requirements of the software engineer, who may need to explore a specific feature of an application.

Aspect-oriented programming (AOP) gives the programmer a powerful toolset to modify a program, but AOP systems may incur high execution overhead and at the same time overload the user with considerable details. The principal problem is that there is big gap between the (fixed) abstractions provided by the AOP languages and the (flexible) abstractions employed during program analysis. Some of the abstractions address a level that is too low (access to variables or fields whereas a programmer wants to analyze basic blocks or call chains), or there is no appropriate abstraction altogether (e.g., when investigating the timing behavior on a multicore system).

To overcome these limitations, in this project we investigate the design and implementation of Gottardo, a novel domain-specific language (DSL) that is based on the modification mechanisms found in AOP and offers dedicated new features that are essential for the development of a wide range of efficient dynamic analysis tools. A DSL allows the user to customize analysis and offers an opportunity to restrict the collection of dynamic behavior and performance data to those parameters that are needed for a specific task. We focus on dynamic analysis for the Java Virtual Machine (JVM), because of its maturity and availability for a wide range of hardware platforms and operating systems. As many modern object-oriented programming languages such as Java, Scala, or JRuby rely on the JVM as execution platform, a wide range of applications and middleware - from application servers to applications on embedded devices - will benefit from the results of our research.

We will study how to raise the level of abstraction in the formulation of analysis tasks to significantly reduce the effort of tool development. In particular, we will investigate DSL constructs for formulating queries relating state and behavior of program executions, for validating program behavior based on abstract, formal models, for composing program behavior visualizations for program understanding, for differential performance analysis, and for analyzing the behavior of distributed applications. These high-level language constructs will provide further opportunities for automatically optimizing and parallelizing the analysis.

The goal of this research is to study how to enable developers to formulate their own dynamic analyses, using a common language that is expressive enough to cover many of the questions about the behavior and performance of modern programs, simple enough for developers to learn, and efficient enough to be useful for debugging and performance analysis. As this project will elaborate new foundations for dynamic program analysis and promises a substantial advance over the current state-of-the-art in the field, a collaborative approach to research is essential in order to leverage the complementary expertise of three Swiss research groups that have long track records in the field. Thanks to this tightly coordinated joint effort, the project promises innovations with high impact in academic research, in industrial development, and in education.
Direktlink auf Lay Summary Letzte Aktualisierung: 21.02.2013

Verantw. Gesuchsteller/in und weitere Gesuchstellende

Mitarbeitende

Publikationen

Publikation
On the Limits of Modeling Generational Garbage Collector Performance
Libič Peter, Bulej Lubomír, Horký Vojtěch, Tůma Petr (2014), On the Limits of Modeling Generational Garbage Collector Performance, in Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering, Dublin, Ireland.
Dynamic Program Analysis – Reconciling Developer Productivity and Tool Performance
Sarimbekov Aibek, Zheng Yudi, Ansaloni Danilo, Bulej Lubomír, Marek Lukáš, Binder Walter, Tůma Petr, Qi Zhengwei (2014), Dynamic Program Analysis – Reconciling Developer Productivity and Tool Performance, in Science of Computer Programming, 95(3), 344-358.
ShadowData – Shadowing Heap Objects in Java
Vitásek Matej, Binder Walter, Hauswirth Matthias (2013), ShadowData – Shadowing Heap Objects in Java, in Proceedings of 11th Workshop on Program Analysis for Software Tools and Engineering, Seattle, USA.
Enabling Modularity and Re-use in Dynamic Program Analysis Tools for the Java Virtual Machine
Ansaloni Danilo, Kell Stephen, Zheng Yudi, Bulej Lubomír, Binder Walter, Tůma Petr (2013), Enabling Modularity and Re-use in Dynamic Program Analysis Tools for the Java Virtual Machine, in Proceedings of the 27th European Conference on Object-Oriented Programming, Montpellier, France.
The JVM is not observable enough (and what to do about it)
Kell Stephen, Ansaloni Danilo, Binder Walter, Marek Lukáš (2012), The JVM is not observable enough (and what to do about it), in Proceedings of the 6th ACM Workshop on Virtual Machines and Intermediate Languages, Tucson, AZ, USAACM.
Productive Development of Dynamic Program Analysis Tools with DiSL
Sarimbekov Aibek, Zheng Yudi, Ansaloni Danilo, Bulej Lubomír, Marek Lukáš, Binder Walter, Tůma Petr, Qi Zhengwei (2013), Productive Development of Dynamic Program Analysis Tools with DiSL, in Proceedings of 22nd Australasian Software Engineering Conference, Melbourne, Australia.
Introduction to Dynamic Program Analysis with DiSL
Marek Lukáš, Zheng Yudi, Ansaloni Danilo, Bulej Lubomír, Sarimbekov Aibek, Binder Walter, Qi Zhengwei (2013), Introduction to Dynamic Program Analysis with DiSL, in Proceedings of 4th ACM/SPEC International Conference on Performance Engineering, Prague, Czech Republic.
A Comprehensive Toolchain for Workload Characterization Across JVM Languages
Sarimbekov Aibek, Kell Stephen, Bulej Lubomír, Sewe Andreas, Zheng Yudi, Ansaloni Danilo, Binder Walter (2013), A Comprehensive Toolchain for Workload Characterization Across JVM Languages, in Proceedings of 11th Workshop on Program Analysis for Software Tools and Engineering, Seattle, USA.
Comparison of Instrumentation Techniques for Dynamic Program Analysis on the Java Virtual Machine
Sarimbekov Aibek (2013), Comparison of Instrumentation Techniques for Dynamic Program Analysis on the Java Virtual Machine, in Companion proceedings of the 12th International Conference on Aspect-Oriented Software Development, Fukuoka, Japan.
DiSL: A Domain-specific Language for Bytecode Instrumentation
Marek Lukáš, Villazón Alex, Zheng Yudi, Ansaloni Danilo, Binder Walter, Qi Zhengwei (2012), DiSL: A Domain-specific Language for Bytecode Instrumentation, in Proceedings of the 11th International Conference on Aspect-Oriented Software Development, Potsdam, GermanyACM.
Java Bytecode Instrumentation Made Easy: The DiSL Framework for Dynamic Program Analysis
Marek Lukáš, Zheng Yudi, Ansaloni Danilo, Sarimbekov Aibek, Binder Walter, Tůma Petr, Qi Zhengwei (2012), Java Bytecode Instrumentation Made Easy: The DiSL Framework for Dynamic Program Analysis, in Proceedings of the 10th Asian Symposium on Programming Languages and Systems, Kyoto, Japan 7705, Springer Berlin Heidelberg, Berlin, Germany 7705.
Challenges for Refinement and Composition of Instrumentations: Position Paper
Ansaloni Danilo, Binder Walter, Bockisch Christoph, Bodden Eric, Hatun Kardelen, Marek Lukáš, Qi Zhengwei, Sarimbekov Aibek, Sewe Andreas, Tůma Petr, Zheng Yudi (2012), Challenges for Refinement and Composition of Instrumentations: Position Paper, in International Conference on Software Composition 2012, Prague, Czech Republic 7306, Springer Berlin Heidelberg, Berlin, Germany 7306.
Turbo DiSL: Partial Evaluation for High-Level Bytecode Instrumentation
Zheng Yudi, Ansaloni Danilo, Marek Lukáš, Sewe Andreas, Binder Walter, Villazón Alex, Tůma Petr, Qi Zhengwei, Mezini Mira (2012), Turbo DiSL: Partial Evaluation for High-Level Bytecode Instrumentation, in Proceedings of the 50th International Conference on Objects, Models, Components, Patterns, Prague, Czech Republic 7304, Springer Berlin Heidelberg, Berlin, Germany 7304.
DiSL: An Extensible Language for Efficient and Comprehensive Dynamic Program Analysis
Marek Lukáš, Zheng Yudi, Ansaloni Danilo, Binder Walter, Qi Zhengwei, Tůma Petr (2012), DiSL: An Extensible Language for Efficient and Comprehensive Dynamic Program Analysis, in Proceedings of the 7th Workshop on Domain-Specific Aspect Languages, Potsdam, GermanyACM.
new Scala() instance of Java: A Comparison of the Memory Behaviour of Java and Scala programs
Sewe Andreas, Mezini Mira, Sarimbekov Aibek, Ansaloni Danilo, Binder Walter, Ricci Nathan, Guyer Samuel Z. (2012), new Scala() instance of Java: A Comparison of the Memory Behaviour of Java and Scala programs, in ACM SIGPLAN Notices, 47(11), 97-108.
Characteristics of Dynamic JVM Languages
Sarimbekov Aibek, Podzimek Andrej, Bulej Lubomír, Zheng Yudi, Ricci Nathan, Binder Walter (2013), Characteristics of Dynamic JVM Languages, in Proceedings of the 7th ACM Workshop on Virtual Machines and Intermediate languages, Indianapolis, IN, USA.
ShadowVM: Robust and Comprehensive Dynamic Program Analysis for the Java Platform
Marek Lukáš, Kell Stephen, Zheng Yudi, Bulej Lubomír, Binder Walter, Tůma Petr, Ansaloni Danilo, Sarimbekov Aibek, Sewe Andreas (2013), ShadowVM: Robust and Comprehensive Dynamic Program Analysis for the Java Platform, in Proceedings of the 12th International Conference on Generative Programming: Concepts & Experiences, Indianapolis, IN, USAACM.
Dynamic Optimization of Bytecode Instrumentation
Zheng Yudi, Bulej Lubomír, Zhang Cheng, Kell Stephen, Ansaloni Danilo, Binder Walter (2013), Dynamic Optimization of Bytecode Instrumentation, in Proceedings of the 7th ACM Workshop on Virtual Machines and Intermediate Languages, Indianapolis, IN, USAACM.
An Automation-Assisted Empirical Study on Lock Usage for Concurrent Programs
Xin Rui, Qi Zhengwei, Huang Shiqiu, Xiang Chengcheng, Zheng Yudi, Wang Yin, Guan Haibing (2013), An Automation-Assisted Empirical Study on Lock Usage for Concurrent Programs, in Proceedings of the 29th IEEE International Conference on Software Maintenance, Eindhoven, The Netherlands.
Use at Your Own Risk: The Java Unsafe API in the Wild
Mastrangelo Luis, Ponzanelli Luca, Mocci Andrea, Lanza Michele, Matthias Hauswirth, Nystrom Nathaniel (2015), Use at Your Own Risk: The Java Unsafe API in the Wild, in 30th ACM International Conference on Object Oriented Programming Systems Languages & Applications, Pittsburgh, Pennsylvania, United States.
JNIF: Java Native Instrumentation Framework
Mastrangelo Luis, Hauswirth Matthias (2014), JNIF: Java Native Instrumentation Framework, in PPPJ'14, Krakow, Poland.
Introduction to Dynamic Program Analysis with DiSL
Marek Lukáš, Zheng Yudi, Ansaloni Danilo, Bulej Lubomír, Sarimbekov Aibek, Binder Walter, Tůma Petr (2015), Introduction to Dynamic Program Analysis with DiSL, in Science of Computer Programming , 98(1), 100-115.
JP2: Call-site aware calling context profiling for the Java Virtual Machine
Sarimbekov Aibek, Sewe Andreas, Binder Walter, Moret Philippe, Mezini Mira (2014), JP2: Call-site aware calling context profiling for the Java Virtual Machine, in Science of Computer Programming , 79, 146-157.
Accurate Profiling in the Presence of Dynamic Compilation
Zheng Yudi, Bulej Lubomír, Binder Walter (2015), Accurate Profiling in the Presence of Dynamic Compilation, in 30th ACM International Conference on Object Oriented Programming Systems Languages & Applications, Pittsburgh, Pennsylvania, United States.
Performance Problems You Can Fix: A Dynamic Analysis of Memoization Opportunities
Della Toffola Luca, Pradel Michael, Gross Thomas (2015), Performance Problems You Can Fix: A Dynamic Analysis of Memoization Opportunities, in 30th ACM International Conference on Object Oriented Programming Systems Languages & Applications, Pittsburg, Pennsylvania, United States.
Showstopper: The Partial CPU Load Tool
Podzimek Andrej, Chen Lydia Y., Bulej Lubomír, Binder Walter, Tůma Petr (2014), Showstopper: The Partial CPU Load Tool, in Proc. 22nd Intl. Symp. on Modeling, Analysis & Simulation of Computer and Telecommunication Systems, Paris, France.
Comprehensive Multi-platform Dynamic Program Analysis for the Java and Dalvik Virtual Machines
Zheng Yudi, Sun Haiyang, Bulej Lubomír, Tůma Petr, Binder Walter (2014), Comprehensive Multi-platform Dynamic Program Analysis for the Java and Dalvik Virtual Machines, in Proc. Int'l Conf. on Principles and Practices of Programming on the Java Platform, Cracow, Poland.
Custom full-coverage dynamic program analysis for Android
Sun Haiyang, Zheng Yudi, Bulej Lubomír, Binder Walter, Kell Stephen (2015), Custom full-coverage dynamic program analysis for Android, in ACM SIGPLAN Int'l Conf. on Systems, Programming, Languages and Applications: Software for Humanity.
Analyzing Distributed Multi-platform Java and Android Applications with ShadowVM
Sun Haiyang, Zheng Yudi, Bulej Lubomír, Kell Stephen, Binder Walter (accepted), Analyzing Distributed Multi-platform Java and Android Applications with ShadowVM, in 13th Asian Symposium on Programming Languages and Systems.
Comprehensive Multi-Platform Dynamic Program Analysis for the Java and Dalvik Virtual Machines
Binder Walter, Zheng Yudi, Bulej Lubomir, Sun Haiyang, Tuma Petr (accepted), Comprehensive Multi-Platform Dynamic Program Analysis for the Java and Dalvik Virtual Machines, in Software Engineering 2015, Dresden, Germany.
Comprehensive Multi-platform Dynamic Program Analysis for the Java and Dalvik Virtual Machines
Zheng Yudi, Kell Stephen, Bulej Lubomír, Sun Haiyang, Binder Walter (accepted), Comprehensive Multi-platform Dynamic Program Analysis for the Java and Dalvik Virtual Machines, in IEEE Software.
Polymorphic Bytecode Instrumentation
Binder Walter, Moret Philippe, Tanter Éric, Ansaloni Danilo (accepted), Polymorphic Bytecode Instrumentation, in Software: Practice and Experience, 0.
Workload Characterization of JVM Languages
Sarimbekov Aibek, Stadler Lukas, Bulej Lubomír, Sewe Andreas, Podzimek Andrej, Zheng Yudi, Binder Walter (accepted), Workload Characterization of JVM Languages, in Software: Practice and Experience.
Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency
Podzimek Andrej, Bulej Lubomír, Chen Lydia Y., Binder Walter, Tůma Petr (accepted), Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency, in Proceedings of the 15th IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing, Shenzhen, Guangdong, China.
A Programming Model and Framework for Comprehensive Dynamic Analysis on Android
Sun Haiyang, Zheng Yudi, Bulej Lubomír, Villazón Alex, Qi Zhengwei, Tůma Petr, Binder Walter (accepted), A Programming Model and Framework for Comprehensive Dynamic Analysis on Android, in Proceedings of the 14th International Conference on Modularity, Fort Collins, Colorado, USA.

Zusammenarbeit

Gruppe / Person Land
Felder der Zusammenarbeit
IBM Zurich Research Laboratory (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Forschungsinfrastrukturen
- Austausch von Mitarbeitern
Software Theory and Practice Group, Shanghai Jiao Tong University (Asien)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Forschungsinfrastrukturen
- Austausch von Mitarbeitern
Department of Distributed and Dependable Systems, Charles University (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Forschungsinfrastrukturen
- Austausch von Mitarbeitern
Institut für Systemsoftware, Johannes Kepler Universität Linz (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Forschungsinfrastrukturen
- Austausch von Mitarbeitern
Disney Research Zurich (DRZ) (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
Oracle Labs (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Forschungsinfrastrukturen
- Austausch von Mitarbeitern
Department of Informatics and Mathematical Modeling, Technical University of Denmark (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
Software Technology Group, TU Darmstadt (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Forschungsinfrastrukturen
PLEIAD Laboratory, Computer Science Department, University of Chile (Südamerika)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Forschungsinfrastrukturen
- Austausch von Mitarbeitern

Wissenschaftliche Veranstaltungen

Aktiver Beitrag

Titel Art des Beitrags Titel des Artikels oder Beitrages Datum Ort Beteiligte Personen
OOPSLA'2015 Vortrag im Rahmen einer Tagung Performance Problems You Can Fix: A Dynamic Analysis of Memoization Opportunities 28.10.2015 Pittsburgh, Vereinigte Staaten von Amerika Gross Thomas; Della Toffola Luca
OOPSLA'2015 Vortrag im Rahmen einer Tagung Accurate Profiling in the Presence of Dynamic Compilation 25.10.2015 Pittsburgh, Vereinigte Staaten von Amerika Zheng Yudi
OOPSLA'2015 Demo Vortrag im Rahmen einer Tagung Custom full-coverage dynamic program analysis for Android 25.10.2015 Pittsburgh, PA, USA, Vereinigte Staaten von Amerika Zheng Yudi
OOPSLA'2015 Vortrag im Rahmen einer Tagung Use at Your Own Risk: The Java Unsafe API in the Wild 25.10.2015 Pittsburgh, Vereinigte Staaten von Amerika Hauswirth Matthias; Mastrangelo Luis
Virtual Machine Meetup 2015 Vortrag im Rahmen einer Tagung Accurate Profiling of Dynamically Optimized Code 10.09.2015 Zurich, Schweiz Binder Walter
Truffle'2015 Vortrag im Rahmen einer Tagung Accurate Bytecode-level Profiling of Dynamically Optimized Code with Graal 07.07.2015 Prague, Tschechische Republik Binder Walter; Zheng Yudi
MODULARITY 2015 Vortrag im Rahmen einer Tagung A programming model and framework for comprehensive dynamic analysis on Android 16.03.2015 Fort Collins, Vereinigte Staaten von Amerika Zheng Yudi
CPC'15: Compilers for Parallel Computing Vortrag im Rahmen einer Tagung Detecting Anomalies in Concurrent Programs based on Dynamic Control Flow Changes 07.01.2015 London, Grossbritannien und Nordirland Gross Thomas
2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools Vortrag im Rahmen einer Tagung Efficient Code Management for Dynamic Multi-tiered Compilation Systems 23.09.2014 Cracow, Polen Gross Thomas
2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools Vortrag im Rahmen einer Tagung Comprehensive Multi-platform Dynamic Program Analysis for the Java and Dalvik Virtual Machines 23.09.2014 Cracow, Polen Binder Walter; Zheng Yudi
13th International Conference on Generative Programming: Concepts and Experiences Vortrag im Rahmen einer Tagung Automatic Locality-Friendly Interface Extension of Numerical Functions 15.09.2014 Västerås, Schweden Gross Thomas
Virtual Machine Meetup 2014 Vortrag im Rahmen einer Tagung Comprehensive Multi-Platform Dynamic Program Analysis for the Java and Dalvik VM 11.09.2014 Zurich, Schweiz Zheng Yudi; Binder Walter
ISSTA 2014 Proceedings, International Symposium on Software testing and Analysis Vortrag im Rahmen einer Tagung Performance Regression Testing of Concurrent Classes 21.07.2014 San Jose, Vereinigte Staaten von Amerika Gross Thomas
5th ACM/SPEC International Conference on Performance Engineering Vortrag im Rahmen einer Tagung On the Limits of Modeling Generational Garbage Collector Performance 22.03.2014 Dublin, Irland Binder Walter; Bulej Lubomir
7th ACM Workshop on Virtual Machines and Intermediate Languages Vortrag im Rahmen einer Tagung Characteristics of Dynamic JVM Languages 28.10.2013 Indianapolis, Indiana, Vereinigte Staaten von Amerika Sarimbekov Aibek
7th ACM Workshop on Virtual Machines and Intermediate Languages Vortrag im Rahmen einer Tagung Dynamic Optimization of Bytecode Instrumentation 28.10.2013 Indianapolis, Indiana, Vereinigte Staaten von Amerika Zheng Yudi
12th International Conference on Generative Programming: Concepts & Experiences Vortrag im Rahmen einer Tagung ShadowVM: Robust and Comprehensive Dynamic Analysis for the Java Platform 27.10.2013 Indianapolis, Indiana, Vereinigte Staaten von Amerika Zheng Yudi
29th IEEE International Conference on Software Maintenance Vortrag im Rahmen einer Tagung An Automation-assisted Empirical Study on Lock Usage for Concurrent Programs 24.09.2013 Eindhoven, Niederlande Zheng Yudi
27th European Conference on Object-Oriented Programming Vortrag im Rahmen einer Tagung Enabling Modularity and Re-use in Dynamic Program Analysis Tools for the Java Virtual Machine 01.07.2013 Montpellier, Frankreich Binder Walter; Zheng Yudi
SYSTOR 2013 Einzelvortrag Big Data - Little Software? 01.07.2013 Haifa, Israel Gross Thomas
11th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering Vortrag im Rahmen einer Tagung A Comprehensive Toolchain for Workload Characterization Across JVM Languages 20.06.2013 Seattle, Washington, Vereinigte Staaten von Amerika Bulej Lubomir; Zheng Yudi; Sarimbekov Aibek; Kell Stephen
11th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering Vortrag im Rahmen einer Tagung ShadowData: Shadowing Heap Objects in Java 20.06.2013 Seattle, Washington, Vereinigte Staaten von Amerika Vitásek Matej
22nd Australian Software Engineering Conference Vortrag im Rahmen einer Tagung Productive Development of Dynamic Program Analysis Tools with DiSL 07.06.2013 Melbourne, Australien Sarimbekov Aibek
4th ACM/SPEC International Conference on Performance Engineering Vortrag im Rahmen einer Tagung Introduction to Dynamic Program Analysis with DiSL 21.04.2013 Prague, Tschechische Republik Sarimbekov Aibek; Bulej Lubomir; Binder Walter; Zheng Yudi
12th Annual International Conference on Aspect-Oriented Software Development Vortrag im Rahmen einer Tagung Comparison of Instrumentation Techniques for Dynamic Program Analysis on the Java Virtual Machine 24.03.2013 Fukuoka, Japan Sarimbekov Aibek; Binder Walter
8th Workshop on Bytecode Semantics, Verification, Analysis and Transformation Vortrag im Rahmen einer Tagung Java Bytecode Instrumentation - Reconciling Developer Productivity 23.03.2013 Rome, Italien Sarimbekov Aibek
10th Asian Symposium on Programming Languages and Systems Vortrag im Rahmen einer Tagung Java Bytecode Instrumentation Made Easy: The DiSL Framework for Dynamic Program Analysis 11.12.2012 Kyoto, Japan Binder Walter; Sarimbekov Aibek; Zheng Yudi
6th ACM Workshop on Virtual Machines and Intermediate Languages Vortrag im Rahmen einer Tagung The JVM is not Observable Enough (and what to do about it) 21.10.2012 Tucson, Arizona, Vereinigte Staaten von Amerika Kell Stephen; Binder Walter
2012 International Symposium on Memory Management Vortrag im Rahmen einer Tagung new Scala() instanceof Java: a Comparison of the Memory Behaviour of Java and Scala Programs 15.06.2012 Beijing, China Binder Walter; Sarimbekov Aibek
11th International Conference on Software Composition Vortrag im Rahmen einer Tagung Challenges for Refinement and Composition of Instrumentations: Position Paper 31.05.2012 Prague, Tschechische Republik Zheng Yudi; Binder Walter; Sarimbekov Aibek
50th International Conference on Objects, Models, Components, Patterns Vortrag im Rahmen einer Tagung Turbo DiSL: Partial Evaluation for High-Level Bytecode Instrumentation 28.05.2012 Prague, Tschechische Republik Binder Walter; Zheng Yudi; Sarimbekov Aibek


Selber organisiert

Titel Datum Ort
13th International Workshop on Dynamic Analysis 26.10.2015 Pittsburgh, Vereinigte Staaten von Amerika
13th International Conference on Modularity 22.04.2014 Lugano, Schweiz

Kommunikation mit der Öffentlichkeit

Kommunikation Titel Medien Ort Jahr
Neue Medien (Web, Blogs, Podcasts, NewsFeed, usw.) New Tool Accepted: DiSL SPEC Research Group Website International 2013
Print (Buch, Brochuren, Infoblätter) SPEC Research Group Newsletter International 2013

Auszeichnungen

Titel Jahr
Third Place Award in ACM Student Research Competition 2013
Best Research Paper Award, 5th ACM/SPEC International Conference on Performance Engineering (ICPE) 2014
Distinguished Paper Award, 30th ACM/SIGPLAN International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA) 2015
Best Paper Runner-Up Award, 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID) 2015

Verbundene Projekte

Nummer Titel Start Förderungsinstrument
132663 CIAO: Composite Instrumentations And Optimizations for multicores 01.10.2010 Projektförderung (Abt. I-III)
133835 The Datacenter Observatory 01.10.2012 R'EQUIP
118016 FERRARI - Framework for Efficient Rewriting and Reification Applying Runtime Instrumentation 01.10.2007 Projektförderung (Abt. I-III)
141002 LoadOpt - Workload Characterization and Optimization for Multicore Systems 01.03.2013 Projektförderung (Abt. I-III)
162084 ARM: Advanced High-Performance, Power-Efficient and Application-Specific Resource Management for Big Data Science 01.03.2016 Südkorea

Abstract

As software systems grow in complexity and execution platforms become more and more sophisticated, it becomes harder and harder for a software engineer to understand, tune, or debug programs. Existing program analysis tools offer limited support, in part because there is a big gap between the abstractions provided by tools and the abstractions employed by software engineers. In this project, we explore a new approach to developing program analysis tools with considerably less programming effort. Our research will address the question: Can we raise the abstraction level for writing dynamic analysis tools, allowing software engineers to rapidly develop custom analysis tools, impairing neither expressiveness nor tool performance? Program analysis for object-oriented programming languages is difficult. On the one hand, the use of polymorphism, reflection, and dynamic code loading limits the applicability of static analysis in modern object-oriented programming languages. So dynamic program analysis is becoming increasingly important as it supports a wide range of software engineering tasks such as profiling, debugging, testing, program comprehension, and reverse engineering. On the other hand, dynamic program analysis is poorly supported by tools. Writing dynamic analysis tools requires in-depth expert knowledge of low-level techniques such as program instrumentation, and as a result, the process is tedious, time-consuming, and error-prone. Consequently, most software engineers do not write custom dynamic analysis tools but rely on a limited number of tools provided by third parties. Sometimes, the available analysis tools do not exactly meet the requirements of the software engineer, who may need to explore a specific feature of an application. Aspect-oriented programming (AOP) gives the programmer a powerful toolset to modify a program, but AOP systems may incur high execution overhead and at the same time overload the user with considerable details. The principal problem is that there is big gap between the (fixed) abstractions provided by the AOP languages and the (flexible) abstractions employed during program analysis. Some of the abstractions address a level that is too low (access to variables or fields whereas a programmer wants to analyze basic blocks or call chains), or there is no appropriate abstraction altogether (e.g., when investigating the timing behavior on a multicore system). To overcome these limitations, in this project we investigate the design and implementation of Gottardo, a novel domain-specific language (DSL) that is based on the modification mechanisms found in AOP and offers dedicated new features that are essential for the development of a wide range of efficient dynamic analysis tools. A DSL allows the user to customize analysis and offers an opportunity to restrict the collection of dynamic behavior and performance data to those parameters that are needed for a specific task. We focus on dynamic analysis for the Java Virtual Machine (JVM), because of its maturity and availability for a wide range of hardware platforms and operating systems. As many modern object-oriented programming languages such as Java, Scala, or JRuby rely on the JVM as execution platform, a wide range of applications and middleware - from application servers to applications on embedded devices - will benefit from the results of our research. We will study how to raise the level of abstraction in the formulation of analysis tasks to significantly reduce the effort of tool development. In particular, we will investigate DSL constructs for formulating queries relating state and behavior of program executions, for validating program behavior based on abstract, formal models, for composing program behavior visualizations for program understanding, for differential performance analysis, and for analyzing the behavior of distributed applications. These high-level language constructs will provide further opportunities for automatically optimizing and parallelizing the analysis. The goal of this research is to study how to enable developers to formulate their own dynamic analyses, using a common language that is expressive enough to cover many of the questions about the behavior and performance of modern programs, simple enough for developers to learn, and efficient enough to be useful for debugging and performance analysis. As this project will elaborate new foundations for dynamic program analysis and promises a substantial advance over the current state-of-the-art in the field, a collaborative approach to research is essential in order to leverage the complementary expertise of three Swiss research groups that have long track records in the field. Thanks to this tightly coordinated joint effort, the project promises innovations with high impact in academic research, in industrial development, and in education.