Forsp LLVM-based compiler
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
move list impl to forsp
6 months ago
.gitignore break code into separate files 6 months ago
LICENSE add license to files 6 months ago
Makefile readme update; use CC in Makefile 6 months ago
README.md readme update; use CC in Makefile 6 months ago
ast.cpp recursion; list via support.c 6 months ago
ast.hpp add license to files 6 months ago
llvm.cpp some error reporting 6 months ago
llvm.hpp add license to files 6 months ago
main.cpp recursion; list via support.c 6 months ago
parser.cpp add license to files 6 months ago
parser.hpp add license to files 6 months ago
support.c move list impl to forsp 6 months ago
test.fp move list impl to forsp 6 months ago
var.cpp add license to files 6 months ago
var.hpp add license to files 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.