summaryrefslogtreecommitdiff
path: root/docs/c1/index.md
diff options
context:
space:
mode:
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.