From 30c4d4b28cec78b03ac0cfe2463eb7809792587e Mon Sep 17 00:00:00 2001 From: Nathan Braswell Date: Wed, 22 Mar 2023 00:24:38 -0400 Subject: [PATCH] some website edits --- website/index.html | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/website/index.html b/website/index.html index 29063ed..be7516a 100644 --- a/website/index.html +++ b/website/index.html @@ -103,40 +103,30 @@

Concept:

About:

-

Currently, I am bootstrapping this new core Lisp out of my prior compiler for my programming language, Kraken. I have implemented the first version of the FUN-GLL algorithm and have working vaus and context-free reader macros. -

The general flow is that the input files will be executed with the core Lisp interpreter, and if there is a "main" symbol defined the compiler emits C code for that function & all other functions & data that it references. In this way the language supports very powerful meta-programming at compile time, including adding syntax to the language, arbitrary computation, and importing other files, and then compiles into a static executable. -

Below are a few examples of using the vau / live grammar modification / context-free reader macros to implement basic methods as well as embed the BF language into the core Lisp. The core Lisp implementation has been compiled to WebAssembly and should be able to run in your browser. Feel free to make edits and play around below. -
-Note that the current implementation is inefficient, and sometimes has problems running in phone web browsers. -
- +

This is my 3rd run at this Lisp concept, with Partial Evaluation to make fexprs fast forming the core of my current PhD research. (tiny personal PhD website here)

Vau/Kernel as simple core:

By constructing our core language on a very simple Vau/Kernel base, we can keep the base truely tiny, and build up normal Lisp functions and programming language features in the language itself. This should help implement other programming languages concisely, and will hopefully make optimization easier and more broadly applicable.
- Below is the current prelude that adds quoting, quasiquoting, syntax for arrays and quoting/quasiquoting, do, if, let, and even lambda itself!

Next Steps