Skip to content
This repository has been archived by the owner on Feb 1, 2020. It is now read-only.

K Development Plan

Daejun Park edited this page Mar 30, 2017 · 3 revisions

principle:

  • splitting into multiple components; gluing together
  • text representation as universal interface; in-memory communication is also possible but optional
  • multiple implementations for each component
    • reference implementation: reference model, support full features, executable but not necessarily scalable, easy to experiment new ideas
    • optimized implementation: robust and scalable, may not support full features, may have different implementations for different purposes

components:

  • kore definition
    • syntax for text representation as universal interface; should be easy to parse
  • ml prover
    • check satisfiability for kore term (like z3)
  • rewriting engine
    • given semantics and term, rewrite n-steps
  • frontend
    • desugar or translate from any string into kore term

todo:

  • kore
    • design syntax of text representation: Grigore, Everett, Lucas, Cosmin, ...
  • ml prover
    • implement reference implementation in maude: Xiaohong, Everett
    • implement optimized implementation in ?: TBD
  • rewriting engine
    • implement reference implementation in maude: Grigore, Everett
    • develop kale-backend as optimized implementation; add symbolic execution: TBD
    • maintain java-backend: Daejun, Manasvi
  • frontend
    • implement printing kore text representation: TBD
    • split parser/compilation pipelines; at least for e-kore and kore: TBD