cwi-swat / cbc-artifacts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Artifacts accompanying paper: Contract-Based Return-Value Commutativity: Safely exploiting contract-based commutativity for faster serializable transactions

TLA+ models

Containing:

  • RV-SER

  • LoCA with CBC/SCBC

  • 2PL/2PC

Please see Readme.adoc in the tla directory for more specifics.

SMT Static CBC

In the SCBC folder you find multiple Rascal modules. The rebel-cbc module contains the SCBC checks using SMT solver Z3.

Tested/Run with:

Overview

The Rascal source code can be run using Eclipse with the Rascal plugin.

This folder contains an Eclipse workspace containing all the modules required to run the Analysis.

rebel-core: Rebel DSL core
rebel-eclipse: Rebel DSL tooling to use in Eclipse
rebel-cbc: The analysis tool
smtlib2: Grammar and tools to output SMTLIB constraints

Run the CBC analysis

In order to run this, you require Eclipse (https://www.eclipse.org/) and Z3 (https://github.com/Z3Prover/z3/wiki). Z3 can be installed on Mac OSX via homebrew (brew cask install z3).

To reproduce the results from the paper, do the following steps:

Open all projects in the `SCBC` folder in Eclipse.
Open the Rascal REPL in Eclipse by right clicking on source file: |project://rebel-cbc/src/cbc/tests/CbcTests.rsc| and selecting Run as > Rascal Application.
After loading type/copy: `analyse(verySimple, scoRetvalAndPostStateAssert, scoRetvalAndPostStateAssert);`. The tool will return the SCBC table as done in the paper.

About


Languages

Language:Rascal 43.7%Language:SMT 37.6%Language:TLA 10.8%Language:JavaScript 4.0%Language:HTML 2.0%Language:CSS 1.8%Language:Java 0.0%Language:Makefile 0.0%