acsl-by-example VS sol2

Compare acsl-by-example vs sol2 and see what are their differences.

sol2

Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation: (by ThePhD)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
acsl-by-example sol2
1 20
94 3,956
- -
1.8 3.5
almost 3 years ago 10 days ago
TeX C++
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

acsl-by-example

Posts with mentions or reviews of acsl-by-example. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-30.
  • Why the C Language Will Never Stop You from Making Mistakes
    5 projects | news.ycombinator.com | 30 Dec 2021
    Yes, Frama-C uses a plugin architecture, and there are plugins to verify all kinds of things, including functional correctness. The Frama-C tutorials page,

    https://frama-c.com/html/tutorials.html

    Has a link to the ACSL-by-example PDF which gives examples of creating in C various C++ STL inspired data structures and routines:

    https://github.com/fraunhoferfokus/acsl-by-example/blob/mast...

    Also, it is less effort to write bug-free code in OCaml than C. The Coq/Gallina proof assistant even has an OCaml-extraction (and also Haskell-extraction) feature where you extract runnable code from a formally verified algorithm in the Gallina specification language. (It's generally easier to proof theorems about code in the theorem prover itself, go figure.) Most of these C verification tools are written in OCaml, not C, with varying levels of assistance from Coq/Gallina.

    The main reason the functional languages make it easier is because you generally execute side-effect free functions on data structures to give them the mathematical property you want. For example, you execute a lexicographical sort function on a list of strings and then the strings in the list all satisfy the mathematical property of a total ordering. You don't have to do any reasoning about the "in-between state" where pointers under the hood are being manipulated, and you don't have to add pre-conditions and post-conditions about the global environment if the code is side effect free and does not access non-local memory.

sol2

Posts with mentions or reviews of sol2. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-20.

What are some alternatives?

When comparing acsl-by-example and sol2 you can also consider the following projects:

hacl-star - HACL*, a formally verified cryptographic library written in F*

Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.

RecordFlux - Formal specification and generation of verifiable binary parsers, message generators and protocol state machines

pybind11 - Seamless operability between C++11 and Python

CompCert - The CompCert formally-verified C compiler

ChaiScript - Embedded Scripting Language Designed for C++

spark-by-example - SPARK by Example is an adaptation of ACSL by Example for SPARK 2014, a programming language which is a formally verified subset of Ada

SWIG - SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.

gcc

Wren - The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.

V8 - The official mirror of the V8 Git repository

nbind - :sparkles: Magical headers that make your C++ library accessible from JavaScript :rocket: