From c0fbd3c6877eb270b957dde5622e0fc5d84595fa Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Thu, 29 Apr 2021 13:37:28 -0400 Subject: Fix up references to r.bqn --- docs/implementation/index.html | 2 +- docs/implementation/vm.html | 4 ++-- docs/index.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/implementation/index.html b/docs/implementation/index.html index 8235b6cd..c9d79a2c 100644 --- a/docs/implementation/index.html +++ b/docs/implementation/index.html @@ -10,7 +10,7 @@
  • Comparison to Co-dfns discusses the general compilation strategy and how it compares to the only other array-based compiler.
  • The BQN virtual machine and runtime describes the non-self-hosted parts of the BQN implementation, that is, everything you need to port it to a new platform.
  • -

    This repository's BQN implementation is written mainly in BQN: the bytecode compiler is completely self-hosted, and the majority of the runtime 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.

    +

    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.

    I have also held some forum discussions on the actual workings of the compiler, but aborted these because the interactive format wasn't doing too much. I haven't yet started on non-interactive replacements.