[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
- Syntactic Queries
- Where do wildcards appear?
- How many number of interfaces defined with one method (SAM types) compared to other interfaces definition?
- Semantical Queries
- Rank array subtype relations (covariance) by frequency
- 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)
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)