ABSTRACT
Programming language researchers often study real-world projects to see how language features have been adopted and are being used. Typically researchers choose a small number of projects to study, due to the immense challenges associated with finding, downloading, storing, processing, and querying large amounts of data. The Boa programming language and infrastructure was designed to solve these challenges and allow researchers to focus on simply asking the right questions. Boa provides a domain-specific language to abstract details of how to mine hundreds of thousands of projects and also abstracts how to efficiently query that data. We have previously used this platform to perform a large study of the adoption of Java's language features over time. In this demonstration, we will show you how we used Boa to quickly analyze billions of AST nodes and study the adoption of Java's language features.
- Apache Software Foundation. Hadoop: open source implementation of MapReduce. http://hadoop.apache.org/, 2014.Google Scholar
- R. Dyer, H. A. Nguyen, H. Rajan, and T. N. Nguyen. Boa: a language and infrastructure for analyzing ultra-large-scale software repositories. In ICSE’13, pages 422–431, 2013. Google ScholarDigital Library
- R. Dyer, H. Rajan, and T. N. Nguyen. Declarative visitors to ease fine-grained source code mining with full history on billions of AST nodes. In GPCE’13, pages 23–32, 2013. Google ScholarDigital Library
- R. Dyer, H. Rajan, H. A. Nguyen, and T. N. Nguyen. Mining billions of AST nodes to study actual and potential usage of Java language features. In ICSE’14, pages 779–790, 2014. Google ScholarDigital Library
- H. Rajan, T. N. Nguyen, R. Dyer, and H. A. Nguyen. Boa website. http://boa.cs.iastate.edu/, 2015.Google Scholar
- Background Boa Benefits of Boa Demonstration Overview Presenter BiographiesGoogle Scholar
Index Terms
Demonstrating programming language feature mining using Boa
Recommendations
How Many Languages Does It Take to Be a Programming Languages Course?
Papers of the 27th Annual CCSC Northeastern ConferenceProgramming languages courses are an important component of computer science curricula that aim at building students' transferable skills in learning new languages. These courses tend to come in two main flavors: the interpreter/compiler style on the ...
Programming language feature agglomeration
PLE '14: Proceedings of the 1st Workshop on Programming Language EvolutionFeature-creep is a well-known phenomenon in software systems. In this paper, we argue that feature-creep also occurs in the domain of programming languages. Recent languages are more expressive than earlier languages. However recent languages generally ...
Experiences with a simple structured programming language
SIGCSE '74: Proceedings of the fourth SIGCSE technical symposium on Computer science educationA great deal of interest has developed in structured programming [Dahl, Dijkstra, and Hoare, 1972] during the past few years. This paper is concerned with some experiences obtained in the use of a structured programming language in the computer science ...
Comments