tinylisp
dog
tinylisp | dog | |
---|---|---|
11 | 1 | |
791 | 2 | |
- | - | |
5.5 | 10.0 | |
4 months ago | over 5 years ago | |
C | C++ | |
BSD 3-clause "New" or "Revised" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tinylisp
-
What makes a language easy for writing a parser?
LISP has a very simple and consistent syntax, so much so that a basic interpreter can be done in only 99 lines of C.
-
Function overloading - Surprise!
I needed a scripting language for an old-school Sierra On-Line adventure game engine I'm working on and was looking at learning writing simple compilers / interpreters, when I stumbled across tinylisp and realized it was exactly what I needed.
-
Writing a lisp
Tinylisp can be a good starting point. The writeup explains how it works and how to add more features.
-
C/C++/Rust developers, what kind of projects you work on?
I've been on a bit of a retro-coding binge lately, using SDL2 for screen, I/O, and audio. For one project I replicated an NES-style sprite engine and a phase-modulated synthesizer for audio, but right now I'm currently porting tinylisp over to C++ for use in an old-school Sierra-style adventure game engine as the scripting language.
- Lisp with 20 primitives, GC and REPL in 99 lines of C and how to write one yourself
-
Microcontroller-based Lisp machine (minimum language needed)?
Lately, we run Robert van Engelen's 1k Lisp on ESP32 and 8266 boards: https://github.com/Robert-van-Engelen/lisp but we started on his tiny Lisp: https://github.com/Robert-van-Engelen/tinylisp (which is 99 lines of C)
- 99行C语言中的Lisp以及如何自己写一个[pdf] (Lisp in 99 lines of C and how to write one yourself [pdf])
- Lisp in 99 lines of C and how to write one yourself [pdf]
- Lisp in 99 lines of C and how to write one yourself
dog
-
Microcontroller-based Lisp machine (minimum language needed)?
I've spent a fair bit of time around microcontrollers recently. But the idea of starting from scratch has stuck with me a bit, my early play with an Arduino was trying to emulate an old machine : https://github.com/danja/dog (rubbish code - I had no idea how to do concurrency)
What are some alternatives?
lisp-cheney - A mini Lisp in 1k lines of C with Cheney's copying garbage collector, explained. Includes over 40 built-in Lisp primitives, floating point, strings, closures with lexical scope, macros, proper tail recursion, exceptions, execution tracing, file loading, a copying garbage collector and REPL.
lispBM - An interpreter for a concurrent lisp-like language with message-passing and pattern-matching implemented in C.
lisp - A mini Lisp in 1k lines of C with garbage collector, explained. Includes over 40 built-in Lisp primitives, floating point, strings, closures with lexical scope, macros, proper tail recursion, exceptions, execution tracing, file loading, a mark-sweep/compacting garbage collector and REPL.
ulisp - A version of the Lisp programming language for ATmega-based Arduino boards.
lispe - An implementation of a full fledged Lisp interpreter with Data Structure, Pattern Programming and High level Functions with Lazy Evaluation à la Haskell.
pil21-bare-metal - PicoLisp is an open source Lisp dialect. It is based on LLVM and compiles and runs on any 64-bit POSIX system. Its most prominent features are simplicity and minimalism.
scheme-for-max - Max/MSP external for scripting and live coding Max with s7 Scheme Lisp
ribbit - A small and portable Scheme implementation with AOT and incremental compilers that fits in 4K. It supports closures, tail calls, first-class continuations and a REPL.
Mezzano - An operating system written in Common Lisp