Make a Lisp (github)

There actually is one in MRs distribution, but it looks quite an older version:

// MiniLisp
// ========
//
//
//        A. C. Norman.     November 1981
//
//  Modified by M. Richards  November 1983

There is a demo program that starts:

(car (quote (Hello_World 123 456)))

(de f (n)
  (cond ((eq n 0) 1)
        (T (* n (f (1- n))))
  )
)

(f 5)
(f 6)
(f 7)

But I feel that if I do want to investigate Lisp, then MAL might be a way to do it… Just need to find some time!

-Gordon

Kindle has a book "Build Your Own Lisp ". looks nice, for beginners.

1 Like

If the end goal is to learn Lisp, it is probably better to install an implementation and start using it, rather than looking at a toy implementation. There are several high-quality, open-source implementations available for both Scheme and Common Lisp. There are also commercial products that have free versions (with some restrictions).

Note that the Scheme processor doesn’t have an ALU. At the time, this was a very large part of any processor (the Z80 used a 4 bit ALU to save space, for example) and they thought it would be cute to eliminate it and implement math in Lisp itself from scratch (using Church numerals, for example).

If you look at processor implementations, you see that the ALUs became a smaller and smaller part over time until floating point began to be included, and then the trend repeated itself.

1 Like

Just in case implementing Lisp on top of Forth isn’t rare enough (targeting Lisp to a Forth runtime), my company is considering re-targeting our professional grade, home brew Forth implementation to Lisp (i.e. the runtime would be implemented in Common Lisp) all for the sake of portability.
Right now our Forth runs natively on the x86 (32 bit), the VAX, RS-6000, and Sun4.
It knows so much about the x86 stack layout and C calling conventions that it would be just as much work to port it to the AMD64 as it would to make it totally portable (and future proof).
We originally wrote this Forth because in the 1980s we were deploying our commercial apps on Lisp machines but the database only ran on VAXen. Forth provided a lightweight programmable foreign function interface (FFI) over TCP. We still use it in the 2020s (just not “over the wire”).

3 Likes

To follow up on this thread, a little late: I have had the WISP67 document scanned and posted it on my GitHub page at:

To find it go to that github page and select Repositories, then select WISP, then in the WISP repository select the wisp directory. The file WISP67-TR36.pdf is the scanned document. See the README.txt file for a description of other files, programs, and code fragments extracted from WISP67.
This is a work in progress so don’t expect anything working just yet. Have a go at it if anyone cares to try.
I’ll be working on bascmp.scm which will be a set of simcmp macros to translate Basic Wisp to x86_32 assembly language and eventually get a working version of bascmp.wsp.
Randyl

3 Likes

Thanks Greatly appreciated