Projects using K

  • KWasm (Aug 2015 - Present)

    KWasm is the K semantics of WebAssembly. WebAssembly is a low-level (but simple and streamlined) assembly language that was originally developed to provide a fast execution engine for browser-based tools. More recently, it has been used in several blockchain smart-contract platforms as the underlying language for executing financial agreements. KWasm has been used for measuring coverage of test-suites over Wasm code and verifying programs which are compiled to Wasm.

  • KEVM (Sep 2017 - Present)

    KEVM is the K semantics of the Ethereum Virtual Machine. It passes all of the Ethereum Test Suite, and is used for verifying EVM programs.

  • IELE (Oct 2016 - Present)

    IELE is the underlying VM integrated into the Cardano blockchain. IELE is a register-based VM (inspired by LLVM), which attempts to avoid many of the missteps in design present in EVM.

  • K-Michelson (Oct 2019 - Present)

    K-Michelson is the K semantics of Michelson blockchain programming language, which powers the Tezos blockchain. KMichelson provides additional testing tools for developers, including a unit-testing framework which is extendable to symbolic property testing.

  • Elrond (July 2020 - Present)

    The semantics of Elrond is a wrapper around KWasm which extends it with the Elrond blockchain primitives. This extension enables developers targeting the Elrond blockchain to measure coverage of their test-suite directly at the Wasm level.

  • C (Jul 2010 - Present)

    The K semantics of the C programming language specifies the translation, linking, and execution semantics of the C language according to the official C standard. It has been used to build tools like RV-Match, which detects undefined behaviors in users programs by running their test-suites through the C semantics.

  • P4 (Nov 2016 - Present)

    A complete formal semantics of the P4 language, version 1.0.4. P4 is a software-defined-networking language, targeted at providing a hardware agnostic way to specify network behavior. The K P4 semantics provides a way to model-check these P4 specifications, looking for bad networking states.