https://github.com/lisa-analyzer/lisa
📚 a modular easy to use Library for Static Analysis aiming at multi-language analysis
https://github.com/lisa-analyzer/lisa
abstract-interpretation analysis analyzer cybersecurity formal-methods java lisa program-verification static-analysis static-analyzer static-analyzers
Last synced: about 2 months ago
JSON representation
📚 a modular easy to use Library for Static Analysis aiming at multi-language analysis
- Host: GitHub
- URL: https://github.com/lisa-analyzer/lisa
- Owner: lisa-analyzer
- License: mit
- Created: 2020-09-22T08:49:10.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-02-18T10:46:47.000Z (about 2 months ago)
- Last Synced: 2025-02-18T11:36:24.289Z (about 2 months ago)
- Topics: abstract-interpretation, analysis, analyzer, cybersecurity, formal-methods, java, lisa, program-verification, static-analysis, static-analyzer, static-analyzers
- Language: Java
- Homepage: https://lisa-analyzer.github.io/
- Size: 8.65 MB
- Stars: 53
- Watchers: 7
- Forks: 32
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-java - LiSA
README
---




[](https://search.maven.org/artifact/io.github.lisa-analyzer/lisa-sdk)
[](https://javadoc.io/doc/io.github.lisa-analyzer/lisa-sdk)LiSA (Library for Static Analysis) aims to ease the creation and implementation of static analyzers based on the Abstract Interpretation theory.
LiSA provides an analysis engine that works on a generic and extensible control flow graph representation of the program to analyze. Abstract interpreters in LiSA are built
for analyzing such representation, providing a unique analysis infrastructure for all the analyzers that will rely on it.Building an analyzer upon LiSA boils down to writing a parser for the language that one aims to analyze, translating the source code or the compiled code towards
the control flow graph representation of LiSA. Then, simple checks iterating over the results provided by the semantic analyses of LiSA can be easily defined to translate
semantic information into warnings that can be of value for the final user.For more information, documentation and useful guides, refer to the [project website](https://lisa-analyzer.github.io/)!
## Contributing
LiSA is developed and maintained by the [Software and System Verification (SSV)](https://ssv.dais.unive.it/) group @ Università Ca' Foscari in Venice, Italy.
External contributions are always welcome! Check out our [contributing guidelines](./CONTRIBUTING.md) for information on how to contribute to LiSA.## Releases
Head to the [Releases](https://github.com/lisa-analyzer/lisa/releases) page for the full list of releases.
### Snapshots
The snapshot of the last commit of the `master` branch is always available on [GitHub Packages](https://github.com/orgs/lisa-analyzer/packages?repo_name=lisa). Be aware that you will need a personal access token to use packages as server for resolving dependencies. You can refer to the official GitHub guide for [Maven](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry#authenticating-to-github-packages) or [Gradle](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry#authenticating-to-github-packages) for more information.