diff options
| author | Taylan Kammer <taylan.kammer@gmail.com> | 2026-05-25 20:48:36 +0200 |
|---|---|---|
| committer | Taylan Kammer <taylan.kammer@gmail.com> | 2026-05-26 18:41:27 +0200 |
| commit | fa5db8e89225622a1ee7a5d802f253d07884b13e (patch) | |
| tree | d7b25178deac71dff00728134555c75f088ec101 /docs/c1/index.md | |
| parent | 0f0cb85026406356e16310044b4d09bd316b0747 (diff) | |
Diffstat (limited to 'docs/c1/index.md')
| -rw-r--r-- | docs/c1/index.md | 28 |
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. |
