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.
Clyne c546646cd4 | 6 months ago | |
---|---|---|
.gitignore | 6 months ago | |
LICENSE | 6 months ago | |
Makefile | 6 months ago | |
README.md | 6 months ago | |
ast.cpp | 6 months ago | |
ast.hpp | 6 months ago | |
llvm.cpp | 6 months ago | |
llvm.hpp | 6 months ago | |
main.cpp | 6 months ago | |
parser.cpp | 6 months ago | |
parser.hpp | 6 months ago | |
support.c | 6 months ago | |
test.fp | 6 months ago | |
var.cpp | 6 months ago | |
var.hpp | 6 months ago |
README.md
forspll
forspll is an implementation of Forsp 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
.