K: the programming language
Description
K is a minimalist programming language inspired by the algebraic principles of Milner's CCS and Hoare's CSP. Computation is modeled as partial functions (called relations) over rooted, edge-labeled trees, built from three fundamental combinators: sequential composition, concurrent choice, and parallel composition. Together with elementary tree navigation and construction, these combinators replace the control-flow constructs, variable bindings, and built-in primitive types of traditional programming languages.
In K, both partial functions (relations) and their types (called patterns) are content-addressable. Because K is Turing-complete, semantic function equality is undecidable; however, patterns denote regular tree languages, which admit an effective canonical representation. Through parameterized Named Patterns, K factors schemas into canonical linear skeletons and parameter routing vectors, enabling exact structural type equivalence, global cryptographic deduplication, and static verification with zero runtime overhead.
Files
k-paper.pdf
Additional details
Related works
- Is supplemented by
- Software: https://github.com/fraczak/k (URL)