[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2823363.2823366acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
short-paper

Ayudante: identifying undesired variable interactions

Published: 26 October 2015 Publication History

Abstract

A common programming mistake is for incompatible variables to interact, e.g., storing euros in a variable that should hold dollars, or using an array index with the wrong array. This paper proposes a novel approach for identifying undesired interactions between program variables. Our approach uses two different mechanisms to identify related variables. Natural language processing (NLP) identifies variables with related names that may have related semantics. Abstract type inference (ATI) identifies variables that interact with each other. Any discrepancies between these two mechanisms may indicate a programming error. We have implemented our approach in a tool called Ayudante. We evaluated Ayudante using two open-source programs: the Exim mail server and grep. Although these programs have been extensively tested and in deployment for years, Ayudante’s first report for grep revealed a programming mistake.

References

[1]
Wordnets in the World. http://globalwordnet.org/wordnetsin-the-world/.
[2]
The R Project for Statistical Computing. https://www.r-project. org/.
[3]
"Units of Measure (F#)". https://msdn.microsoft.com/en-us/ library/dd233243.aspx.
[4]
V. Arnaoudova, L. Eshkevari, R. Oliveto, Y.-G. Gueheneuc, and G. Antoniol. Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault Proneness. In ICSM, 2010.
[5]
H. Baker. Unify and conquer (garbage, updating, aliasing, ...). In LFP, pages 218–226, June 1990.
[6]
F. Deissenboeck and M. Pizka. Concise and Consistent Naming. Software Quality Journal, 14(3):261–282, 2006.
[7]
L. Guerrouj, P. Galinier, Y.-G. Guéhéneuc, G. Antoniol, and M. D. Penta. Tris: A fast and accurate identifiers splitting and expansion algorithm. In WCRE, 2012.
[8]
P. J. Guo, J. H. Perkins, S. McCamant, and M. D. Ernst. Dynamic Inference of Abstract Types. In ISSTA, 2006.
[9]
M. Halkidi, Y. Batistakis, and M. Vazirgiannis. On clustering validation techniques. J. of Intelligent Information Systems, 17(2):107–145, 2001.
[10]
A. Kilgarriff. BNC database and word frequency lists. http://www. kilgarriff.co.uk/bnc-readme.html.
[11]
D. Lawrie, C. Morrell, H. Feild, and D. Binkley. Effective Identifier Names for Comprehension and Memory. Innovations in Systems and Software Engineering, 3(4), 2007.
[12]
D. Lawrie, D. Binkley, and C. Morrell. Normalizing Source Code Vocabulary. In WCRE, 2010.
[13]
V. Levenshtein. Binary Codes Capable of Correcting Deletions, Insertions and Reversals, 1966.
[14]
J. MacQueen. Some methods for classification and analysis of multivariate observations. In Proc. of the fifth Berkeley symposium on mathematical statistics and probability, pages 281–297, 1967.
[15]
G. A. Miller. WordNet: a lexical database for English. Communications of the ACM, 38(11):39–41, 1995.
[16]
R. O’Callahan and D. Jackson. Lackwit: A Program Understanding Tool Based on Type Inference. In ICSE, 1997.
[17]
C. Simonyi. Hungarian Notation. https://msdn.microsoft.com/ en-us/library/aa260976%28VS.60%29.aspx.
[18]
Software Productivity Consortium. Ada 95 quality and style: Guidelines for professional programmers. Technical Report SPC-94093-CMC, Department of Defense Ada Joint Program Office, Oct. 1995.
[19]
Z. Wu and M. Palmer. Verb Semantics and Lexical Selection. In ACL, 1994.
[20]
Q. Yan and S. McCamant. Conservative Signed/Unsigned Type Inference for Binaries Using Minimum Cut. Technical report, Dept. of Comp. Sci. & Eng., U. of Minnesota, Jan. 2014.

Cited By

View all
  • (2021)PHYSFRAME: type checking physical frames of reference for robotic systemsProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468608(45-56)Online publication date: 20-Aug-2021
  • (2018)RefiNym: using names to refine typesProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236042(107-117)Online publication date: 26-Oct-2018
  • (2018)Phys: probabilistic physical unit assignment and inconsistency detectionProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236035(563-573)Online publication date: 26-Oct-2018

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
WODA 2015: Proceedings of the 13th International Workshop on Dynamic Analysis
October 2015
38 pages
ISBN:9781450339094
DOI:10.1145/2823363
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 October 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. NLP
  2. Undesired variable interactions
  3. natural language processing
  4. testing

Qualifiers

  • Short-paper

Conference

SPLASH '15
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2021)PHYSFRAME: type checking physical frames of reference for robotic systemsProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468608(45-56)Online publication date: 20-Aug-2021
  • (2018)RefiNym: using names to refine typesProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236042(107-117)Online publication date: 26-Oct-2018
  • (2018)Phys: probabilistic physical unit assignment and inconsistency detectionProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236035(563-573)Online publication date: 26-Oct-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media