English
Related papers

Related papers: Recommending Variable Names for Extract Local Vari…

200 papers

Source code processing heavily relies on the methods widely used in natural language processing (NLP), but involves specifics that need to be taken into account to achieve higher quality. An example of this specificity is that the semantics…

Software Engineering · Computer Science 2021-04-28 Nadezhda Chirkova

Variable Elimination (VE) is a classical exact inference algorithm for probabilistic graphical models such as Bayesian Networks, computing the marginal distribution of a subset of the random variables in the model. Our goal is to understand…

Logic in Computer Science · Computer Science 2025-01-28 Thomas Ehrhard , Claudia Faggian , Michele Pagani

Code completion is one of the killer features of Integrated Development Environments (IDEs), and researchers have proposed different methods to improve its accuracy. While these techniques are valuable to speed up code writing, they are…

Software Engineering · Computer Science 2021-03-09 Fengcai Wen , Emad Aghajani , Csaba Nagy , Michele Lanza , Gabriele Bavota

Developers must comprehend the code they will maintain, meaning that the code must be legible and reasonably self-descriptive. Unfortunately, there is still a lack of research and tooling that supports developers in understanding their…

Software Engineering · Computer Science 2021-07-20 Anthony Peruma , Venera Arnaoudova , Christian D. Newman

Reusing code is a common practice in software development: It helps developers speedup the implementation task while also reducing the chances of introducing bugs, given the assumption that the reused code has been tested, possibly in…

Software Engineering · Computer Science 2022-08-17 Rosalia Tufano , Emad Aghajani , Gabriele Bavota

Despite the availability of refactoring as a feature in popular IDEs, recent studies revealed that developers are reluctant to use them, and still prefer the manual refactoring of their code. At JetBrains, our goal is to fully support…

Software Engineering · Computer Science 2021-07-20 Yaroslav Golubev , Zarina Kurbatova , Eman Abdullah AlOmar , Timofey Bryksin , Mohamed Wiem Mkaouer

Identifier names convey useful information about the intended semantics of code. Name-based program analyses use this information, e.g., to detect bugs, to predict types, and to improve the readability of code. At the core of name-based…

Machine Learning · Computer Science 2021-01-15 Yaza Wainakh , Moiz Rauf , Michael Pradel

The automatic generation of source code is one of the long-lasting dreams in software engineering research. Several techniques have been proposed to speed up the writing of new code. For example, code completion techniques can recommend to…

Software Engineering · Computer Science 2023-02-09 Matteo Ciniselli , Luca Pascarella , Emad Aghajani , Simone Scalabrino , Rocco Oliveto , Gabriele Bavota

We consider information retrieval when the data, for instance multimedia, is coputationally expensive to fetch. Our approach uses "information filters" to considerably narrow the universe of possiblities before retrieval. We are especially…

Information Retrieval · Computer Science 2007-05-23 Neil C. Rowe

An inherently abstract nature of source code makes programs difficult to understand. In our research, we designed three techniques utilizing concrete values of variables and other expressions during program execution. RuntimeSearch is a…

Software Engineering · Computer Science 2018-12-20 Matúš Sulír

A compiler's optimizer operates over abstract syntax trees (ASTs), continuously applying rewrite rules to replace subtrees of the AST with more efficient ones. Especially on large source repositories, even simply finding opportunities for a…

Programming Languages · Computer Science 2021-04-09 Darshana Balakrishnan , Carl Nuessle , Oliver Kennedy , Lukasz Ziarek

Commit messages are the atomic level of software documentation. They provide a natural language description of the code change and its purpose. Messages are critical for software maintenance and program comprehension. Unlike documenting…

Software Engineering · Computer Science 2021-12-06 Eman Abdullah AlOmar , Jiaqian Liu , Kenneth Addo , Mohamed Wiem Mkaouer , Christian Newman , Ali Ouni , Zhe Yu

Program code contains functions, variables, and data structures that are represented by names. To promote human understanding, these names should describe the role and use of the code elements they represent. But the names given by…

Software Engineering · Computer Science 2022-09-08 Moshe Munk , Dror G. Feitelson

Providing appealing brand names to newly launched products, newly formed companies or for renaming existing companies is highly important as it can play a crucial role in deciding its success or failure. In this work, we propose a…

Computation and Language · Computer Science 2017-06-29 Gaurush Hiranandani , Pranav Maneriker , Harsh Jhamtani

We present a data mining approach for reducing the search space of local search algorithms in a class of binary integer programs including the set covering and partitioning problems. The quality of locally optimal solutions typically…

Data Structures and Algorithms · Computer Science 2017-05-15 Shunji Umetani

Real-world vector embeddings are usually associated with extra labels, such as attributes and keywords. Many applications require the nearest neighbor search that contains specific labels, such as searching for product image embeddings…

Databases · Computer Science 2025-12-12 Mingyu Yang , Wenxuan Xia , Wentao Li , Raymond Chi-Wing Wong , Wei Wang

Research scientists increasingly rely on implementing software to support their research. While previous research has examined the impact of identifier names on program comprehension in traditional programming environments, limited work has…

Software Engineering · Computer Science 2025-07-23 Gunnar Larsen , Carol Wong , Anthony Peruma

By simply composing prompts, developers can prototype novel generative applications with Large Language Models (LLMs). To refine prototypes into products, however, developers must iteratively revise prompts by evaluating outputs to diagnose…

Human-Computer Interaction · Computer Science 2024-02-28 Tae Soo Kim , Yoonjoo Lee , Jamin Shin , Young-Ho Kim , Juho Kim

Automated test generation has become a key technique for ensuring software quality, particularly in modern API-based architectures. However, automatically generated test cases are typically assigned non-descriptive names (e.g., test0,…

Software Engineering · Computer Science 2025-12-02 Philip Garrett , Juan P. Galeotti , Andrea Arcuri , Alexander Poth , Olsi Rrjolli

The sound identification of refactoring opportunities is still an open problem in software engineering. Recent studies have shown the effectiveness of machine learning models in recommending methods that should undergo different refactoring…

Software Engineering · Computer Science 2021-07-23 David van der Leij , Jasper Binda , Robbert van Dalen , Pieter Vallen , Yaping Luo , Maurício Aniche