Causal Runtime

Write causality driven, asymmetric non-linear, scalable, topological, data abstracted and evolving software.

Supported Targets

Terminology

Wirklichkeit

The german word "Wirklichkeit" describes the sum of all happening. Unlike "Reality", which describes the sum of all being, it is not about the what but about the how, not about objects but about causing effects.

Wirkung

The german word "Wirkung" describes how cause set in context leads to effect. It not only depends on the mechanism but also it's circumstances.

Unlike the english "Action" it is very specific to this meaning.

Wirks

"Wirks" is a word introduced by the physicist Hans-Peter Dürr. It points out that "Wirklichkeit" could be described as an interacting set of virtual entities.

„Wirklichkeit ist ein Zusammenspiel von ‚Wirks‘“
Hans-Peter Dürr
My translation: "Wirklichkeit" is interaction of "Wirks"

The Causal Runtime is my interpretation of this definition in context of the observations of complex systems available to me.

Implementation

Aspects

A discrete piece of data stored into memory is called an "Aspect". The thing about aspects is, they are managed by a ref counting borrowing pattern.

A borrowing pattern means, before you can access the memory you have to lock it to a scope. This borrow pattern ensures there are no concurrent mutable accesses to protected memory. However immutable accesses can be concurrent.

This memory protection is realized by a so called "Essence". It manages its atomic lock state.

An "Essence" can be referenced by multiple ref tracking/counting "References".

Tick/Acts

A "Tick" is a procedure taking in/out parameters triggering consecutive Ticks. An "Act" is a "Tick" set into an execution context.

Wirks

A "Wirks" is a meaningful set of Ticks and their contextual requirements.

Branch

Discrete algorithm's execution order is given by "Branches". Branches are thread safe.

Dispatcher

Processes/Ticks "Branch"(es). "Dispatcher" are thread safe.

Facets

Each "Aspect" can relate to other "Aspect"s through so called "Facet"s. A facet defines how an "Aspect" can interact. While relational information could also be stored at runtime just in the happening "Wirkung" a topology should always rely on properly defined "Facet"s except you have very certain intentions beyond.

„Wie kann ich das Netz haben, ohne die Knoten des Netzes einzeln zu knüpfen?"
Hans-Peter Dürr
My translation: How can I get a net, without individually knotting each single knot?

License

All content and and sources of causal runtimes are licensed under the terms of the GNU Affero General Public License v3

Notes

Supported by