All Projects → wala → Wala

wala / Wala

Licence: epl-2.0
T.J. Watson Libraries for Analysis

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Wala

Dg
[LLVM Static Slicer] Various program analyses, construction of dependence graphs and program slicing of LLVM bitcode.
Stars: ✭ 242 (-38.73%)
Mutual labels:  static-analysis, program-analysis, static-code-analysis
Pyt
A Static Analysis Tool for Detecting Security Vulnerabilities in Python Web Applications
Stars: ✭ 2,061 (+421.77%)
Mutual labels:  static-analysis, program-analysis, static-code-analysis
Engine
Droidefense: Advance Android Malware Analysis Framework
Stars: ✭ 386 (-2.28%)
Mutual labels:  static-analysis, static-code-analysis
Linter
Static Analysis Compiler Plugin for Scala
Stars: ✭ 273 (-30.89%)
Mutual labels:  static-analysis, program-analysis
Phpstan Strict Rules
Extra strict and opinionated rules for PHPStan
Stars: ✭ 295 (-25.32%)
Mutual labels:  static-analysis, static-code-analysis
codeclimate-duplication
Code Climate engine for code duplication analysis
Stars: ✭ 96 (-75.7%)
Mutual labels:  static-code-analysis, static-analysis
Seahorn
SeaHorn Verification Framework
Stars: ✭ 270 (-31.65%)
Mutual labels:  static-analysis, program-analysis
Sonar Php
🐘 SonarPHP: PHP static analyzer for SonarQube & SonarLint
Stars: ✭ 288 (-27.09%)
Mutual labels:  static-analysis, static-code-analysis
analysis-net
Static analysis framework for .NET programs.
Stars: ✭ 19 (-95.19%)
Mutual labels:  static-code-analysis, static-analysis
Phpstan Symfony
Symfony extension for PHPStan
Stars: ✭ 360 (-8.86%)
Mutual labels:  static-analysis, static-code-analysis
Pytype
A static type analyzer for Python code
Stars: ✭ 3,545 (+797.47%)
Mutual labels:  static-analysis, static-code-analysis
Pylint
It's not just a linter that annoys you!
Stars: ✭ 3,733 (+845.06%)
Mutual labels:  static-analysis, static-code-analysis
unimport
A linter, formatter for finding and removing unused import statements.
Stars: ✭ 119 (-69.87%)
Mutual labels:  static-code-analysis, static-analysis
progge.rs
Program analysis playground for a simple, imperative language
Stars: ✭ 29 (-92.66%)
Mutual labels:  static-analysis, program-analysis
Chronos
Chronos - A static race detector for the go language
Stars: ✭ 272 (-31.14%)
Mutual labels:  static-analysis, static-code-analysis
qodana-action
⚙️ Scan your Java, Kotlin, PHP, Python, JavaScript, TypeScript projects at GitHub with Qodana
Stars: ✭ 112 (-71.65%)
Mutual labels:  static-code-analysis, static-analysis
Nullaway
A tool to help eliminate NullPointerExceptions (NPEs) in your Java code with low build-time overhead
Stars: ✭ 3,035 (+668.35%)
Mutual labels:  static-analysis, static-code-analysis
Semgrep
Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
Stars: ✭ 5,668 (+1334.94%)
Mutual labels:  static-analysis, static-code-analysis
codeclimate-eslint
Code Climate Engine for ESLint
Stars: ✭ 86 (-78.23%)
Mutual labels:  static-code-analysis, static-analysis
static-code-analysis-plugin
A plugin to simplify Static Code Analysis on Gradle. Not restricted to, but specially useful, in Android projects, by making sure all analysis can access the SDK classes.
Stars: ✭ 36 (-90.89%)
Mutual labels:  static-code-analysis, static-analysis

WALA logo

GitHub Actions status Join the chat at https://gitter.im/WALAHelp/Lobby


The T. J. Watson Libraries for Analysis (WALA) provide static analysis capabilities for Java bytecode and related languages and for JavaScript. The system is licensed under the Eclipse Public License, which has been approved by the OSI (Open Source Initiative) as a fully certified open source license. The initial WALA infrastructure was independently developed as part of the DOMO research project at the IBM T.J. Watson Research Center. In 2006, IBM donated the software to the community.

For recent updates on WALA, join the mailing list.

Core WALA Features

WALA features include:

  • Java type system and class hierarchy analysis
  • Source language framework supporting Java and JavaScript
  • Interprocedural dataflow analysis (RHS solver)
  • Context-sensitive tabulation-based slicer
  • Pointer analysis and call graph construction
  • SSA-based register-transfer language IR
  • General framework for iterative dataflow
  • General analysis utilities and data structures
  • A bytecode instrumentation library (Shrike)

Getting Started

The fastest way to get started with WALA is to use the packages in Maven Central, as noted here. See the WALA-start repo for a Gradle-based example. We are actively re-organizing the deeper wiki technical documentation. In the meantime, you can check out tutorial slides to get an overview of WALA:

You can also watch screencasts of the WALA JavaScript tutorial here.

Finally, for now, to search the wiki documentation, we recommend a site-specific search on Google, e.g., a search for "call graph".

Documentation

We're hosting documentation for WALA on the GitHub wiki. We've chosen a wiki format just so that you can contribute. Don't be shy!

The WALA publications department is populating this wiki with technical documentation on a demand-driven basis, driven by questions posted to the wala-wala mailing list and also Gitter. We recommend this page for searching the mailing list archives.

Currently, we have the JavaDoc documentation for the WALA code being updated continuously. If you think a particular file deserves better javadoc, please open a feature request.

Getting Help

To get help with WALA, please either email the mailing list, ask a question on Gitter, or open an issue.

Building from Source

WALA uses Gradle as its build system. If you intend to modify or build WALA yourself, then see the Gradle-specific README for more instructions and helpful tips. You may also find pom.xml configuration files for Maven builds, but Maven is no longer well supported; use Gradle if at all possible.

WALA Tools in JavaScript

Recently, we have been expanding the set of WALA tools implemented in JavaScript. We have released a normalizer and some basic program analyses for JavaScript in the JS_WALA GitHub repository. We have also made available jsdelta and WALA Delta, delta debuggers for JavaScript-processing tools. Please see the linked GitHub repositories for further details on these tools.

WALA-Based Tools

Several groups have built open-source tools that enhance or build on WALA that may be useful to other WALA users. For details, see the Wala-based tools page.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].