A simple Lisp/Scheme compiler that generates Go AST from Lisp code.
gisp is a simple Lisp/Scheme compiler written in Go that translates Lisp code into Go Abstract Syntax Trees. It solves the problem of integrating Lisp-like syntax with Go's compilation pipeline, providing a bridge between functional programming paradigms and Go's ecosystem.
Go developers interested in exploring Lisp semantics, educators teaching compiler design, or programmers wanting to embed a simple Lisp interpreter in Go applications.
Developers choose gisp for its clean implementation based on Rob Pike's lexer design, tail call optimization support, and the practical ability to generate Go AST from Lisp code with minimal dependencies.
Simple LISP in Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Rob Pike's proven lexer design for fast and reliable tokenization, as mentioned in the README based on 'Lexical Scanning in Go'.
Implements TCO via loop/recur, enabling efficient recursion without stack overflow, which is critical for functional programming patterns in Lisp.
Generates Go Abstract Syntax Trees from Lisp code, allowing direct integration with Go's compilation pipeline for further processing or code generation.
Includes a built-in read-eval-print loop for immediate feedback, facilitating experimentation and rapid prototyping, as shown in the build instructions.
Only supports basic types (ints, floats, strings, bools) and a minimal function set, lacking advanced Lisp constructs like macros or comprehensive standard libraries.
The README is brief with few examples, making it difficult for users to grasp advanced usage or troubleshoot beyond simple cases.
Error management is not discussed, implying rudimentary error reporting that could complicate debugging in more complex codebases.