The CX programming language repo is here
- github.com/skycoin/cx
"CX" Stands for "C next". Or "The next C".
The CX programming language already has genetic algorithms demos, where programs can be evolved in 2000 generation for polynomial fitting.
It is an abstract syntax tree (AST) based language, based around "affordances".
- It is mathematically deterministic by design.
- It uses COLA (combined object lambda architecture) (by Alan Kay)
- It is neither functional nor procedural, but is based upon category theory
- CX programs are CX program objects
- A CX program object is interpreted by another program object
- the language only has a representation as an abstract syntax tree because it cannot be represented in a fixed syntax (but to programmer will look like golang)
- the kernel of the language is very small and is simpler than LISP.
- the language allows declarations of predicates over processes and unifies by the pi calculus (calculus of processes and predicates over processes) and lambda calculus (calculus of computations).
- the language is determined by the requirements of being closed under the transitive closure of certain mathematical operations and types of reflections
- programs can be stopped mid execution, serialized into byte strings and deserialized and execution continuing on another computer. This is a "cloud native" programming language for building decentralized systems.
- It is very similar to and heavily inspired by Urbit and the source independent networking concept in Urbit
- The performance will be higher than C and the battery usage on mobile will also be lower compared to C. The language is mathematically constrained to avoid pointer aliasing rules and the ambiguities in C
- The language is multi-modal and computation agnostic. It will run as well on a GPU or fixed pipeline as well as a general CPU, an ASIC, FPGA or eventually even non-Von Neumann architecture such as quantum and DNA computers.
Affordances offer a computation type agnostic method of describing and implementing processes that implement computations. Computations are described as mathematical invariants and predicates over physical processes that implement "atomic" operators. And CX is concerned with a series of reduction operations (affordances applied on the program object) that reduce a complex program into a program that can be implemented as a set of operations which are "atomic" for a given physical process equivalent to computation.
CX is inspired by the XL programming language, Urbit, golang and others.
It is not a turing complete scripting language. It is a language for building (blockchain) platforms. It is above the blockchain and a mere "Scripting Language".
- smart contracts are scripts inside the blockchain
- CX is for building platforms and the blockchain is just a small part of the platform.
CX is a long term research project.
CX can be used for "Smart Contracts", but that is not what it is for. It is truely throwing the pearls in front of the swine if the only use for CX ends up being used to make online prediction market for sports betting.