Designing Code Analysis Frameworks (DECAF @ ISSTA'16)
Call for Participation
Designing a code-analysis framework is not an easy task. Design decisions that framework builders took more than a decade ago are still affecting the way many researchers implement their static analyses today. However, modern software systems are often heterogeneous and gigantic in size, employing many programming languages and APIs. Further, modern program analyses tend to be user-driven and interactive, as opposed to traditional program analyses that were more targeted towards whole-program optimizations. As analysis framework authors, we have recently been discussing the various strengths and weaknesses of our systems regarding the needs of modern analyses and analyzed software systems. One idea expressed was perhaps to start over with a new analysis framework that could incorporate into its design all the lessons we have learnt from current frameworks.
Expanding on that theme, we would like to gather the minds behind various code-analysis frameworks (e.g. Soot, Wala, Doop, Chord, and OPAL) for two primary purposes. The first is to discuss the lessons they have learned throughout the process of designing and then using those frameworks. The second is to plan the future, as a community of users of these frameworks, by identifying our wish-list if we are about to design our ideal code-analysis framework, and to discuss conflicting goals and tradeoffs.
Specifically, we invite those of us who build core static-analysis infrastructure to present core ideas and lessons learnt from their systems. The goal is to have informal talks to highlight what has worked well and the lessons that we could learn from each other. If you are interested, please send your talk proposal (talk title, talk abstract, and short bio of speaker) to Deepika Chhillar by May 10.
Important Dates
- Submissions:
Tuesday, May 10, 2016 - Notification:
Tuesday, May 17, 2016 - Workshop Date:
Sunday, July 17, 2016 - Venue: CISPA building, Saarland University, Saarbrücken, Germany (co-located with ISSTA ‘16)
Organizing Committee
- Karim Ali, TU Darmstadt
- Eric Bodden, Paderborn University & Fraunhofer IEM
- Julian Dolby, IBM Research
- Yannis Smaragdakis, University of Athens
Talk Format
The main goal of DECAF is to have an interactive discussion amongst the members of our community about the lessons we have all learned building code analysis frameworks. Therefore, the regular conference-style one-sided presentations wouldn’t do it for us! DECAF is adopting the Chess-timer style for its talks. That style was first introduced by Curry-On @ ECOOP '16. At DECAF though, all the talks are chess-timer talks, where speakers are given 15 minutes of solo-speaking, and 10-15 minutes of discussion time (depending on the assigned slot). A DECAF organizer will operate a chess-timer (using this Chess Clock iPad app) during the presentation switching between both timers (e.g., deducting from the discussion time budget when the speaker is interrupted by a question from the audience).
Program
8:25 - 8:30 — Welcome | |
8:30 - 11:00 — Session I | |
Chair: Julian Dolby | |
8:30 - 9:00 | Plan for change! Or how a lack of modularity hinders Soot to reach its true potential |
Eric Bodden | |
9:00 - 9:30 (Cancelled) | Modularization of Static Analyses, or Decoupling Strongly Dependent Static Analyses |
Michael Eichberg | |
9:30 - 10:00 | The Parfait Static Code Analysis Framework — Lessons Learnt |
Cristina Cifuentes | |
10:00 - 10:30 | Experiences with and plans for Rascal; a DSL for software analysis and transformation |
Paul Klint | |
10:30 - 11:00 | Unified Points-To and Information-Flow analysis |
Neville Grech | |
11:00 - 11:20 | Coffee Break |
11:20 - 13:00 — Session II | |
Chair: Karim Ali | |
11:20 - 11:50 | Doop: the Latest |
Yannis Smaragdakis | |
11:50 - 12:20 | Challenges in designing scalable declarative program analysis frameworks |
François Gauthier | |
12:20 - 12:50 | Analysis of Java and JavaScript with WALA |
Julian Dolby | |
13:00 - 14:00 | Lunch |
14:00 - 15:40 — Session III | |
Chair: Eric Bodden | |
14:00 - 14:25 | The tale of two source-code analysis tools: Learning and experiences |
Tushar Sharma | |
14:25 - 14:50 | Pointer Analysis for C/C++ with cclyzer |
George Balatsouras | |
14:50 - 15:15 | Practical analyses for refactoring tools |
Simon Thompson | |
15:15 - 15:40 | An Experience Report: Efficient Analysis using Soufflé |
Cristina Cifuentes | |
15:40 - 16:00 | Coffee Break |
16:00 - 17:00 — Open Discussion | |
Chair: Yannis Smaragdakis |