U Dimension
If you want to start with U syntax, please skip this section and go to Syntax.
To avoid confusion with others terms used in others dimensions, U employs simple internal model terms to facilitate easy visualization of ideas, even for those without extensive computer science knowledge.
These clear terms facilitate proper implementation, particularly for heterogeneous or concurrent systems.
In U:
- every piece of information is represented by either a values or an action
- a compel (computation element) is the combinaison of a value and an action to create a new value
function
because function
may imply several meanings such as:
- a structure with a signature, a statement list (body)
- a executable piece of code at compile or run time
For example:
0
is a value- 'inc' is a function (action) that add 1 to its parameter
arg
- 'print increment of 0' is the Compel
It would be visualized with the following diagram:
Value¶
A Value is a structure represented physically in a Place – a location in memory. For example:
- number
1
will be stored in a 32 or 64 bits memory slot - string
123
could be stored in three bytes in memory slots [1
,2
,3
], or as a list of 3 substring if it has been concatened before: ["1"
,"2"
,"3"
].
Action¶
An Action is a set of U available capabilities —whether compile-time functions, runtime functions, instructions, or other components—to correctly transform a value to another one. This concept is minimal for efficiently composing values sequentially or concurrently, without tightly coupling them to user-defined values and functions.
For instance, a string value like "123"
can be effectively and explicitly converted to a number value in a static or dynamic language, ensuring reliability and portability across different contexts.
Closure¶
An Closure consists of a value and an action. A computation is pending to be performed on demand
Place¶
A Place is a location in memory.
Plane and Joint¶
Compels can be sequentially combined. But to manage concurrent cases, we need to introduce Planes.
A plane consists of:
- two compels
- a Joint
The Plane concept is needed to define compels' execution relationships. The Joint represents their relationship: executed in sequence, concurrently, concurrently and delayed, ...
Planes can be combined to create new planes. For example, in :
...leads to the following execution graph::a : 3
and b += 1
are in 2 distinct planes so they might be selected for parallel computations.