aboutsummaryrefslogtreecommitdiff
path: root/docs/implementation
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-11-26 21:59:49 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-11-26 21:59:49 -0500
commit22d763fbf6d50ca3001f53424085f772276d55e2 (patch)
tree1d8584a085d54cfc976f40fcbbe1c875ace3e1ce /docs/implementation
parent7d83c824a1ac0f60b1f56a1aeabff9dafc82cbc0 (diff)
Shift some material cut from running.md to implementation/README.md
Diffstat (limited to 'docs/implementation')
-rw-r--r--docs/implementation/index.html2
1 files changed, 2 insertions, 0 deletions
diff --git a/docs/implementation/index.html b/docs/implementation/index.html
index 0aa8342f..8235b6cd 100644
--- a/docs/implementation/index.html
+++ b/docs/implementation/index.html
@@ -10,6 +10,8 @@
<li><a href="codfns.html">Comparison to Co-dfns</a> discusses the general compilation strategy and how it compares to the only other array-based compiler.</li>
<li><a href="vm.html">The BQN virtual machine and runtime</a> describes the non-self-hosted parts of the BQN implementation, that is, everything you need to port it to a new platform.</li>
</ul>
+<p>This repository's BQN implementation is written mainly in BQN: the bytecode <a href="https://github.com/mlochbaum/BQN/blob/master/implementation/../src/c.bqn">compiler</a> is completely self-hosted, and the <a href="https://github.com/mlochbaum/BQN/blob/master/implementation/../src/r.bqn">majority of the runtime</a> 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.</p>
+<p>The VM used for the online REPL is the <a href="https://github.com/mlochbaum/BQN/blob/master/implementation/../docs/bqn.js">Javascript implementation</a>. The bytecode matches dzaima/BQN's format, and <a href="https://github.com/mlochbaum/BQN/blob/master/implementation/../dc.bqn">an extension</a> to the compiler adjusts the slightly different block declarations to target dzaima+reference BQN. <a href="https://github.com/mlochbaum/BQN/blob/master/implementation/../wc.bqn">An earlier experiment</a> targetting <a href="https://en.wikipedia.org/wiki/WebAssembly">WebAssembly</a> works only on a very small subset of BQN. All versions have automated tests in the <a href="https://github.com/mlochbaum/BQN/blob/master/implementation/../test/">test</a> directory.</p>
<p>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.</p>
<ul>
<li><a href="https://chat.stackexchange.com/rooms/52405/conversation/lesson-s1-parenthesis-nesting-level">Parenthesis nesting level</a></li>