Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Alexey Svyatkovskiy

dblp:198/0454 · DBLP profile ↗
← Back
17ranked-venue papers
5as first author
13since 2021 · last 2023
0000-0001-7714-4481ORCID · reported

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 10 · 3 first-author · 9 since 2021Artificial intelligence and machine learning · 7 · 2 first-author · 4 since 2021Databases, data management, data science and information retrieval · 4 · 3 first-author · 2 since 2021Applied, interdisciplinary, general and emerging computing · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
13 papers
Program synthesis and code generation · 43% Software maintenance and evolution · 23% Debugging and program repair · 14%
Artificial intelligence
3 papers
Language models and text generation · 75% Representation and self-supervised learning · 25%
Databases, data mining, and information retrieval
1 paper
Information retrieval · 100%

Topics — the 23 heaviest of 25, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program synthesis and code generation
code generation with language models
2.752023
InferFix: End-to-End Program Repair with LLMs · ESEC/SIGSOFT FSE 2023
Exploring and evaluating personalized models for code generation · ESEC/SIGSOFT FSE 2022
Automating code review activities by large-scale pre-training · ESEC/SIGSOFT FSE 2022
Program synthesis and code generation
code completion
2.042022
Learning to Complete Code with Sketches · ICLR 2022
ReACC: A Retrieval-Augmented Code Completion Framework · ACL (1) 2022
IntelliCode compose: code generation using transformer · ESEC/SIGSOFT FSE 2020
Software maintenance and evolution › software merging
merge conflict resolution
1.222023
DeepMerge: Learning to Merge Programs · IEEE Trans. Software Eng. 2023
Program merge conflict resolution via neural transformers · ESEC/SIGSOFT FSE 2022
Compilers and program optimization
code generation
1.122022
Exploring and evaluating personalized models for code generation · ESEC/SIGSOFT FSE 2022
Program merge conflict resolution via neural transformers · ESEC/SIGSOFT FSE 2022
Empirical software engineering
collaborative software development
0.822023
Program merge conflict resolution via neural transformers · ESEC/SIGSOFT FSE 2022
DeepMerge: Learning to Merge Programs · IEEE Trans. Software Eng. 2023
Debugging and program repair
automated program repair
0.712023
InferFix: End-to-End Program Repair with LLMs · ESEC/SIGSOFT FSE 2023
Debugging and program repair › automated program repair
LLM-based program repair
0.712023
InferFix: End-to-End Program Repair with LLMs · ESEC/SIGSOFT FSE 2023
Debugging and program repair
program repair
0.712023
AdaptivePaste: Intelligent Copy-Paste in IDE · ESEC/SIGSOFT FSE 2023
Software maintenance and evolution
software merging
0.712023
DeepMerge: Learning to Merge Programs · IEEE Trans. Software Eng. 2023
Natural language and speech › Language models and text generation
code language models
0.722021
GraphCodeBERT: Pre-training Code Representations with Data Flow · ICLR 2021
Long-Range Modeling of Source Code Files with eWASH: Extended Window Access by Syntax Hierarchy · EMNLP (1) 2021
Information retrieval › document retrieval › domain-specific retrieval
code search
0.612022
ReACC: A Retrieval-Augmented Code Completion Framework · ACL (1) 2022
Software maintenance and evolution › code review
automated code review
0.612022
Automating code review activities by large-scale pre-training · ESEC/SIGSOFT FSE 2022
Software maintenance and evolution
code review
0.612022
Automating code review activities by large-scale pre-training · ESEC/SIGSOFT FSE 2022
Program synthesis and code generation › code completion
retrieval-augmented code completion
0.612022
ReACC: A Retrieval-Augmented Code Completion Framework · ACL (1) 2022
Machine learning › Representation and self-supervised learning
pre-training
0.512021
GraphCodeBERT: Pre-training Code Representations with Data Flow · ICLR 2021
Program analysis
code representation learning
0.512021
GraphCodeBERT: Pre-training Code Representations with Data Flow · ICLR 2021
Natural language and speech › Language models and text generation › text summarization › domain-specific summarization
code summarization
0.412020
PyMT5: multi-mode translation of natural language and Python code with transformers · EMNLP (1) 2020
Natural language and speech › Language models and text generation
text summarization
0.412020
PyMT5: multi-mode translation of natural language and Python code with transformers · EMNLP (1) 2020
Program synthesis and code generation
code generation from natural language
0.412020
PyMT5: multi-mode translation of natural language and Python code with transformers · EMNLP (1) 2020
Software maintenance and evolution › code recommendation
API recommendation
0.412019
Pythia: AI-assisted Code Completion System · KDD 2019
Program analysis
data flow analysis
0.212023
AdaptivePaste: Intelligent Copy-Paste in IDE · ESEC/SIGSOFT FSE 2023
Software testing
test generation
0.212022
Exploring and evaluating personalized models for code generation · ESEC/SIGSOFT FSE 2022
Software testing › test generation
unit test generation
0.212022
Exploring and evaluating personalized models for code generation · ESEC/SIGSOFT FSE 2022

