[This page is a draft]
Goal
- Create a platform to enable language designers and the community to validate extensions to Java.
- Encourage and facilitate empirical research of features in Java.
Abstract
Empirical studies are critical to understand how programming language features are used in practice. They provide answers to questions that help programming languages to evolve.
However, conducting such studies can be difficult and time consuming as they require writing complex static analysis and reporting tools.
We describe a new platform that automates the frequency analysis of language features in Java. It comprises a corpus of open-source software, a query language to specify variant parsers and typecheckers, as well as an automated reporting tool.
Desired Feature
This is a list of desired feature with some examples of what we want to achieve.
- Syntactic Queries
- Where do wildcards appear?
- How many number of interfaces defined with one method (SAM types) compared to other interfaces definition?
How are generics used? [2]
- Semantical Queries
Rank array subtype relations (covariance) by frequency [5]
- Reporting
- Parent node: generic instance -> parametric class name
- Frequency
Relevant Literature
[1] Brian Goetz. Language designer's notebook: Quantitative language design. http://www.ibm.com/developerworks/java/library/j-ldn1/.
[2] Chris Parnin, Christian Bird, and Emerson Murphy-Hill. 2011. Java generics adoption: how new features are introduced, championed, or ignored. In Proceedings of the 8th Working Conference on Mining Software Repositories (MSR '11)
[3] Ewan Tempero, Craig Anslow, Jens Dietrich, Ted Han, Jing Li, Markus Lumpe, Hayden Melton, and James Noble. 2010. The Qualitas Corpus: A Curated Collection of Java Code for Empirical Studies. In Proceedings of the 2010 Asia Pacific Software Engineering Conference (APSEC '10)
[4] Joseph Gil and Keren Lenz. 2010. The use of overloading in JAVA programs. In Proceedings of the 24th European conference on Object-oriented programming (ECOOP '10)
[5] Raoul-Gabriel Urma and Janina Voigt. Using the OpenJDK to Investigate Covariance in Java. Java Magazine May/June 2012.
Related Projects
[a] Refactoring NG. http://kenai.com/projects/refactoringng
[b] Tal Cohen, Joseph (Yossi) Gil, and Itay Maman. 2006. JTL: the Java tools language. In Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications (OOPSLA '06)
[c] Browse By Query. http://browsebyquery.sourceforge.net/