13

What LISP or LISP-like language compilers and interpreters were available for 8-bit microcomputers? Criteria for "8-bit" include that it should certainly run and execute non-trivial programs given no more than 64 KB of RAM, and ideally it should run in much smaller amounts of RAM or RAM+ROM, the just as the common 8-bit BASICs do.

In answers, the following information would be interesting to me:

  • Pricing information, if it was commercial software.
  • Historical and current availability of source and binaries.
  • The dialect of LISP (LISP1.5, MACLISP, Interlisp, Scheme, etc.) that the implementation is most similar to, if any.
  • Anything that's unusual about the language (special features, significant differences from a standard dialect it otherwise adheres to, etc.)
  • What kind of editor it provided, or what editors were expected to be used if none was.
  • Memory and offline storage usage.
  • Any interesting details about how it was implemented, or links to such.

I'm especially interested in implementations that have been used to write substantial programs (or large parts of them) and/or commercial software, though of course information about even "toy" interpreters is also welcome.

If you're not sure if a language is "LISP-like," one criterion you could consider is whether functions passed to other functions (as in map) is an easy and common idiom in it.

  • 6
    @Chenmunka LISP compilers have existed from the start (Hart and Levin's compiler for LISP 1.5 in 1962, the world's first self-hosting compiler) to the modern day (Clojure), and as Wikipedia states, "most substantial Lisp systems also include a compiler" and "some Lisp systems compile every expression to native machine code." – Curt J. Sampson Jun 2 at 13:14
  • 5
    @Chenmunka Particularly for smaller machines (which is of course what we're talking about here), a compiler may be required if one wants to write substantial programs in LISP. (L Peter Deutsch's PDP-1 port of LISP 1.5 was apparently not terribly usable for practical programs because there was simply not enough RAM left after the interpreter used its part of the 4 Kword (≃ 8-12 Kbytes) address space.) I'm particularly interested in non-toy implementations that might be used to write commercial sofware, so I'd definitely like to hear about compilers, if there were any. – Curt J. Sampson Jun 2 at 13:21
  • 3
    @Chenmunka the whole "Lisp is interpreted" thing is a long dead myth and misunderstanding. – Will Hartung Jun 2 at 17:27
  • 5
    @WillHartung: Anybody who knows the slightest bit about programming languages knows that compilation or interpretation are not traits of the programming language but the compiler or interpreter (duh!). I think it was Shriram Krishnamurthi who said that if English were typed, "compiled language" and "interpreted language" would be type errors. The question "Is Lisp interpreted" cannot even be answered with "No", since the question is fundamentally non-sensical. – Jörg W Mittag Jun 2 at 21:37
  • 4
    @Chenmunka It doesn't seem to have been the the case in the late 70s and early 80s, when 8-bit micros were most popular, that "almost all" Lisps were TILs, and I don't know if it was ever really the case. But if you're concerned, perhaps you could ask a question about that. (I makes little difference as far as this question goes, since I explicitly included interpreters in the question.) – Curt J. Sampson Jun 3 at 8:27
19

To volunteer a few:

Acornsoft LISP. First released in 1982 on tape, disk and ROM chip for the BBC Micro and rereleased as a cartridge for the Acorn Electron in 1984; possibly related to the Apple II's Owl LISP.

SpecLISP. Released in 1983 for the ZX Spectrum, a subset of Stanford LISP. It wasn't well-documented at the time, so is a little obscure. Includes Logo-style drawing functions.

Microsoft LISP. A CP/M product originally, later ported to machines including the 8-bit Apple II and TRS-80. Not just an interpreter, also a compiler (at least for the two 8080/z80 platforms).

Micro-LISP. A public domain LISP interpreter from 1986 for the Commodore 64 by Nick Vrtis.

LISP 64. Another LISP interpreter from 1986 for the Commodore 64 (author: Peter Feldtmann).

Inter-LISP/65 for Atari 8-bit computers.

