KernelF Introduction
Please start with the readme file of the iets3.opensource ⧉ repository. The primary documentation is the book DESIGN, EVOLUTION, AND USE of KernelF by Markus Voelter. There's also a short reference ⧉ with only 27 pages.
Language Implementations¶
Multi-Party boolean decision table:
- A Smart Contract Development Stack ⧉
- A Smart Contract Development Stack, Part II: Game Theoretical Aspects ⧉
Mutable State¶
Functional Programming¶
- Some Concepts in Functional Languages ⧉ (languageengineering.io)
- Introduction to the functional programming jargon (general) ⧉
- Awesome functional programming (general) ⧉
- Funclerative Programming ⧉(Markus Voelter)
Tracing¶
The execution trace is helpful if you want to follow the execution path of an interpreter. Right-click an interpreted node and click Show Trace. The trace explorer now opens in the lower left corner. When you click one of the lines in the trace explorer, the node in the editor gets replaced by the trace. You can manipulate the trace through the trace expression.
Nix¶
KernelF doesn't allow returning null values (intermediate null values that the same or other evaluators catch are fine).
Instead, it supports so-called nix handlers (there's a nixHandler extension point). The default handler for KernelF is DefaultNixHandler ⧉.
A nix value (interface INixValue) represents an empty (nothing) value. There is, for example, a DefaultNix class; for dates, there's EmptyDateRangeValue ⧉. Use the handler's method process to handle values that might be nix. To use this feature call new NixSupport(Object value node<> node {NixSupport => Object} calculator).run()
where the calculator returns the value: