JordanSamhi / coal-strings

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

COAL-Strings: String Analysis for the COAL Solver

Many program analyses require statically inferring the possible values of object variables. However, current approaches either do not account for correlations between object fields or do so in an ad hoc manner. The COAL project enables the specification and solution of these problems in a principled way. The project includes a language that is used to describe the classes of the objects whose value should be inferred. It also includes a solver, which computes the object values.

⚠️ This repository is a fork of the original work of Damien Octeau (https://github.com/siis/coal-strings) which is not maintained anymore ⚠️

➡️ The original work was part of this publication:

@inproceedings{
    10.5555/2818754.2818767,
    author = {Octeau, Damien and Luchaup, Daniel and Dering, Matthew and Jha, Somesh and McDaniel, Patrick},
    title = {Composite Constant Propagation: Application to Android Inter-Component Communication Analysis},
    year = {2015},
    isbn = {9781479919345},
    publisher = {IEEE Press},
    booktitle = {Proceedings of the 37th International Conference on Software Engineering - Volume 1},
    pages = {77–88},
    numpages = {12},
    location = {Florence, Italy},
    series = {ICSE '15}
}

⚠️ This is not a tool meant to be used as a standalone, it needs to be imported in the COAL solver (https://github.com/JordanSamhi/coal). If you need to update the string analysis, then you need to build the project and import it again in you COAL project.

🆕 This repository provides a way more advanced string analysis than the original repository, several dozens of string operations have been implemented.

Getting started

Downloading the tool

git clone https://github.com/JordanSamhi/coal-strings.git

Installing the tool

cd coal-strings
mvn clean install

OR

cd coal-strings
sh build.sh

Issues

If you stumble upon a stack overflow error while building COAL-Strings, increase memory available with this command:

export MAVEN_OPTS=-Xss32m

Then, try to rebuild.

➡️ For more information, you can refer to the archive of the original website: archive

Built With

  • Maven - Dependency Management

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

Contact

For any question, please contact us at: Jordan Samhi

About

License:Apache License 2.0


Languages

Language:Java 100.0%Language:Shell 0.0%