Please use this identifier to cite or link to this item:

TitleFrom source code identifiers to natural language terms
Author(s)Carvalho, Nuno Alexandre Ramos
Almeida, J. J.
Henriques, Pedro Rangel
Varanda, Maria João
KeywordsProgram comprehension
Natural language processing
Identifier splitting
Issue date2015
JournalJournal of Systems and Software
Abstract(s)Program comprehension techniques often explore program identifiers, to infer knowledge about programs. The relevance of source code identifiers as one relevant source of information about programs is already established in the literature, as well as their direct impact on future comprehension tasks. Most programming languages enforce some constrains on identifiers strings (e.g., white spaces or commas are not allowed). Also, programmers often use word combinations and abbreviations, to devise strings that represent single, or multiple, domain concepts in order to increase programming linguistic efficiency (convey more semantics writing less). These strings do not always use explicit marks to distinguish the terms used (e.g., CamelCase or underscores), so techniques often referred as hard splitting are not enough. This paper introduces Lingua::IdSplitter a dictionary based algorithm for splitting and expanding strings that compose multi-term identifiers. It explores the use of general programming and abbreviations dictionaries, but also a custom dictionary automatically generated from software natural language content, prone to include application domain terms and specific abbreviations. This approach was applied to two software packages, written in C, achieving a f-measure of around 90% for correctly splitting and expanding identifiers. A comparison with current state-of-the-art approaches is also presented.
AccessOpen access
Appears in Collections:CAlg - Artigos em revistas internacionais/Papers in international journals

Files in This Item:
File Description SizeFormat 
1-s2.0-S0164121214002179-main.pdf1,26 MBAdobe PDFView/Open

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID