A portable and concise Forth implementation in modern C++
 
 
 
 
 
Go to file
Clyne 9ccce3fd18
begin work on core extensions; fix does>
.gitignore build as library; add small target
LICENSE initial commit
Makefile some cleanup
README.md begin work on core extensions; fix does>
alee.cpp move some corewords to core.fth; fix word reading
alee.hpp build as library; add small target
compat.txt begin work on core extensions; fix does>
core.fth begin work on core extensions; fix does>
corewords.cpp move some corewords to core.fth; fix word reading
corewords.hpp move some corewords to core.fth; fix word reading
dictionary.cpp move some corewords to core.fth; fix word reading
dictionary.hpp create, does>, variables
memdict.hpp some cleanup
parser.cpp move some corewords to core.fth; fix word reading
parser.hpp concise parser; >body, >in, source
state.cpp fix execution lookup; add unloop
state.hpp some cleanup
types.cpp some cleanup
types.hpp some cleanup

README.md

Alee Forth

Still very much in development! Not suitable for real applications yet.

Alee is a portable and concise Forth implementation in modern C++. Its primary aims are for reduced program size and execution efficiency. Portability includes bare-metal platforms, with intentions to support microcontrollers with kilobytes of memory.

Compatibility

A base dictionary is being built by working through the "core" and "core extension" glossaries. These word lists are included in compat.txt, with "yes" indicating that the word is implemented either in core.fth or within Alee itself.

A sys word is available to provide access to user-defined C++ functions.

Building

Alee requires make and a C++17-compatible compiler.

To compile, simply run the make command. This will produce a library, libalee.a, as well as a REPL binary named alee.
A small target exists that optimizes the build for size.