Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Use Case 6: Find occurences of nested try/catch blocks that rethrow an exception.

Evaluation

X = can't be supportednot supported

= can be supported

? = not sure

 

Final Array & Anonymous Class

Generic Constructors

Capture Conversion Idiom

Overloaded Methods Sharing Single Type

Covariant Arrays

Rethrown Exception 

JTL

X

X

X

?

X

X

BBQ

X

X

X

?

X

X

SOUL

 

 

 

 

 

 

JQuery

X

X

X

X (*1)

X

X

.QL (*2)

?

?

?


?

Jackpot

X

X

X

X

?

PMD

X

X

X

X

X

X

...

No variable binding support which restricts a lot of the analysis. 

Taxonomy

Query Language Features

  • Model: Relational vs Tree
  • control flow statements 
  • variable binding & cross reference
  • types information of AST nodes + type constraints (subtype relations)
  • set operators
  • generics / wildcards
  • read/write references
  • anonymous class
  • aggregates (grouping results)
  • pattern matching? (i.e JTL style for argument list, SOUL like for AST matching)
  • universal quantifiers (forall, exists, no)
  • querying style: logic, query-by-example

Java Language Features supported

  • control flow statements
  • type information of AST nodes
  • type constraints (subtype relations)
  • generics / wildcards
  • anonymous class

Conclusion/Ideas

Relational based query languages not low level enough. 

...