summaryrefslogtreecommitdiff
path: root/docs/c1/index.md
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2026-05-25 20:48:36 +0200
committerTaylan Kammer <taylan.kammer@gmail.com>2026-05-26 18:41:27 +0200
commitfa5db8e89225622a1ee7a5d802f253d07884b13e (patch)
treed7b25178deac71dff00728134555c75f088ec101 /docs/c1/index.md
parent0f0cb85026406356e16310044b4d09bd316b0747 (diff)
Grammar, parser, and doc improvements.HEADmaster
Diffstat (limited to 'docs/c1/index.md')
-rw-r--r--docs/c1/index.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/docs/c1/index.md b/docs/c1/index.md
index f306e11..af01cea 100644
--- a/docs/c1/index.md
+++ b/docs/c1/index.md
@@ -1,2 +1,30 @@
# Chapter 1: Genesis
+This chapter goes through the processes involved in reading source
+code, running it, and optionally compiling it.
+
+1. [Parse](1-parse.html)
+
+ 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
+ data types, and handling primitive source code transforms. It's
+ comparable to the C pre-processor or Lisp's `DEFMACRO` mechanism,
+ with a few more responsibilities, such as number literal parsing.
+
+3. [Execute](3-execute.html)
+
+ Code is executed (or interpreted, or evaluated) in an environment,
+ also called a module, which may be mutated, and linked with other
+ modules. Execution is immediate, without any pre-compilation.
+
+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.