kc3-lang/kc3/doc/1 KC3/1.1 Introduction.en.md

Download

1 Introduction

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 C99 with an extremely small set of dependencies.

Supported operating systems (additionnal dependencies) :

Supported architectures :

1.1 Modules

Everything in KC3 is in a module. A module is a namespace, and is named with a symbol starting with a uppercase character. For instance Sym and Str are valid module names.

Each module can define a type and a module name can also be a type name if the corresponding module defines a type.

The module can also include definitions for functions for operating on the module type or other types.

The default module is KC3, which is defined as facts (triples) in lib/kc3/0.1/kc3.facts.

1.2 Data types

Basic data types in KC3 are :


Source

Download