12 papers · ranked by Valyu relevance
Eduardo Guerra, Everaldo Mariano Gomes, Jeferson Ferreira, Igor Wiese + 3 more
'Igor Wiese' 'Phyllipe Lima' 'Marco Aurélio Gerosa' 'Paulo Meirelles'] Context: Code annotations have gained widespread popularity in programming languages, offering developers the ability to attach metadata to code elements to define custom behaviors. Many modern frameworks and APIs use annotations to keep integration…
Ziyu Yao, Jayavardhan Reddy Peddamail, Huan Sun
To accelerate software development, much research has been performed to help people understand and reuse the huge amount of available code resources. Two important tasks have been widely studied: code retrieval, which aims to retrieve code snippets relevant to a given natural language query from a code base, and code…
Edward Misback, Erik Vank, Zachary Tatlock, Steven Tanimoto
When annotation data is stored along with code in the repository, teams immediately gain shared context, and annotations naturally follow version control history. However, such sharing also means that annotations become part of the codebase's footprint and could become a source of merge conflicts. This decision also…
Phyllipe Lima, Jorge Melegati, Everaldo Gomes, Nathalya Stefhany Pereira + 2 more
'Nathalya Stefhany Pereira' 'Eduardo Guerra' 'Paulo Meirelles'] Context: Code annotations is a widely used feature in Java systems to configure custom metadata on programming elements. Their increasing presence creates the need for approaches to assess and comprehend their usage and distribution. In this context…
Matúš Sulír, Milan Nosáľ, Jaroslav Porubän
A concern can be characterized as a developer's intent behind a piece of code, often not explicitly captured in it. We discuss a technique of recording concerns using source code annotations (concern annotations). Using two studies and two controlled experiments, we seek to answer the following 3 research questions: 1)…
Zhongxing Yu, Chenggang Bai, Lionel Seinturier, Martin Monperrus
—Annotations have been formally introduced into Java since Java 5. Since then, annotations have been widely used by the Java community for different purposes, such as compiler guidance and runtime processing. Despite the ever-growing use, there is still limited empirical knowledge about the actual usage of annotations…
Huaien Zhang, Yu Pei, Shuyun Liang, Shin Hwei Tan
Static analyzers can reason about the properties and behaviors of programs and detect various issues without executing them. Hence, they should extract the necessary information to understand the analyzed program well. Annotation has been a widely used feature for different purposes in Java since the introduction of…
Paul C. Attie, Anas Obeidat, Nathaniel Oh, Ian Yelle
We present the Code Documentation and Analysis Tool (CoDAT). CoDAT is a tool designed to maintain consistency between the various levels of code documentation, e.g. if a line in a code sketch is changed, the comment that documents the corresponding code is also changed. That is, comments are linked and updated so as to…
Amber Horvath, Michael Xieyang Liu, River Hendriksen, Connor Shannon + 4 more
'Emma Paterson' 'Kazi Jawad' 'Andrew Macvean' 'Brad A. Myers'] Modern software development requires developers to find and effectively utilize new APIs and their documentation, but documentation has many well-known issues. Despite this, developers eventually overcome these issues but have no way of sharing what they…
Edward Misback, Zachary Tatlock, Steven L. Tanimoto
Text documents, including programs, typically have human-readable semantic structure. Historically, programmatic access to these semantics has required explicit in-document tagging. Especially in systems where the text has an execution semantics, this means it is an opt-in feature that is hard to support properly.…
Matúš Sulír, Jaroslav Porubän, Ondrej Zoricak
—Traditionally, we have two possibilities to design tools for program comprehension and analysis. The first option is to create a standalone program, independent of any source code editor. This way, the act of source code editing is separated from the act of viewing the code analysis results. The second option is to…
Zachary Eberhart, Alexander LeClair, Collin McMillan
—Summary descriptions of subroutines are short (usually one-sentence) natural language explanations of a subroutine's behavior and purpose in a program. These summaries are ubiquitous in documentation, and many tools such as JavaDocs and Doxygen generate documentation built around them. And yet, extracting summaries…