Skip to content

Instantly share code, notes, and snippets.

@sskeirik
Created August 2, 2021 22:54
Show Gist options
  • Save sskeirik/58c499ec829780041836ec440cc21118 to your computer and use it in GitHub Desktop.
Save sskeirik/58c499ec829780041836ec440cc21118 to your computer and use it in GitHub Desktop.
A History of K Implementations

K Papers

Theory/Notation Papers

Year Type Name URL
2003 Notes CS322 Fall 2003: Programming Language Design - Lecture Notes – https://www.ideals.illinois.edu/handle/2142/11385
2005 Tech Report K: a Rewrite-based Framework for Modular Language Design, Semantics, Analysis and Implementation - Version 1 - https://www.ideals.illinois.edu/handle/2142/11215
2006 Tech Report K: a Rewrite-based Framework for Modular Language Design, Semantics, Analysis and Implementation - Version 2 - https://www.ideals.illinois.edu/handle/2142/11284
2007 Tech Report K: a Rewrite-based Framework for Modular Language Design, Semantics, Analysis and Implementation - Preliminary Version - https://www.ideals.illinois.edu/handle/2142/11354
2010 Journal Article An Overview of the K Semantic Framework https://www.ideals.illinois.edu/handle/2142/14865 (tech report version)

Implementation Papers

Year Type K Version Name Paper URL Code URL
2005 Tech Report N/A A Rewrite Framework for Language Definitions and for Generation of Efficient Interpreters https://www.ideals.illinois.edu/handle/2142/11129 ???
2010 Tech Report N/A On Compiling Rewriting Logic Language Definitions into Competitive Interpreters https://www.ideals.illinois.edu/handle/2142/17444 ???
2010 Article V1 K-Maude: A Rewriting Based Tool for Semantics of Programming Languages https://link.springer.com/chapter/10.1007%2F978-3-642-16310-4_8 ???

K Implementations

Version Year Frontend Language Backend Language Comments
N/A 2003 Maude Maude Implemented as Maude library
N/A 2005 ??? C Semi-automated compiler routine in unknown language
N/A 2010 Perl OCaml Designed for speed
V1 2010 Maude Maude Designed for research/general use
V2 2010 Bash/Perl Maude Successor of V1
V3 2012 Java Maude Parser implemented in Java SDF
V3.1 2013 Java Maude/Java Added symbolic Java backend

To Be Documented/Organized

Other K Backends:

  • OCaml Version
  • Scala Version
  • Coq Version
  • Haskell Version
  • LLVM Version

Misc Info

  • Java-to-Maude: 7fb626aa8a49f4b17b203835afaeab579b1ae87c : Wed Mar 21 14:42:21 2012
  • Kore-to-Haskell: 80110ebbb045f4a95551d0a6685b0dd8989e0b92 : Mon Jan 22 14:54:15 2018
  • Kore-to-LLVM: 554391 : Jul 17 2018

K History Notes From Dwight

Maude Modules - Programs and Languages written in Maude - K1 Original K to Maude - compiler in Perl - K2

krun was first tool rewritten in Java - Maude was still doing parsing kompile was parsed in Java SDF to get AST KIL and then compiled to Maude - everything was in Java - K3

krun/kompile was now fully in Java and main goal was verification - by Andrei Stefanescu - K3.X

  • SDF parser was replaced by a hand-written parser based on scannerless Early parser

  • kompile pipeline was rewitten so that inner parser used new syntax and datastructures (kore legacy) - in K v4

  • Dwight led OCaml backend development - only for concrete execution

  • K project was forked

    • K Legacy - K4 was the legacy version of K
      • Scala backend that kale
      • Java backend was further developed and later merged into modern K
    • K Company - K5 was RV version of K
      • Scanner parsing using flex
  • New kore intermediate language was introduced

  • Haskell backend start over from scratch for symbolic execution

  • LLVM backend start over from scartch for concrete execution being even faster

  • OCaml backend was sunsetted because they were running up against limits of the OCaml language

  • GLR parser used in modern K

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment