aboutsummaryrefslogtreecommitdiff
path: root/src/README.txt
blob: a04d515f8e96be4b7a9813d29b04256301bb1dec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Documentation for BQN's implementation is at ../implementation/.

BQN sources for BQN. Object code from these is run with a VM to obtain a
BQN implementation. The Javascript VM is ../docs/bqn.js.

Compiler toolchain:

- glyphs.bqn  Glyphs for all BQN primitives
- c.bqn       Compiler
- pp.bqn      General preprocessing
- pr.bqn      Preprocess the runtime
- cjs.bqn     Format compiler output as Javascript literals

Compilation targets:

- c.bqn  Compiler
- r0.bqn, r1.bqn  Runtime
- f.bqn  Formatter
- e.bqn  Expression syntax explainer
- p.bqn  Plot generator

Since it defines primitives, the runtime is only sort of BQN. This is
why pr.bqn is required to process it. It's also compiled with a custom
primitive set.

e.bqn and p.bqn also require the definitions from ../svg.bqn; this file
is prepended by cjs.bqn.

Some of these files are also used elsewhere: pp.bqn preprocesses other
primitive-defining code in ../test/ref.bqn, and f.bqn is used to format
results in markdown while e.bqn generates diagrams for the tutorials.