You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
899 B
Markdown

# forspll
forspll is an implementation of [Forsp](https://xorvoid.com/forsp.html) as an LLVM-based compiler. Forsp is a tiny yet very versatile programming language that mixes features of Forth and Lisp. Through LLVM, Forsp can be compiled into efficient machine code for a wide array of platforms.
forspll features:
* Lisp-style S-expression syntax
* Forth-style data stack for parameters/values
* Linking with C functions (see `support.c`)
* Recursion: `$self` gets pointer to current function
Missing features:
* Captured variables: Functions/lambdas are *not dynamic* and do not capture the state of previously declared variables
* Quote operator: `quote`/`'`
* Built-in dynamic allocations (implement them via platform-specific `support.c`)
## Building
Requires Clang and LLVM development files.
Run `make` to build the compiler.
Run `make prog` to compile `test.fp` and `support.c`.