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. This page aims to conveniently list all such tools.

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

Kotless

Kotlin serverless framework that aims to reduce the routine of serverless deployment creation by generating it straight from the code of the application itself.

Tool Video Paper Paper pre-print

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