Main Page
From K Framework
is a rewrite-based executable semantic framework in which programming languages, type systems and formal analysis tools can be defined using configurations, computations and rules. Configurations organize the state in units called cells, which are labeled and can be nested. Computations carry computational meaning as special nested list structures sequentializing computational tasks, such as fragments of program. Computations extend the original language abstract syntax. K (rewrite) rules make it explicit which parts of the term they read-only, write-only, read-write, or do not care about. This makes K suitable for defining truly concurrent languages even in the presence of sharing. Computations are like any other terms in a rewriting environment: they can be matched, moved from one place to another, modified, or deleted. This makes K suitable for defining control-intensive features such as abrupt termination, exceptions or call/cc.
Quick Overview
- HERE Wolfram Schulte interviews Grigore Rosu about rewrite-based semantics (at ICSE'11).
- HERE is a 5 minute video demo of the K Tool (download the tool below).
-
PPTX
PDF
: a presentation on K (and on matching logic).
- The documented K semantics of the
IMP and
IMP++ languages (generated by the K Tool).
Download and Online Interface
- Download the K Tool from its Googlecode project page.
- Experimental (!): You may try the Online Interface to the K tool, but be aware that it has limitations and has not been throughly tested.
Select Publications
Click on Publications in the left menu for all our publications related to K. Here are the most relvant:
- The theoretical foundations of the K framework and a non-trivial language, CHALLENGE, defined in K:
- An Overview of the K Semantic Framework
- Grigore Rosu and Traian Florin Serbanuta
J.LAP, Volume 79(6), pp 397-434. 2010
PDF, Slides(PPTX), Slides(PDF), K Tool, J.LAP, BIB
- A brief introduction to the current K tool
- The K Primer (version 2.5)
- Traian Florin Serbanuta, Andrei Arusoaie, David Lazar, Chucky Ellison, Dorel Lucanu and Grigore Rosu
Technical Report, January 2012
PDF, K 2.5, BIB
- A non-trivial application of K, the most complete formal definition of C to date:
- An Executable Formal Semantics of C with Applications
- Chucky Ellison and Grigore Rosu
POPL'12, ACM, pp 533-544. 2012
PDF, Slides(PDF), Project, ACM, POPL'12, DBLP, BIB
- An overview of the rewriting logic semantics project, including K (sections 3,4,8):
- The Rewriting Logic Semantics Project: A Progress Report
- Jose Meseguer and Grigore Rosu
FCT'11, LNCS 6914, pp 1-37. Invited talk. 2011
PDF, K Tool, FCT'11, BIB
