Datasets, benchmarks, & tools 🛠️

This page aims to list in a convenient manner all the artifacts of my software engineering research that can be directly reused. This includes various datasets (for training models or for studying further), benchmarks for evaluation, and tools for different aspects of software engineering research.

Datasets & benchmarks

With the advent of AI, benchmarks left the halls of academia and became mainstream in all conversations about technology. From the very start, JetBrains Research had a very open policy about publishing data — we basically published everything we were legally allowed to. Because of that, quite a few datasets and benchmarks accumulated that I had something to do with.

Long Code Arena

A suite of benchmarks for code-related tasks with large contexts, up to a whole code repository. It currently spans six different tasks and contains six datasets.

Data Paper pre-print

Tools

In my research, I have personally developed and maintained only one tool: Buckwheat, a multi-language tokenizer for extracting identifiers from source code. However, I participated in the development of several other tools or applied them for the analysis of large corpora of code.

AntiCopyPaster

A plugin for IntelliJ IDEA that tracks the pasting of code inside the IDE and suggests appropriate Extract Method refactorings to combat the propagation of duplicates.

Tool Paper Paper pre-print

Buckwheat

A multi-language tokenizer for extracting identifiers from source code.

Tool

PythonChangeMiner

A tool for creating fine-grained program dependence graphs (fgPDG) for Python code, creating change graphs from them, and mining these graphs for change patterns.

Tool Paper pre-print

Revizor

A plugin for PyCharm that takes the recurrent change patterns and highlights potential places for their application in the developer’s code editor.

Tool Video Paper Paper pre-print