All Projects → souffle-lang → Souffle

souffle-lang / Souffle

Licence: upl-1.0
Soufflé is a variant of Datalog for tool designers crafting analyses in Horn clauses. Soufflé synthesizes a native parallel C++ program from a logic specification.

Projects that are alternatives of or similar to Souffle

Sonar Php
🐘 SonarPHP: PHP static analyzer for SonarQube & SonarLint
Stars: ✭ 288 (-32.39%)
Mutual labels:  static-code-analysis
Semgrep
Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
Stars: ✭ 5,668 (+1230.52%)
Mutual labels:  static-code-analysis
Engine
Droidefense: Advance Android Malware Analysis Framework
Stars: ✭ 386 (-9.39%)
Mutual labels:  static-code-analysis
Bandit
Bandit is a tool designed to find common security issues in Python code.
Stars: ✭ 3,763 (+783.33%)
Mutual labels:  static-code-analysis
Pylint
It's not just a linter that annoys you!
Stars: ✭ 3,733 (+776.29%)
Mutual labels:  static-code-analysis
Rubocop Performance
An extension of RuboCop focused on code performance checks.
Stars: ✭ 340 (-20.19%)
Mutual labels:  static-code-analysis
Chronos
Chronos - A static race detector for the go language
Stars: ✭ 272 (-36.15%)
Mutual labels:  static-code-analysis
Eslint Config Standard React
ESLint Shareable Config for React/JSX support in JavaScript Standard Style
Stars: ✭ 416 (-2.35%)
Mutual labels:  static-code-analysis
Pmd
An extensible multilanguage static code analyzer.
Stars: ✭ 3,667 (+760.8%)
Mutual labels:  static-code-analysis
Eslint
Find and fix problems in your JavaScript code.
Stars: ✭ 19,665 (+4516.2%)
Mutual labels:  static-code-analysis
Awesome Standard
Documenting the explosion of packages in the standard ecosystem!
Stars: ✭ 300 (-29.58%)
Mutual labels:  static-code-analysis
Pytype
A static type analyzer for Python code
Stars: ✭ 3,545 (+732.16%)
Mutual labels:  static-code-analysis
Sharpen
Visual Studio extension that intelligently introduces new C# features into your existing codebase
Stars: ✭ 351 (-17.61%)
Mutual labels:  static-code-analysis
Phpstan Strict Rules
Extra strict and opinionated rules for PHPStan
Stars: ✭ 295 (-30.75%)
Mutual labels:  static-code-analysis
Wala
T.J. Watson Libraries for Analysis
Stars: ✭ 395 (-7.28%)
Mutual labels:  static-code-analysis
Nullaway
A tool to help eliminate NullPointerExceptions (NPEs) in your Java code with low build-time overhead
Stars: ✭ 3,035 (+612.44%)
Mutual labels:  static-code-analysis
Phpstan Doctrine
Doctrine extensions for PHPStan
Stars: ✭ 338 (-20.66%)
Mutual labels:  static-code-analysis
Prealloc
prealloc is a Go static analysis tool to find slice declarations that could potentially be preallocated.
Stars: ✭ 419 (-1.64%)
Mutual labels:  static-code-analysis
Php Parser
🌿 NodeJS PHP Parser - extract AST or tokens (PHP5 and PHP7)
Stars: ✭ 400 (-6.1%)
Mutual labels:  static-code-analysis
Phpstan Symfony
Symfony extension for PHPStan
Stars: ✭ 360 (-15.49%)
Mutual labels:  static-code-analysis

Welcome!

This is the official repository for the Soufflé language project. The Soufflé language is similar to Datalog (but has terms known as records), and is frequently used as a domain-specific language for analysis problems.

License: UPL Zulip chat Build Status codecov

Features of Soufflé

  • Efficient translation to parallel C++ of Datalog programs
  • Efficient interpretation
  • Extended semantics of Datalog, e.g., permitting unbounded recursions with numbers and terms
  • Simple component model for Datalog specifications
  • Recursively defined record types (aka. constructors) for tuples

How to get Soufflé

Use git to obtain the source code of Soufflé.

$ git clone git://github.com/souffle-lang/souffle.git

Build instructions can be found here.

Legacy code

If you have written code for an older version of Souffle, please use the command line flag --legacy. Alternatively, please add the following line to the start of your source-code:

.pragma "legacy"

How to contribute

Issues and bug reports for Souffle are found in the issue list. This list is also where new contributors may find extensions / bug fixes to work on.

To contribute in this repo, please open a pull request from your fork of this repository. The general workflow is as follows.

  1. Find an issue in the issue list.
  2. Fork the souffle-lang/souffle repo.
  3. Push your changes to a branch in your forked repo.
  4. Submit a pull request to souffle-lang/souffle from your forked repo. Our continuous integration framework enforces coding guidelines with the help of clang-format and clang-tidy.

For more information on building and developing Souffle, please read the developer tutorial.

Home Page

Zulip Chat

Documentation

Contributors

Issues

License

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].