Giter VIP home page Giter VIP logo

csar's People

Contributors

dozmus avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

csar's Issues

Handle static imports

This will be done in QualifiedNameResolver, but potentially may require work in some other places too.

Improve csar query language

Some comments from our paper submission, which are worth considering:

Query Languages for program comprehesion is not a new topic and there are several interesting papers. Many commercial tools now integrate the work done earlier. I think comparison witth these tools is a critical missing piece of information from the paper. Here are some tools/approaches that authors would like to have a look at: CPPDepend [1], QL for source code analyis [2] and Moose[3]. Another point is that query language appears to be language-specific: final doesn't exist in C++, there are const and constexpr. So, may be a generic meta-model representing code entities and their qualifiers will be a better approach. Integrating syntax of all languages in the query language require too much work, IMO.

All the csar examples in the paper starts with the SELECT keyword. This suggests me that SELECT is redundant and not used, for me e.g. REFACTOR something TO something would be more logical than the current SELECT something REFACTOR something. It is also unclear where are the limitations of the language.

I think a more powerful solution would involve writing a query language which targets object-oriented languages in general, and then implementing that.

Selective scope for OverriddenMethodsResolver

The results of the OverriddenMethodsResolver are only used in searching for overridden methods. This means that can do not have to compute whether every single method is overridden or not, but rather just candidate results (i.e. methods whose descriptions match the query description, minus the overridden field).

This will increase performance.

IntelliJ plugin

  • Display an input pane, with csar query input, run and cancel
  • Display a results pane, analogous to inspection results, with two top-level drop downs: search and refactor
  • Each displays number of results grayed out next to them
  • Furthermore, on their drop-downs list the classes containing these results and the specific lines

Index parsed source code

Parsing project source code (in csar-java) accounts for a large amount of the time taken.
It would be optimal to index the parsed source code, and update them as necessary.

This will require making a lot of the language constructs in csar-java no longer immutable, which is okay since some of them over time have become mutable, and thus making them all mutable would make more sense.

A possibly library for this is Kryo.

This will improve performance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.