From 4c397e48db4ee4b0a53d58aa4d1c8288341ab161 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 19 Jul 2021 14:23:42 -0400 Subject: Link to primitive and compiler directories in the implementation README --- docs/implementation/index.html | 2 ++ implementation/README.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/docs/implementation/index.html b/docs/implementation/index.html index c9d79a2c..ccfaa132 100644 --- a/docs/implementation/index.html +++ b/docs/implementation/index.html @@ -9,6 +9,8 @@

This repository's BQN implementation is written mainly in BQN: the bytecode compiler is completely self-hosted, and the majority of the runtime (r0, r1) is written in BQN except that it is allowed to define primitives; some preprocessing turns the primitives into identifiers. The remaining part, a VM, can be implemented in any language to obtain a version of BQN running in that language.

The VM used for the online REPL is the Javascript implementation. The bytecode matches dzaima/BQN's format, and an extension to the compiler adjusts the slightly different block declarations to target dzaima+reference BQN. An earlier experiment targetting WebAssembly works only on a very small subset of BQN. All versions have automated tests in the test directory.

diff --git a/implementation/README.md b/implementation/README.md index 223b0734..2c9ae9c7 100644 --- a/implementation/README.md +++ b/implementation/README.md @@ -6,6 +6,8 @@ Notes about how BQN is implemented. There's not too much here yet. - [Comparison to Co-dfns](codfns.md) discusses the general compilation strategy and how it compares to the only other array-based compiler. - [The BQN virtual machine and runtime](vm.md) describes the non-self-hosted parts of the BQN implementation, that is, everything you need to port it to a new platform. +- [Notes on implementing primitives](primitive/README.md) +- [Notes on compilation](compile/README.md) This repository's BQN implementation is written mainly in BQN: the bytecode [compiler](../src/c.bqn) is completely self-hosted, and the majority of the runtime ([r0](../src/r0.bqn), [r1](../src/r1.bqn)) is written in BQN except that it is allowed to define primitives; some preprocessing turns the primitives into identifiers. The remaining part, a VM, can be implemented in any language to obtain a version of BQN running in that language. -- cgit v1.2.3