Reem S. Alsuhaibani

dblp:179/3368 · DBLP profile ↗
← Back
11ranked-venue papers
3as first author
5since 2021 · last 2025
0000-0002-6664-2810ORCID · corroborated

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

Software engineering, systems software and programming languages · 11 · 3 first-author · 5 since 2021
YearPublicationVenuePosition
2025 Scalar: A Part-of-Speech Tagger for Identifiers
abstract
The paper presents the Source Code Analysis and Lexical Annotation Runtime (SCALAR), a tool specialized for mapping (annotating) source code identifier names to their corresponding part-of-speech tag sequence (grammar pattern). SCALAR's internal model is trained using scikit-learn's GradientBoostingClassifier in conjunction with a manually-curated oracle of identifier names and their grammar patterns. This specializes the tagger to recognize the unique structure of the natural language used by developers to create all types of identifiers (e.g., function names, variable names etc.). SCALAR's output is compared with a previous version of the tagger, as well as a modern off-the-shelf part-of-speech tagger to show how it improves upon other taggers' output for annotating identifiers. The code is available on Github11https://github.com/SCANL/scanl_tagger
Christian D. Newman, Brandon Scholten, Sophia Testa, Joshua Behler, Syreen Banabilah, Michael L. Collard, Michael John Decker, Mohamed Wiem Mkaouer, Marcos Zampieri, Eman Abdullah AlOmar, Reem S. Alsuhaibani, Anthony Peruma, Jonathan I. Maletic
ICPC11
2025 On the structure and semantics of identifier names containing closed syntactic category words
abstract
Abstract Identifier names are crucial components of code, serving as primary clues for developers to understand program behavior. This paper investigates the linguistic structure of identifier names by extending the concept of grammar patterns, which represent the part-of-speech (PoS) sequences underlying identifier phrases. The specific focus is on closed syntactic categories (e.g., prepositions, conjunctions, determiners), which are rarely studied in software engineering despite their central role in general natural language. To study these categories, the Closed Category Identifier Dataset (CCID), a new manually annotated dataset of 1,275 identifiers drawn from 30 open-source systems, is constructed and presented. The relationship between closed-category grammar patterns and program behavior is then analyzed using grounded-theory-inspired coding, statistical, and pattern analysis. The results reveal recurring structures that developers use to express concepts such as control flow, data transformation, temporal reasoning, and other behavioral roles through naming. This work contributes an empirical foundation for understanding how linguistic resources encode behavior in identifier names and supports new directions for research in naming, program comprehension, and education.
Christian D. Newman, Anthony Peruma, Eman Abdullah AlOmar, Mahie Crabbe, Syreen Banabilah, Reem S. Alsuhaibani, Michael John Decker, Farhad Akhbardeh, Marcos Zampieri, Mohamed Wiem Mkaouer, Jonathan I. Maletic
Empir. Softw. Eng.6
2022 An approach to automatically assess method names
abstract
An approach is presented to automatically assess the quality of method names by providing a score and feedback. The approach implements ten method naming standards to evaluate the names. The naming standards are taken from work that validated the standards via a large survey of software professionals. Natural language processing techniques such as part-of-speech tagging, identifier splitting, and dictionary lookup are required to implement the standards. The approach is evaluated by first manually constructing a large golden set of method names. Each method name is rated by several developers and labeled as conforming to each standard or not. These ratings allow for comparing the results of the approach against expert assessment. Additionally, the approach is applied to several systems and the results are manually inspected for accuracy.
Reem S. Alsuhaibani, Christian D. Newman, Michael John Decker, Michael L. Collard, Jonathan I. Maletic
ICPC1
2022 An Ensemble Approach for Annotating Source Code Identifiers With Part-of-Speech Tags
abstract
This paper presents an ensemble part-of-speech tagging approach for source code identifiers. Ensemble tagging is a technique that uses machine-learning and the output from multiple part-of-speech taggers to annotate natural language text at a higher quality than the part-of-speech taggers are able to obtain independently. Our ensemble uses three state-of-the-art part-of-speech taggers: SWUM, POSSE, and Stanford. We study the quality of the ensemble’s annotations on five different types of identifier names: function, class, attribute, parameter, and declaration statement at the level of both individual words and full identifier names. We also study and discuss the weaknesses of our tagger to promote the future amelioration of these problems through further research. Our results show that the ensemble achieves 75 percent accuracy at the identifier level and 84-86 percent accuracy at the word level. This is an increase of +17% points at the identifier level from the closest independent part-of-speech tagger.
Christian D. Newman, Michael John Decker, Reem S. Alsuhaibani, Anthony Peruma, Mohamed Wiem Mkaouer, Satyajit Mohapatra, Tejal Vishnoi, Marcos Zampieri, Timothy J. Sheldon, Emily Hill 0001
IEEE Trans. Software Eng.3
2021 On the Naming of Methods: A Survey of Professional Developers
abstract
This paper describes the results of a large (+1100 responses) survey of professional software developers concerning standards for naming source code methods. The various standards for source code method names are derived from and supported in the software engineering literature. The goal of the survey is to determine if there is a general consensus among developers that the standards are accepted and used in practice. Additionally, the paper examines factors such as years of experience and programming language knowledge in the context of survey responses. The survey results show that participants very much agree about the importance of various standards and how they apply to names and that years of experience and the programming language has almost no effect on their responses. The results imply that the given standards are both valid and to a large degree complete. The work provides a foundation for automated method name assessment during development and code reviews.
Reem S. Alsuhaibani, Christian D. Newman, Michael John Decker, Michael L. Collard, Jonathan I. Maletic
ICSE1
2020 On the generation, structure, and semantics of grammar patterns in source code identifiers
Christian D. Newman, Reem S. Alsuhaibani, Michael John Decker, Anthony Peruma, Dishant Kaushik, Mohamed Wiem Mkaouer, Emily Hill 0001
J. Syst. Softw.2
2019 Applying Markov Models to Identify Grammatical Patterns of Function Identifiers
abstract
An empirical study to evaluate the effectiveness of using Markov chains in finding and predicting the grammatical patterns of function identifiers found in source code is presented. The study uses a specialized part-of-speech tagger to annotate function identifiers extracted from 20 C++ open-source systems. A dataset of 93K annotated unique function identifiers is created for analysis. The analysis includes using a first-order Markov chain to model part of speech tag sequences of the identifier names, using a probability transition matrix. The evaluation of the model is via a 10-fold cross validation over the entire set of annotated function identifier names. The preliminary results are promising in terms of applicability and accuracy. The model achieved an accuracy median of 91.53% in predicting the most common part of speech tag on a test set. Future work involves utilizing these results in creating a quality assessment and automatic repairing tool for source code function identifiers.
Reem S. Alsuhaibani
ICSME1
2019 An Empirical Study of Abbreviations and Expansions in Software Artifacts
abstract
Expanding abbreviations is an important text normalization technique used for the purpose of either increasing developer comprehension or supporting the application of natural-language-based tools for source code identifiers. This paper closely studies abbreviations and where their expansions occur in different software artifacts. Without abbreviation expansion, developers will spend more time in comprehending the code they need to update, and tools analyzing software may obtain weak or non-generalizable results. There are numerous techniques for expanding abbreviations, most of which struggle to reach an average expansion accuracy of 59-62% on general source code identifiers. In this paper, we reveal some characteristics of abbreviations and their expansions through an empirical study of 861 abbreviation-expansion pairs extracted from 5 open-source systems in addition to analyzing previous literature. We use these characteristics to identify how current approaches may be complementary and how their results should be reported in the future to help maximize both our understanding of how they compare with other expansion techniques and their reproducibility.
Christian D. Newman, Michael John Decker, Reem S. Alsuhaibani, Anthony Peruma, Dishant Kaushik, Emily Hill 0001
ICSME3
2019 An Open Dataset of Abbreviations and Expansions
abstract
We present a data set of abbreviations and expansions, derived from a set of five open source systems, for use by the research and development communities.
Christian D. Newman, Michael John Decker, Reem S. Alsuhaibani, Anthony Peruma, Dishant Kaushik, Emily Hill 0001
ICSME3
2019 Modeling the Relationship Between Identifier Name and Behavior
abstract
This paper presents the features of a model that relates the natural language found in identifiers with program semantics. The model takes advantage of part of speech information and static-analysis-based program models to understand how different types of statically-derived semantics correlates with the natural language meaning of identifiers.
Christian D. Newman, Anthony Peruma, Reem S. Alsuhaibani
ICSME3
2017 Lexical categories for source code identifiers
abstract
A set of lexical categories, analogous to part-of-speech categories for English prose, is defined for source-code identifiers. The lexical category for an identifier is determined from its declaration in the source code, syntactic meaning in the programming language, and static program analysis. Current techniques for assigning lexical categories to identifiers use natural-language part-of-speech taggers. However, these NLP approaches assign lexical tags based on how terms are used in English prose. The approach taken here differs in that it uses only source code to determine the lexical category. The approach assigns a lexical category to each identifier and stores this information along with each declaration. srcML is used as the infrastructure to implement the approach and so the lexical information is stored directly in the srcML markup as an additional XML element for each identifier. These lexical-category annotations can then be later used by tools that automatically generate such things as code summarization or documentation. The approach is applied to 50 open source projects and the soundness of the defined lexical categories evaluated. The evaluation shows that at every level of minimum support tested, categorization is consistent at least 79% of the time with an overall consistency (across all supports) of at least 88%. The categories reveal a correlation between how an identifier is named and how it is declared. This provides a syntax-oriented view (as opposed to English part-of-speech view) of developer intent of identifiers.
Christian D. Newman, Reem S. Alsuhaibani, Michael L. Collard, Jonathan I. Maletic
SANER2