skip to main content
10.1145/2414721.2414728acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Programming language evolution via source code query languages

Published: 21 October 2012 Publication History

Abstract

Programming languages evolve just like programs. Language features are added and removed, for example when programs using them are shown to be error-prone. When language features are modified, deprecated, removed or even deemed unsuitable for the project at hand, it is necessary to analyse programs to identify occurrences to refactor.
Source code query languages in principle provide a good way to perform this analysis by exploring codebases. Such languages are often used to identify code to refactor, bugs to fix or simply to understand a system better.
This paper evaluates seven Java source code query languages: Java Tools Language, Browse-By-Query, SOUL, JQuery, .QL, Jackpot and PMD as to their power at expressing queries required by several use cases (such as code idioms to be refactored).

References

[1]
BBQ. http://browsebyquery.sourceforge.net/.
[2]
Diamond and generic constructors. https://blogs.oracle.com/darcy/entry/project_coin_diamond_generic_constructors.
[3]
Findbugs. http://findbugs.sourceforge.net.
[4]
Jackpot. http://wiki.netbeans.org/Jackpot.
[5]
Java 8: support for more aggressive type-inference. http://mail.openjdk.java.net/pipermail/lambda-dev/2012-August/005357.html.
[6]
PMD. http://pmd.sourceforge.net/.
[7]
T. Alves, J. Hage, and P. Rademaker. A comparative study of code query technologies. In SCAM, 2011.
[8]
T. Cohen, J. Y. Gil, and I. Maman. JTL: The Java tools language. In OOPSLA, 2006.
[9]
O. de Moor, M. Verbaere, and E. Hajiyev. Keynote address: .QL for source code analysis. In SCAM, 2007.
[10]
C. De Roover, C. Noguera, A. Kellens, and V. Jonckers. The SOUL tool suite for querying programs in symbiosis with Eclipse. In PPPJ, 2011.
[11]
J. Gil and K. Lenz. The use of overloading in Java programs. In ECOOP, 2010.
[12]
B. Goetz. Language designer's notebook: Quantitative language design. http://www.ibm.com/developerworks/java/library/j-ldn1/.
[13]
D. Janzen and K. De Volder. Navigating and querying code without getting lost. In AOSD, 2003.
[14]
C. Parnin, C. Bird, and E. Murphy-Hill. Java generics adoption: how new features are introduced, championed, or ignored. In Mining Software Repositories, 2011.
[15]
B. C. Pierce. Types and Programming Languages. MIT Press, 2002.
[16]
R.-G. Urma and J. Voigt. Using the OpenJDK to investigate covariance in Java. Oracle Java Magazine, 2012.
[17]
M. M. Zloof. Query by example. In AFIPS National Computer Conference, pages 431--438, 1975.

Cited By

View all
  • (2020)An Efficient and Scalable Platform for Java Source Code Analysis Using Overlaid Graph RepresentationsIEEE Access10.1109/ACCESS.2020.29876318(72239-72260)Online publication date: 2020
  • (2019)Casting about in the dark: an empirical study of cast operations in Java programsProceedings of the ACM on Programming Languages10.1145/33605843:OOPSLA(1-31)Online publication date: 10-Oct-2019
  • (2019)A framework for writing trigger-action todo comments in executable formatProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3338965(385-396)Online publication date: 12-Aug-2019
  • Show More Cited By

Index Terms

  1. Programming language evolution via source code query languages

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PLATEAU '12: Proceedings of the ACM 4th annual workshop on Evaluation and usability of programming languages and tools
    October 2012
    46 pages
    ISBN:9781450316316
    DOI:10.1145/2414721
    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 ACM 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: 21 October 2012

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. program analysis
    2. query languages
    3. source code

    Qualifiers

    • Research-article

    Conference

    SPLASH '12
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 5 of 8 submissions, 63%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)11
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 16 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)An Efficient and Scalable Platform for Java Source Code Analysis Using Overlaid Graph RepresentationsIEEE Access10.1109/ACCESS.2020.29876318(72239-72260)Online publication date: 2020
    • (2019)Casting about in the dark: an empirical study of cast operations in Java programsProceedings of the ACM on Programming Languages10.1145/33605843:OOPSLA(1-31)Online publication date: 10-Oct-2019
    • (2019)A framework for writing trigger-action todo comments in executable formatProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3338965(385-396)Online publication date: 12-Aug-2019
    • (2019)Combining Data Mining Techniques for Evolutionary Analysis of Programming Languages2019 IEEE 20th International Conference on Information Reuse and Integration for Data Science (IRI)10.1109/IRI.2019.00015(1-8)Online publication date: Jul-2019
    • (2015)Source-code queries with graph databases-with application to programming language usage and evolutionScience of Computer Programming10.1016/j.scico.2013.11.01097:P1(127-134)Online publication date: 1-Jan-2015
    • (2014)A graph database based crowdsourcing infrastructure for modelling and searching code structureProceedings of the 6th Asia-Pacific Symposium on Internetware10.1145/2677832.2677847(15-24)Online publication date: 17-Nov-2014
    • (2014)Emergent, crowd-scale programming practice in the IDEProceedings of the SIGCHI Conference on Human Factors in Computing Systems10.1145/2556288.2556998(2491-2500)Online publication date: 26-Apr-2014
    • (2014)BlackboxProceedings of the 45th ACM technical symposium on Computer science education10.1145/2538862.2538924(223-228)Online publication date: 5-Mar-2014

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media