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 Karim Ali 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

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).


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 Slides
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 Slides
10:00 - 10:30 Experiences with and plans for Rascal; a DSL for software analysis and transformation
Paul Klint Slides
10:30 - 11:00 Unified Points-To and Information-Flow analysis
Neville Grech Slides
11:00 - 11:20 Coffee Break
11:20 - 13:00 — Session II
Chair: Karim Ali
11:20 - 11:50 Doop: the Latest
Yannis Smaragdakis Slides
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 Slides
14:25 - 14:50 Pointer Analysis for C/C++ with cclyzer
George Balatsouras Slides
14:50 - 15:15 Practical analyses for refactoring tools
Simon Thompson Slides
15:15 - 15:40 An Experience Report: Efficient Analysis using Soufflé
Cristina Cifuentes Slides
15:40 - 16:00 Coffee Break
16:00 - 17:00 — Open Discussion
Chair: Yannis Smaragdakis