Methods — techniques the papers use, named apart from their topics

transformer · 3.0pre-training · 1.6source code retriever · 1.1autoregressive language model · 1.1pointer network · 0.7machine learning · 0.7large language model · 0.7edit-aware embedding · 0.7deobfuscation pre-training · 0.7data flow analysis · 0.7syntax hierarchy · 0.5extended window access · 0.5dataflow · 0.5text-to-text transfer · 0.4
YearPublicationVenuePosition
2023 InferFix: End-to-End Program Repair with LLMs
abstract
Software development life cycle is profoundly influenced by bugs; their introduction, identification, and eventual resolution account for a significant portion of software development cost. This has motivated software engineering researchers and practitioners to propose different approaches for automating the identification and repair of software defects.
Matthew Jin, Syed Shahriar, Michele Tufano, Neel Sundaresan, Alexey Svyatkovskiy
ESEC/SIGSOFT FSE7
2023 AdaptivePaste: Intelligent Copy-Paste in IDE
abstract
In software development, it is common for programmers to copy-paste or port code snippets and then adapt them to their use case. This scenario motivates the code adaptation task – a variant of program repair which aims to adapt variable identifiers in a pasted snippet of code to the surrounding, preexisting context. However, no existing approach has been shown to effectively address this task. In this paper, we introduce AdaptivePaste, a learning-based approach to source code adaptation, based on transformers and a dedicated dataflow-aware deobfuscation pre-training task to learn meaningful representations of variable usage patterns. We demonstrate that AdaptivePaste can learn to adapt Python source code snippets with 67.8% exact match accuracy. We study the impact of confidence thresholds on the model predictions, showing the model precision can be further improved to 85.9% with our parallel-decoder transformer model in a selective code adaptation setting. To assess the practical use of AdaptivePaste we perform a user study among Python software developers on real-world copy-paste instances. The results show that AdaptivePaste reduces dwell time to nearly half the time it takes to port code manually, and helps to avoid bugs. In addition, we utilize the participant feedback to identify potential avenues for improvement.
Jinu Jang, Neel Sundaresan, Miltiadis Allamanis, Alexey Svyatkovskiy
ESEC/SIGSOFT FSE5
2023 DeepMerge: Learning to Merge Programs
abstract
In collaborative software development, program merging isthemechanism to integrate changes from multiple programmers. Merge algorithms in modern version control systems report a conflict when changes interfere textually. Merge conflicts require manual intervention and frequently stall modern continuous integration pipelines. Prior work found that, although costly, a large majority of resolutions involve re-arranging text without writing any new code. Inspired by this observation we propose thefirst data-driven approachto resolve merge conflicts with a machine learning model. We realize our approach in a toolDeepMergethat uses a novel combination of (i) an edit-aware embedding of merge inputs and (ii) a variation of pointer networks, to construct resolutions from input segments. We also propose an algorithm to localize manual resolutions in a resolved file and employ it to curate a ground-truth dataset comprising 8,719 non-trivial resolutions in JavaScript programs. Our evaluation shows that, on a held out test set,DeepMergecan predict correct resolutions for 37% of non-trivial merges, compared to only 4% by a state-of-the-art semistructured merge technique. Furthermore, on the subset of merges with upto 3 lines (comprising 24% of the total dataset),DeepMergecan predict correct resolutions with 78% accuracy.
Elizabeth Dinella, Todd Mytkowicz, Alexey Svyatkovskiy, Christian Bird, Mayur Naik, Shuvendu K. Lahiri
IEEE Trans. Software Eng.3
2022 ReACC: A Retrieval-Augmented Code Completion Framework
abstract
Code completion, which aims to predict the following code token(s) according to the code context, can improve the productivity of software development.Recent work has proved that statistical language modeling with transformers can greatly improve the performance in the code completion task via learning from large-scale source code datasets.However, current approaches focus only on code context within the file or project, i.e. internal context.Our distinction is utilizing "external" context, inspired by human behaviors of copying from the related code snippets when writing code.Specifically, we propose a retrieval-augmented code completion framework, leveraging both lexical copying and referring to code with similar semantics by retrieval.We adopt a stagewise training approach that combines a source code retriever and an auto-regressive language model for programming language.We evaluate our approach in the code completion task in Python and Java programming languages, achieving a state-of-the-art performance on CodeXGLUE benchmark.
Nan Duan 0001, Hojae Han, Daya Guo, Seung-won Hwang, Alexey Svyatkovskiy
ACL (1)6
2022 Generating Accurate Assert Statements for Unit Test Cases using Pretrained Transformers
abstract
Unit testing represents the foundational basis of the software testing pyramid, beneath integration and end-to-end testing. Automated software testing researchers have proposed a variety of techniques to assist developers in this time-consuming task.
Michele Tufano, Dawn Drain, Alexey Svyatkovskiy, Neel Sundaresan
AST3
2022 Learning to Complete Code with Sketches
Daya Guo, Alexey Svyatkovskiy, Jian Yin 0001, Nan Duan 0001, Marc Brockschmidt, Miltiadis Allamanis
ICLR2
2022 METHODS2TEST: A dataset of focal methods mapped to test cases
abstract
Unit testing is an essential part of the software development process, which helps to identify issues with source code in early stages of development and prevent regressions. Machine learning has emerged as viable approach to help software developers generate automated unit tests. However, generating reliable unit test cases that are semantically correct and capable of catching software bugs or unintended behavior via machine learning requires large, metadata-rich, datasets. In this paper we present Methods2Test: a large, supervised dataset of test cases mapped to corresponding methods under test (i.e., focal methods). This dataset contains 780,944 pairs of JUnit tests and focal methods, extracted from a total of 91,385 Java open source projects hosted on GitHub with licenses permitting re-distribution. The main challenge behind the creation of the Methods2Test was to establish a reliable mapping between a test case and the relevant focal method. To this aim, we designed a set of heuristics, based on developers' best practices in software testing, which identify the likely focal method for a given test case. To facilitate further analysis, we store a rich set of metadata for each method-test pair in JSON-formatted files. Additionally, we extract textual corpus from the dataset at different context levels, which we provide both in raw and tokenized forms, in order to enable researchers to train and evaluate machine learning models for Automated Test Generation. Methods2Test is publicly available at: https://github.com/microsoft/methods2test
Michele Tufano, Shao Kun Deng, Neel Sundaresan, Alexey Svyatkovskiy
MSR4
2022 Automating code review activities by large-scale pre-training
abstract
Code review is an essential part to software development lifecycle since it aims at guaranteeing the quality of codes. Modern code review activities necessitate developers viewing, understanding and even running the programs to assess logic, functionality, latency, style and other factors. It turns out that developers have to spend far too much time reviewing the code of their peers. Accordingly, it is in significant demand to automate the code review process. In this research, we focus on utilizing pre-training techniques for the tasks in the code review scenario. We collect a large-scale dataset of real-world code changes and code reviews from open-source projects in nine of the most popular programming languages. To better understand code diffs and reviews, we propose CodeReviewer, a pre-trained model that utilizes four pre-training tasks tailored specifically for the code review scenario. To evaluate our model, we focus on three key tasks related to code review activities, including code change quality estimation, review comment generation and code refinement. Furthermore, we establish a high-quality benchmark dataset based on our collected data for these three tasks and conduct comprehensive experiments on it. The experimental results demonstrate that our model outperforms the previous state-of-the-art pre-training approaches in all tasks. Further analysis show that our proposed pre-training tasks and the multilingual pre-training dataset benefit the model on the understanding of code changes and reviews.
Daya Guo, Nan Duan 0001, Shailesh Jannu, Grant Jenks, Deep Majumder, Jared Green, Alexey Svyatkovskiy, Shengyu Fu, Neel Sundaresan
ESEC/SIGSOFT FSE9
2022 Program merge conflict resolution via neural transformers
abstract
Collaborative software development is an integral part of the modern software development life cycle, essential to the success of large-scale software projects. When multiple developers make concurrent changes around the same lines of code, a merge conflict may occur. Such conflicts stall pull requests and continuous integration pipelines for hours to several days, seriously hurting developer productivity. To address this problem, we introduce MergeBERT, a novel neural program merge framework based on token-level three-way differencing and a transformer encoder model. By exploiting the restricted nature of merge conflict resolutions, we reformulate the task of generating the resolution sequence as a classification task over a set of primitive merge patterns extracted from real-world merge commit data. Our model achieves 63–68% accuracy for merge resolution synthesis, yielding nearly a 3× performance improvement over existing semi-structured, and 2× improvement over neural program merge tools. Finally, we demonstrate that MergeBERT is sufficiently flexible to work with source code files in Java, JavaScript, TypeScript, and C# programming languages. To measure the practical use of MergeBERT, we conduct a user study to evaluate MergeBERT suggestions with 25 developers from large OSS projects on 122 real-world conflicts they encountered. Results suggest that in practice, MergeBERT resolutions would be accepted at a higher rate than estimated by automatic metrics for precision and accuracy. Additionally, we use participant feedback to identify future avenues for improvement of MergeBERT.
Alexey Svyatkovskiy, Sarah Fakhoury, Negar Ghorbani, Todd Mytkowicz, Elizabeth Dinella, Christian Bird, Jinu Jang, Neel Sundaresan, Shuvendu K. Lahiri
ESEC/SIGSOFT FSE1
2022 Exploring and evaluating personalized models for code generation
abstract
Large Transformer models achieved the state-of-the-art status for Natural Language Understanding tasks and are increasingly becoming the baseline model architecture for modeling source code. Transformers are usually pre-trained on large unsupervised corpora, learning token representations and transformations relevant to modeling generally available text, and are then fine-tuned on a particular downstream task of interest. While fine-tuning is a tried-and-true method for adapting a model to a new domain -- for example, question-answering on a given topic -- generalization remains an on-going challenge. In this paper, we explore and evaluate transformer model fine-tuning for personalization. In the context of generating unit tests for Java methods, we evaluate learning to personalize to a specific software project using several personalization techniques. We consider three key approaches: (i) custom fine-tuning, which allows all the model parameters to be tuned; (ii) lightweight fine-tuning, which freezes most of the model's parameters, allowing tuning of the token embeddings and softmax layer only or the final layer alone; (iii) prefix tuning, which keeps model parameters frozen, but optimizes a small project-specific prefix vector. Each of these techniques offers a trade-off in total compute cost and predictive performance, which we evaluate by code and task-specific metrics, training time, and total computational operations. We compare these fine-tuning strategies for code generation and discuss the potential generalization and cost benefits of each in various deployment scenarios.
Andrei Zlotchevski, Dawn Drain, Alexey Svyatkovskiy, Colin B. Clement, Neel Sundaresan, Michele Tufano
ESEC/SIGSOFT FSE3
2021 Long-Range Modeling of Source Code Files with eWASH: Extended Window Access by Syntax Hierarchy
abstract
Colin Clement, Shuai Lu, Xiaoyu Liu, Michele Tufano, Dawn Drain, Nan Duan, Neel Sundaresan, Alexey Svyatkovskiy. Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing. 2021.
Colin B. Clement, Michele Tufano, Dawn Drain, Nan Duan 0001, Neel Sundaresan, Alexey Svyatkovskiy
EMNLP (1)8
2021 GraphCodeBERT: Pre-training Code Representations with Data Flow
Daya Guo, Shuo Ren 0002, Zhangyin Feng, Duyu Tang, Shujie Liu 0001, Nan Duan 0001, Alexey Svyatkovskiy, Shengyu Fu, Michele Tufano, Shao Kun Deng, Colin B. Clement, Dawn Drain, Neel Sundaresan, Jian Yin 0001, Daxin Jiang, Ming Zhou 0001
ICLR9
2021 Fast and Memory-Efficient Neural Code Completion
abstract
Code completion is one of the most widely used features of modern integrated development environments (IDEs). While deep learning has made significant progress in the statistical prediction of source code, state-of-the-art neural network models consume hundreds of megabytes of memory, bloating the development environment. We address this in two steps: first we present a modular neural framework for code completion. This allows us to explore the design space and evaluate different techniques. Second, within this framework we design a novel reranking neural completion model that combines static analysis with granular token encodings. The best neural reranking model consumes just 6 MB of RAM, - 19x less than previous models - computes a single completion in 8 ms, and achieves 90% accuracy in its top five suggestions.
Alexey Svyatkovskiy, Sebastian Lee, Anna Hadjitofi, Maik Riechert, Juliana Franco, Miltiadis Allamanis
MSR1
2020 PyMT5: multi-mode translation of natural language and Python code with transformers
abstract
Simultaneously modeling source code and natural language has many exciting applications in automated software development and understanding.Pursuant to achieving such technology, we introduce PYMT5, the PYTHON method text-to-text transfer transformer, which is trained to translate between all pairs of PYTHON method feature combinations: a single model that can both predict whole methods from natural language documentation strings (docstrings) and summarize code into docstrings of any common style.We present an analysis and modeling effort of a large-scale parallel corpus of 26 million PYTHON methods and 7.7 million method-docstring pairs, demonstrating that for docstring and method generation, PYMT5 outperforms similarlysized auto-regressive language models (GPT2) which were English pre-trained or randomly initialized.On the CODE-SEARCHNET test set, our best model predicts 92.1% syntactically correct method bodies, achieved a BLEU score of 8.59 for method generation and 16.3 for docstring * Corresponding author † Work done during a Microsoft internship generation (summarization), and achieved a ROUGE-L F-score of 24.8 for method generation and 36.7 for docstring generation.
Colin B. Clement, Dawn Drain, Jonathan Timcheck, Alexey Svyatkovskiy, Neel Sundaresan
EMNLP (1)4
2020 IntelliCode compose: code generation using transformer
abstract
In software development through integrated development environments (IDEs), code completion is one of the most widely used features. Nevertheless, majority of integrated development environments only support completion of methods and APIs, or arguments.
Alexey Svyatkovskiy, Shao Kun Deng, Shengyu Fu, Neel Sundaresan
ESEC/SIGSOFT FSE1
2019 Pythia: AI-assisted Code Completion System
abstract
In this paper, we propose a novel end-to-end approach for AI-assisted code completion called Pythia. It generates ranked lists of method and API recommendations which can be used by software developers at edit time. The system is currently deployed as part of Intellicode extension in Visual Studio Code IDE. Pythia exploits state-of-the-art large-scale deep learning models trained on code contexts extracted from abstract syntax trees. It is designed to work at a high throughput predicting the best matching code completions on the order of 100 ms.
Alexey Svyatkovskiy, Shengyu Fu, Neel Sundaresan
KDD1
2016 Large-scale text processing pipeline with Apache Spark
abstract
In this paper, we evaluate Apache Spark for a data-intensive machine learning problem. Our use case focuses on policy diffusion detection across the state legislatures in the United States over time. Previous work on policy diffusion has been unable to make an all-pairs comparison between bills due to computational intensity. As a substitute, scholars have studied single topic areas. We provide an implementation of this analysis workflow as a distributed text processing pipeline with Spark dataframes and Scala application programming interface. We discuss the challenges and strategies of unstructured data processing, data formats for storage and efficient access, and graph processing at scale.
Alexey Svyatkovskiy, Kosuke Imai, Mary Kroeger, Yuki Shiraito
IEEE BigData1