https://github.com/secure-software-engineering/sparseide
Sparse IDE/IFDS solver and client implementation
https://github.com/secure-software-engineering/sparseide
Last synced: 18 days ago
JSON representation
Sparse IDE/IFDS solver and client implementation
- Host: GitHub
- URL: https://github.com/secure-software-engineering/sparseide
- Owner: secure-software-engineering
- License: lgpl-2.1
- Created: 2024-01-08T14:22:15.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-29T10:14:44.000Z (about 2 years ago)
- Last Synced: 2024-12-27T01:25:18.508Z (about 1 year ago)
- Homepage:
- Size: 653 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SparseIDE
This repository contains the SparseIDE framework. SparseIDE is a scalable alternative to the original IDE framework, implemented on top of [Heros IFDS/IDE Solver](https://github.com/soot-oss/heros).
## Publications
Preprint is available:
[Symbol-Specific Sparsification of Interprocedural Distributive Environment Problems](https://arxiv.org/abs/2401.14813) (ICSE 2024)
## Content
1. SparseIDE implementation source code: `SparseHeros`
2. Constant Propagation Analysis Client source code: `SparseIDEClient`
3. ConstantBench microbenchmark test cases: `SparseIDEClient/src/test/java/target/constantbench`
## Building the Client from the Source
1. Install the dependencies for `SparseIDEClient`: run `bash install_dependencies.sh` under `SparseIDEClient/dependencies`
2. Build the executable: run `mvn clean install` (Note that *install* will also run the correctness test cases on the ConstantBench)
3. Find the executable jar, `SparseIDEClient-0.0.1-SNAPSHOT-jar-with-dependencies.jar` under `SparseIDEClient/target`
## Using the SparseIDE Framework
To build and use SparseIDE:
1. run `mvn clean install` in `SparseHeros`
2. add the following dependency to your project:
```xml
de.upb.cs.swt
heros
1.2.3-Sparse-SNAPSHOT
```