“In the past few years, we witnessed the development of multiple smart contract languages – Solidity, Viper, Michelson, Scilla etc. These languages need to enable developers to write correct, predictable behavior smart contract code. Each language development effort therefore ends up spending resources into building formal verification toolsets, compilers, debuggers and other developer tools.
In this episode, we are joined by Grigore Rosu, Professor of computer science at UIUC (University of Illinois at Urbana-Champaign) for a deep dive into the K framework. The K framework is mathematic logic and language that enables language developers to formally define all programming languages; such as C, Solidity and JavaScript. Once a language is formally specified in the K framework, the framework automatically outputs a range of formal verification toolsets, compilers, debuggers and other developer tools for it. Updates to the language can be made directly in K. This technology has massive implications for smart contract programming language development, and formal verification efforts in the blockchain space.
We also cover his efforts to express the Ethereum virtual machine using the K framework, and to develop a new virtual machine technology, called IELE, specifically tailored to the blockchain space. Check out the episode to understand a game changing technology in the formal verification and smart contract safety space.
Topics we discussed in this episode
Grigore’s background with NASA and work on formally verified correct software
Motivations to develop K framework
Basic principles behind the operation of K framework
How K deals with undefined behavior / ambiguities in a language definition
The intersection of K framework and smart contract technology
Runtime Verification’s collaboration with Cardano
KEVM and IELE, smart contract virtual machines developed by Runtime Verification
Broader implications of the K framework for the blockchain industry”
MIT’s Digital Currency Initiative – A Research-Driven Approach to Blockchain