awesome-lisp-languages
A list of Lisp-flavored programming languages
https://github.com/dundalek/awesome-lisp-languages
Last synced: 6 days ago
JSON representation
Classification
- Clojure - like
- Common Lisp
- Scheme
Languages
C#
- Clojure CLR - C] great for game development with arcadia and unity
- RainLisp - B] inspired by Scheme, interpreted, can be used as DSL integrating with .NET
C/C++
- Ferret - C] aimed towards embedded systems
- Janet - B] embedable, large standard library, GC
- Jank - C] LLVM-hosted, Clojure-compatible, type-analysis, JIT
- Maru - B] minimal self-hosting lisp, multimethods, user-defined types and structures, GC
- C-Mera - A] also includes extensions to generate code to run on CUDA, GLSL
- Cakelisp - A] performance-oriented, good for game development, compiles down to C/C++, macros and compile-time code modification
- Carp - B] statically typed, no GC (Rust-like borrow checking)
- Dale - B] Lisp-flavoured C with additional features, no GC, LLVM backend
- Extempore - S] designed for live coding and music performances, temporal scheduling based on audio card sample rate
- FemtoLisp - S] scheme-like lisp, powers the compiler of the Julia language
- jo_clojure - C] Fast Embeddable Clojure in C/C++, including persistent datastructures and STM
- Lcc - A] Lisp-like syntax for writing C
- Liz - A] written as EDN, compiles to Zig, customizable memory allocators, native binaries for many architectures
- Owl Lisp - S] dialect of the Scheme, code can be interpreted or compiled into C files
- Toccata - C] Clojure-inspired, gradually typed, no nil values, reference counting, compiles into native binaries
- Pre-Scheme - S] statically typed Scheme dialect, compiles to C, type inference, no GC, designed for systems programming
Common Lisp
- CLISP - L] uses bytecode compiler, easily portable
- Clozure CL - L] fast compilation speed, native threads, precise generational compacting garbage collector, convenient foreign-function interface
- additional implementations
- Clasp - L] compiled using LLVM, seamless integration with existing libraries
- Coalton - L] efficient, statically typed functional programming language that supercharges Common Lisp
- ECL - L] embeddable and portable, can build standalone executables
- ECL - L] embeddable and portable, can build standalone executables
- SBCL - L] high performance native code compiler, native threading support, type inference engine
Dart
- ClojureDart - C] clojure dialect for Flutter and Dart
Erlang
- Clojerl - C]
Fortran
- fscheme - S] small scheme interpreter written in Fortran 95
- Schemetran - A] Expressing Fortran computations in Scheme, compiles to readable Fortran code
Go
- Joker - C] interpreter, linter, great for scripting, Go interop is very limited
- Slick - L] Lisp/Scheme-style s-expression surface syntax for the Go programming language
- Zygo - B] embedable, call into native Go using reflection, optional infix syntax
- ZYLISP - A] simple Lisp that compiles to Go (source or bytecode)
- let-go - C] compiler, bytecode VM, Go interop, small footprint, fast booting
Java
- Kawa - S] scheme implementation (R7RS)
- ABCL - L] CL interpreter and compiler, embedable using Java scripting API (JSR-223)
- Armed Bear Clojure - C+L] Common Lisp embedded in Clojure via ABCL
- Venice - C] Clojure-inspired, sandboxed, Java interop, 800+ builtin functions
- ABCL - L] CL interpreter and compiler, embedable using Java scripting API (JSR-223)
JavaScript
- BiwaScheme - S] compact Scheme written in JavaScript, integrates well with web browsers and Node
- ClojureScript - C]
- JACL - L] extended subset of Common Lisp, async reader and REPL development workflow
- Whalesong - S] Racket to JavaScript compiler
- eslisp - A] S-expression syntax for ECMAScript/JavaScript, Lisp-like macros
- Lumen - A] self-hosted Lisp for Lua and JavaScript, uses arrays as first-class datastructures
- Parenscript - L] Common Lisp to JavaScript translator, native JS types, native calling convention
- RacketScript - S] Racket to JavaScript compiler, interop with both Racket and JS ecosystem
- Squint - C] Squint is a light-weight dialect of ClojureScript with a compiler and standard library
- Valtan - L] Common Lisp to JavaScript compiler
- Parenscript - L] Common Lisp to JavaScript translator, native JS types, native calling convention
Julia
- LispSyntax.jl - A] Clojure-like lisp syntax to Julia translator with convenience macros, uses Julia's compiler and JIT
Lua
- Fennel - A] full Lua compatibility, embedable, compiled code with no runtime dependency
- Urn
- LCL - L] Lua Common Lisp is an implementation of Common Lisp targeting the Lua language
Multi Lang
- Bigloo - S] compiles into native binaries, interop with C, JVM, .NET
- Shen - B] implementations in many programming languages, builtin pattern-matching and logic programming, optional static typing and lazy evaluation
- Lux - B] functional, statically-typed Lisp that will run on several platforms
- Mal
- Ribbit - S] small and portable Scheme implementation (R4RS, 4 KB footprint), AOT and incremental compilers, targets C, JavaScript, Python and Scheme
- Wax - A] tiny programming language, strongly statically typed, manual memory management, transpiles to C, C++, Java, TypeScript, Python, C#, Swift, Lua and WebAssembly
- Zick Standard Lisp
- STELLA - strongly typed, object-oriented, compiles down to Common Lisp, C++, or Java
Objective-C
OCaml
- Reason-Lisp - A] very incomplete
PHP
- Phel - C] Phel is a functional programming language that compiles to PHP.
Python
- Hy - A] compiles to Python AST, use Python ML libraries, runs on PyPy
- Hissp - A] compiles to a functional subset of Python, macro metaprogramming with Python ecosystem
- Pixie - B] Clojure inspired, written in RPython, custom GC and JIT
- Basilisp - C] Clojure-compatible, targeting Python3.6+
R
- llr - C] Clojure inspired, in R compiles and interops with R
Rust
- BLisp - B] statically typed scripting language, type inference, algebraic data types, generics
- Ketos - B] scripting and extension language for Rust programs, compiled to bytecode
- Rustly - C] transpiler, only small subset of Clojure supported
- Steel - S] embedded scheme interpreter in Rust, inspired by Racket
Scheme
- Chez Scheme - S] compiles to native binaries, among the fastest available Scheme implementations, R6RS
- Chicken Scheme - S] produces portable and efficient C, supports R5RS and R7RS (work in progress)
- Guile - S] embedable, useful for extending programs with scripting
- Racket - S] large standard library, powerful macro system, includes DrRacket IDE
- additional implementations - benchmarks/).
- Cyclone - S] Scheme-to-C compiler, R7RS, native threading support, generates fast native binaries
- Microscheme - S] Scheme subset for microcontrollers (like Arduino boards)
- Loko Scheme - S] runs on bare hardware
- additional implementations - benchmarks/).
Shell
- Gherkin - B] (dormant) implemented in Bash, shell interop
VHDL
- Vhdl Lisp - alternative s-expression based notation to describe programmable integrated circuits (FPGAs)
WASM
- Arboreta WASM
- clj-wasm - A] Clojure-flavored WASM's text format
- Hoot - S] ahead-of-time compiler for R7RS-small Scheme, aiming to support all of Guuile
- Schism - S] self-hosting compiler from a subset of R6RS Scheme to WebAssembly
- WebAssembly Scheme - S] partial implementation of R7RS scheme, written using WebAssembly Text format
Misc
WASM
- uLisp - fits into 2 Kbytes of RAM, embedded syntax for assembly
- projects
- Map of Common Lisp implementations
- Bel Clojure - implementation in Clojure, includes continuations, Java numbers and strings, read blog post
- Language::Bel - implementation of Bel in Perl 5, includes extensive test suite
- Chime - implementation of Bel written in Haskell
- Babybel - Ruby implementation of Bel
- Bel-sml - implementation written in Standard ML
- uLisp - fits into 2 Kbytes of RAM, embedded syntax for assembly
- LispBM - concurrency and message passing influenced by Erlang, threads with mailbox, pattern-matching
- CLJSL - subset of Clojure compiled to GLSL for GPU programming
- Clojure-like languages
- implemented in Lisp
- Benchmarks of Scheme implementations
- Build your own lisp - a book describing building a Lisp dialect