Awesome Lists

awesome-lisp-languages

by dundalek

awesome listpushed almost 2 years ago

A list of Lisp-flavored programming languages

AI summary

Lisp compilers

A curated list of languages that build upon existing platforms using Lisp-like syntax and semantics

stars
750
forks
40
watching
39
entries
111

What's in the list

111 links in 26 sections, with live GitHub stats.activeno commit in 2y

Languages / Multi Lang

  • Bigloo

    [Type-S] compiles into native binaries, interop with C, JVM, .NET

  • Lux

    [Type-B] functional, statically-typed Lisp that will run on several platforms

  • Mal

    is an educational lisp with implementations in dozens of languages. It is a great resource for learning about lisp implementation

  • Ribbit

    [Type-S] small and portable Scheme implementation (R4RS, 4 KB footprint), AOT and incremental compilers, targets C, JavaScript, Python and Scheme

  • STELLA

    strongly typed, object-oriented, compiles down to Common Lisp, C++, or Java

  • Shen

    [Type-B] implementations in many programming languages, builtin pattern-matching and logic programming, optional static typing and lazy evaluation

  • Wax

    [Type-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

    minimal lisp with 42 implementations

Languages / Common Lisp

  • SBCL

    [Type-L] high performance native code compiler, native threading support, type inference engine

  • CLISP

    [Type-L] uses bytecode compiler, easily portable

  • Clozure CL

    [Type-L] fast compilation speed, native threads, precise generational compacting garbage collector, convenient foreign-function interface

  • Clasp

    [Type-L] compiled using LLVM, seamless integration with existing libraries

  • ECL

    [Type-L] embeddable and portable, can build standalone executables

  • Coalton

    [Type-L] efficient, statically typed functional programming language that supercharges Common Lisp

Languages / Scheme

  • Chez Scheme

    [Type-S] compiles to native binaries, among the fastest available Scheme implementations, R6RS

  • Chicken Scheme

    [Type-S] produces portable and efficient C, supports R5RS and R7RS (work in progress)

  • Guile

    [Type-S] embedable, useful for extending programs with scripting

  • Racket

    [Type-S] large standard library, powerful macro system, includes DrRacket IDE

  • Cyclone

    [Type-S] Scheme-to-C compiler, R7RS, native threading support, generates fast native binaries

  • Microscheme

    [Type-S] Scheme subset for microcontrollers (like Arduino boards)

  • Loko Scheme

    [Type-S] runs on bare hardware

Languages / C/C++

  • C-Mera

    [Type-A] also includes extensions to generate code to run on CUDA, GLSL

  • Cakelisp

    [Type-A] performance-oriented, good for game development, compiles down to C/C++, macros and compile-time code modification

  • Carp

    [Type-B] statically typed, no GC (Rust-like borrow checking)

  • Dale

    [Type-B] Lisp-flavoured C with additional features, no GC, LLVM backend

  • Extempore

    [Type-S] designed for live coding and music performances, temporal scheduling based on audio card sample rate

  • FemtoLisp

    [Type-S] scheme-like lisp, powers the compiler of the Julia language

  • Ferret

    [Type-C] aimed towards embedded systems

  • Janet

    [Type-B] embedable, large standard library, GC

  • Jank

    [Type-C] LLVM-hosted, Clojure-compatible, type-analysis, JIT

  • jo_clojure

    [Type-C] Fast Embeddable Clojure in C/C++, including persistent datastructures and STM

  • Lcc

    [Type-A] Lisp-like syntax for writing C

  • Liz

    [Type-A] written as EDN, compiles to Zig, customizable memory allocators, native binaries for many architectures

  • Maru

    [Type-B] minimal self-hosting lisp, multimethods, user-defined types and structures, GC

  • PicoLisp

    [Type-B] compiled to bytecode and interpreted, C and Java interop, built-in database and GUI

  • Owl Lisp

    [Type-S] dialect of the Scheme, code can be interpreted or compiled into C files

  • Toccata

    [Type-C] Clojure-inspired, gradually typed, no nil values, reference counting, compiles into native binaries

Languages / C#

  • Clojure CLR

    [Type-C] great for game development with arcadia and unity

  • RainLisp

    [Type-B] inspired by Scheme, interpreted, can be used as DSL integrating with .NET

Languages / Dart

  • ClojureDart

    [Type-C] clojure dialect for Flutter and Dart

Languages / Erlang

Languages / Fortran

  • fscheme

    [Type-S] small scheme interpreter written in Fortran 95

  • Schemetran

    [Type-A] Expressing Fortran computations in Scheme, compiles to readable Fortran code

Languages / Go

  • Joker

    [Type-C] interpreter, linter, great for scripting, Go interop is very limited

  • Slick

    [Type-L] Lisp/Scheme-style s-expression surface syntax for the Go programming language

  • Zygo

    [Type-B] embedable, call into native Go using reflection, optional infix syntax

  • ZYLISP

    [Type-A] simple Lisp that compiles to Go (source or bytecode)

Languages / Java

  • ABCL

    [Type-L] CL interpreter and compiler, embedable using Java scripting API (JSR-223)

  • Armed Bear Clojure

    [Type-C+L] Common Lisp embedded in Clojure via ABCL

  • Clojure

    [Type-C]

  • Kawa

    [Type-S] scheme implementation (R7RS)

  • PicoLisp

    [Type-B] compiled to bytecode and interpreted, C and Java interop, built-in database and GUI

  • Venice

    [Type-C] Clojure-inspired, sandboxed, Java interop, 800+ builtin functions

Languages / JavaScript

  • BiwaScheme

    [Type-S] compact Scheme written in JavaScript, integrates well with web browsers and Node

  • eslisp

    [Type-A] S-expression syntax for ECMAScript/JavaScript, Lisp-like macros

  • JACL

    [Type-L] extended subset of Common Lisp, async reader and REPL development workflow

  • JSLisp

    ( ) [Type-L] Lisp-2, similar to Common Lisp, includes GUI library and IDE

  • LIPS

    [Type-S] similar to BiwaScheme, has better notation to call JS functions

  • Lumen

    [Type-A] self-hosted Lisp for Lua and JavaScript, uses arrays as first-class datastructures

  • Parenscript

    [Type-L] Common Lisp to JavaScript translator, native JS types, native calling convention

  • RacketScript

    [Type-S] Racket to JavaScript compiler, interop with both Racket and JS ecosystem

  • Squint

    [Type-C] Squint is a light-weight dialect of ClojureScript with a compiler and standard library

  • Valtan

    [Type-L] Common Lisp to JavaScript compiler

  • Whalesong

    [Type-S] Racket to JavaScript compiler

  • Wisp

    [Type-C] Clojure-like, has protocols, no persistent data structures

Languages / Julia

  • LispSyntax.jl

    [Type-A] Clojure-like lisp syntax to Julia translator with convenience macros, uses Julia's compiler and JIT

Languages / Lua

  • Fennel

    [Type-A] full Lua compatibility, embedable, compiled code with no runtime dependency

  • Lumen

    [Type-A] self-hosted Lisp for Lua and JavaScript, uses arrays as first-class datastructures

  • Urn

    [?] focus on minimalism, should work with LuaJIT, influenced by Common Lisp and Clojure

Languages / Objective-C

  • DreamLisp

    [Type-B] Clojure-inspired, originally based on MAL, added modules, lazy collections

  • nu

    [?] interpreted

Languages / OCaml

Languages / PHP

  • Phel

    [Type-C] Phel is a functional programming language that compiles to PHP

Languages / Python

  • Hy

    [Type-A] compiles to Python AST, use Python ML libraries, runs on PyPy

  • Hissp

    [Type-A] compiles to a functional subset of Python, macro metaprogramming with Python ecosystem

  • Pixie

    [Type-B] Clojure inspired, written in RPython, custom GC and JIT

  • Basilisp

    [Type-C] Clojure-compatible, targeting Python3.6+

Languages / R

  • llr

    [Type-C] Clojure inspired, in R compiles and interops with R

Languages / Rust

  • BLisp

    [Type-B] statically typed scripting language, type inference, algebraic data types, generics

  • GameLisp

    [Type-B] scripting language for Rust game development, interpreted, pattern‑matching, coroutines, macros

  • Ketos

    [Type-B] scripting and extension language for Rust programs, compiled to bytecode

  • Rustly

    [Type-C] transpiler, only small subset of Clojure supported

  • Steel

    [Type-S] embedded scheme interpreter in Rust, inspired by Racket

Languages / Shell

  • Gherkin

    [Type-B] (dormant) implemented in Bash, shell interop

  • Fleck

    [Type-A] Clojure-like, based on , packaged as single-file Bash script

Languages / VHDL

  • Vhdl Lisp

    alternative s-expression based notation to describe programmable integrated circuits (FPGAs)

Languages / WASM

  • Arboreta WASM

    [?] Common Lisp tooling for WebAssembly

  • clj-wasm

    [Type-A] Clojure-flavored WASM's text format

  • Hoot

    [Type-S] ahead-of-time compiler for R7RS-small Scheme, aiming to support all of Guuile

  • Liz

    [Type-A] general purpose programming language, supports WASM compilation target

  • Schism

    [Type-S] self-hosting compiler from a subset of R6RS Scheme to WebAssembly

  • WebAssembly Scheme

    [Type-S] partial implementation of R7RS scheme, written using WebAssembly Text format

Misc

  • Bel

    self-hosted lisp dialect, see also markdown formatted

Misc / Bel

  • Bel Clojure

    implementation in Clojure, includes continuations, Java numbers and strings, read

  • 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

Misc / Lisps for Microcontrollers

  • uLisp

    fits into 2 Kbytes of RAM, embedded syntax for assembly

  • LispBM

    (LBM) - concurrency and message passing influenced by Erlang, threads with mailbox, pattern-matching

Misc

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.