PLisp for the Apple II.

  • 5
    Community Wiki, as I haven't provided a great deal of detail and perhaps somebody else can. – Tommy Jun 2 at 1:22
  • 1
    Microsoft Lisp :-o Now THERE would have been an interesting language for extending newer Microsoft products instead of VBA. – Thorbjørn Ravn Andersen Jun 2 at 18:12
  • 4
    @ThorbjørnRavnAndersen: Microsoft has done a lot of cool stuff they never productized or abandoned along the way. They did the first Unix for PCs (Xenix), Windows NT started out as a very nicely designed OS that was highly portable (x86, PowerPC, Sparc, MIPS, Alpha, IA-64, ARM, AMD64) and had clear abstraction layers that allowed multiple "personalities" on top of the kernel (Win16, Win32, DOS, OS/2, POSIX), their Research Division is incredible (they employ Simon Peyton Jones, for example, lead designer of Haskell and GHC, and Tony friggin Hoare!), the Singularity OS was brilliant. – Jörg W Mittag Jun 2 at 21:48
  • 1
    Over the past 10-15 years, they have been working to get Windows back into the shape it was when NT first came out, and ports to ARM, as well as stuff like Windows Subsystem for Linux are the result. I think it started with the XBox, which forced them to revive the abandoned PowerPC port. – Jörg W Mittag Jun 2 at 21:49
  • My parents had a Lisp interpreter for the Commodore Pet. I can't remember what it was called though. – JeremyP Jun 3 at 9:10
6

The following answer isn't strictly speaking a version of LISP. That's why I didn't add it to the community answer.

ZIL, the Zork Implementational Language, was intended to allow interactive fiction games to run on desktops. ZIL was derived from MDL which, in turn, was derived from LISP. But ZIL wasn't really a full blown Lisp.

Infocom's original compiler for ZIL, Zorch, was never made publicly available, but there is also an open source compiler, ZILF, which includes a incomplete ZIL language description

  • This answer is quite useful to me since I'm interested in any LISP-like languages especially if they've been used to write substantial and/or commerical programs for 8-bit micros. – Curt J. Sampson Jun 2 at 13:35
  • 2
    @CurtJ.Sampson Okay, then another not-actual-Lisp non-answer would be Logo. This mostly-educational language was available for quite a number of 8-bit machines. – RichF Jun 2 at 13:39
  • 1
    @RichF Wow. I just had a scan through the Apple Logo II Reference Manual; I had no idea that Logo was so LISPy, passing code blocks for IF etc. and with even the ability to rewrite its own definitions. That said, it doesn't seem to use the "passing functions to functions" idiom, as ZIL does, that would make it feel truly LISPy to me. – Curt J. Sampson Jun 2 at 14:33
  • 1
    In fact DR LOGO was included with Amstrad disc-based CPC machines. However, LOGO is a long way sorry of being LISP, despite some great list processing functionality. – Mark Williams Jun 2 at 16:11
  • 1
    Back to ZIL: further research makes it peretty clear that it is indeed a LISP at its core (it's basically a variant of MDL designed to execute code originally written in MDL with extensions). I am not clear on how much has been removed, but it's looking like it may have been too much to make this a general-purpose LISP. – Curt J. Sampson Jun 3 at 1:26
5

There was a variant of InterLisp for Atari 8-bit systems.

There was Gnosis P-Lisp for Apple II, which was very simple.

There were a number of Lisp implementations for Z-80 running CP/M.

And, straddling the 8/16-bit divide, there was Golden Common Lisp for IBM PC, which ran on 8088 (and runs nicely on my HP 95LX as a result) but actually was a real Common Lisp implementation.

Of course the various 16 bit systems got more “real” Lisp implementations, especially as memory available grew.

  • I'm not actually interested in (most?) 16-bit implementations, and this helped me figure out why: "small memory" turns out to be an integral characteristic I'm looking for. So thanks for helping out with that. The two implementations you linked are helpful. – Curt J. Sampson Jun 3 at 6:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.