...
In this section, we give an overview of the seven query languages that we evaluate in this paper: Java Tools Language, Browse-By-Query, SOUL, JQuery, .QL, Jackpot and PMD. We selected these languages because they provide a variety of design choices and strictly provide a query language. For example, we didn't select Findbugs as it only lets programmers query source by creating new classes based on a Java framework. We also only selected source code query languages that included a guide or a working implementation.
Name | Paradigm | Model | Input | Date |
---|---|---|---|---|
Java Tools Language | Logic | Relational | Bytecode | 2006 |
Browse-By-Query | Declarative (English-like Queries) | Relational | Bytecode | 2005 |
SOUL | Logic | Relational | Source | 2011 |
JQuery | Logic | Relational | Source | 2003 |
.QL | Object-Oriented, SQL-like | Relational | Source | 2007 |
Jackpot | Declarative | Relational | Source | 2009 |
PMD | XPath | Tree | Source | 2004 |
Java Language Tools
The Java Tools Language (JTL) is a logic-paradigm query language to select Java elements in a code base. The current implementation is based on an analysis of Java bytecode classes. The JTL syntax is inspired by Query-by-Example ideas in order to increase productivity of users. For example, one could find all methods taking three int parameters and returning a subclass of Java's Date class using the follow query:
...