A curated list of resources around the k, q, kdb and similar languages.
- The K language: by Arthur Whitney, 2005
- A shallow introduction to the K Programming language: 2002
- K https://web.archive.org/web/20130801233812/http://www.kuro5hin.org/story/2002/11/14/22741/791
- K user manual: PDF, 2004
- K ref manual: PDF, 2005
- Ok manual: manual for a OSS k6 impl
Commercial impls:
- (kdb /q)(https://kx.com/download): q comes with a k4 engine (just type
\
to enter k interpreter, undocumented) - shakti: k9 bleeding edge development version.
Open source implementations table.
- Ok: opensource K5 impl in JS (MIT)
- kuc: K5 impl in C (GPLv3)
- kona: opensource K3 impl in C (ISC)
- ngn/k: K6 impl in C (AGPL)
- https://kparc.io/: k7 resources
- [ref] https://ref.kparc.io/
- [kcc] https://kcc.kparc.io/
K1 was never available outside of Morgan Stanley AFAIK, and I’ve never seen any docs of it. So ...
APL -> A : opinionated (vector indices always start at 0, for example) and “electric” GUI (deserves a whole post to describe)
A -> K2 : significantly simplified - only ascii, no multidimensional arrays (uses nested vectors instead), much smaller vocabulary but just as effective in the basics department (e.g. the Whitney where/replicate monastic operator replaces 6 or 7 APL operators), added simple dictionaries, workspaces, dropped a lot of math from language. Simpler electric GUI. Time and date native types (as floating point)
K2 -> K3 mostly dropped GUI afaik. Added integral time and date.
k3 -> K4/kdb : simplifies language more, comprehensive dictionary, TSDB rolled deeply into language (was previously a product written in K), native 64 bit support.
K4->K6: still more simplification, I think k6 is the kOS language. Never left dev state.
K6->k7->k9: continuous simplification, now at shakti rather than kx/firstderivatives - and with much more community involvement.