Branch :
A programming language providing and relying on facts-db.
KC3 is a programming language with meta-programmation and a graph database embedded into the language. The graph database allows for all definitions in the language and can define special operators in KC3 or in C. With a graph database at its core it aims to be the language for semantic programming, and programming the semantic web. It's really easy to devise a data scheme that will persist and iterate in any order and call KC3 or C functions on it.
For now there is no object abstraction nor reasoning on facts. Every operation on the database is controlled by C code in the end.
You can easily convert each KC3 function to a C function. KC3 is both a language and a runtime with powerful, scaling data structures.
This is a development branch, for the latest release see KC3 v0.1.16.
KC3 is currently a programming language project, inspired by C, Elixir and Common Lisp. It could be described as C with Elixir modules, pattern matching, and a semantic object system. The idea is to plug modules, closures, pattern matching, a graph database and metaprogramming into C11 with an extremely small set of dependencies.
Components :
libkc3 library is a full KC3 parser and interpreter.ikc3 is the interactive interpreter (verbose).kc3s is the script interpreter (same as ikc3 but terse).lib/kc3/0.1
using the make lib_links command.kc3_httpd.window/gtk4/.All binaries can be compiled for four targets :
assert is disabled.assert is enabledSupported operating systems (additional dependencies) :
Supported architectures :
To install and test KC3 for yourself, you can follow the KC3 Installation Guide.
There are now seven full applications written in KC3 that we know of :
make demomake demo_glmake test_httpd with all the KC3 releases and
documentation.libkc3
%Module{old | field1: value, field2: value}EKC3
HTTPd
Please contact us for support on the following channels.
Send a mail to kc3-lang-x+subscribe@lists.mail.kmx.io to join the kc3-lang-x@lists.mail.kmx.io mailing-list.
This is a public list with a public archive. The mailing list archive is available at https://lists.mail.kmx.io/kc3-lang-x/threads.html .
Send a mail to kc3-lang+subscribe@lists.mail.kmx.io to join the kc3-lang@lists.mail.kmx.io mailing-list.
This is a public list with a public archive. The mailing list archive is available at https://lists.mail.kmx.io/kc3-lang/threads.html .
Join us on kmx.io Discord server !
Follow the KC3 guides to discover how to use KC3 for your own projects.
(Macro) fn (x) { x }\n)(TAG_VOID: 1, TAG_TUPLE: (1+ (max (height tuple->tags))))