A Language-Parametric Toolchain for Mining Idiomatic Code Patterns
This demonstration shows a code pattern mining toolchain being developed as part of the INTiMALS research project. This project’s goal is to research and deploy novel pattern mining algorithms in an industrial prototype of an intelligent modernisation assistant for legacy software systems. Ultimately, the assistant should pro-actively recommend software engineers source code modernisation actions by comparing their current development efforts with insights gained by treating source code repositories as data. The current toolchain allows to mine for previously unknown patterns in the system’s source code to reveal programming idioms, structural code regularities and coding conventions. This is done in a language-independent manner and we have already succesfully mined Java and COBOL code. Discovered patterns and their matches can then be interactively explored in a graphical pattern browser.
In the demo, we will first give a brief overview of the toolchain and how it allows for language parametricity. This is followed by diving in to a typical pattern exploration session, applied to the Java language and using JHotdraw as an example system. We will discuss how the pattern miner can be parametrized to reveal different kinds of patterns. Then we will interactively explore the results of mining and show how the pattern browser allows us to get an understanding of the patterns found by the miner.
The intended audience is programmers interested in seeing how mining can help them find patterns in their source, as well as pattern mining experts that wish to see a novel application and customization of pattern mining techniques.
Wed 3 Apr
|13:45 - 14:15|
Johan FabryRaincode Labs, Belgium, Vadim ZaytsevRaincode Labs, Belgium, Kim MensUniversité Catholique de Louvain, Belgium, Siegfried Nijssen UC Louvain, Hoang Son PhamUC Louvain, Coen De RooverVrije Universiteit Brussel, Dario Di NucciVrije Universiteit Brussel, Tim MolderezVrije Universiteit Brussel
|14:15 - 14:45|
Didier VernaEPITA / LRDE
|14:45 - 15:30|