diff options
| author | Taylan Kammer <taylan.kammer@gmail.com> | 2026-06-20 22:53:50 +0200 |
|---|---|---|
| committer | Taylan Kammer <taylan.kammer@gmail.com> | 2026-06-20 22:53:50 +0200 |
| commit | b84ed4f563b3536365f7d3cc4d068407e98685b3 (patch) | |
| tree | 9ab7b18d712db1329b6230cb45520e7c85dc46fd /doc/0/index.md | |
| parent | bfaa74b19fc81dbe071d55566a78a8e329237eff (diff) | |
Diffstat (limited to 'doc/0/index.md')
| -rw-r--r-- | doc/0/index.md | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/doc/0/index.md b/doc/0/index.md new file mode 100644 index 0000000..f0da216 --- /dev/null +++ b/doc/0/index.md @@ -0,0 +1,34 @@ +# Chapter 0: Genesis + +This chapter explains the core value representation of Zisp, and goes +through the processes of parsing, decoding, running, and optionally +compiling code. + +0. [Value](0-value.html) + + Zisp uses a uniform 64-bit representation for all values, densely + packed into signaling or non-canonical NaN values. + +1. [Parse](1-parse.html) (see also [grammar](grammar/)) + + The parser receives a stream of bytes and transforms them into a + minimal set of data types with very little processing. + +2. [Decode](2-decode.html) + + The decoder runs configurable and extensible pre-processing steps + over data received from the parser, enriching it with more complex + value types, and handling primitive source code transforms. + +3. [Eval](3-eval.html) + + Code is evaluated within a mutable module context, on which it can + have side effects such as creating new definitions or establishing + links to other modules. + +4. [Compile](4-compile.html) + + Procedures from within the compiler module can be used to demand + the compilation of other modules, with various options, yielding + static or dynamic object files. These may be loaded immediately, + replacing the previously uncompiled module code in memory. |
