I have a minimal amount of experience with Lisp and have read the blog posts on how to implement the basic special forms which are needed to define a Lisp. I’m considering trying to write my own Lisp as a scripting language for a platform whose primary language is something that I don’t like. Thing is, I don’t really want to write code using a minimal set of primitives. I want to write in a full Lisp.

Are there any “bring your own bootstrap” Lisp implementations, which provide a more full-featured language once the basic primitives have been provided? Something that would let me go more quickly from a couple hundred lines of bootstrap code into a more full fledged language, even if the runtime is slow.

  • ventuspilot@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I think the “Tools for going from the basic special forms into a full Lisp” are usually called “standard library”. Most if not all Lisps have them, and usually the standard libraries are written in Lisp, i.e. in the (simpler) Lisp that is implemented by the core.

    I don’t think there are any “bring your own bootstrap” Lisp implementations that you will be able to use 100% unchanged. Since different Lisps will have different sets of basic special forms/ promitives the various standard libraries are not drop-in interchangeable, but there’s a lot of overlap. E.g. the function list-length of my own Lisp is almost identical to the code from CLtL2.

    I’d say write your own standard library for your Lisp, taking inspiration from others such as Lisp500 or maybe even my own Lisp’s default library.

    Or skip the “write your own Lisp” part and integrate one of the embeddable Lisps into your platform.