A portable and concise Forth implementation in modern C++
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.
 
 
 
 
 
Go to file
Clyne 1815716fc7 .(, buffer:, c", erase 2 years ago
.gitignore build as library; add small target 2 years ago
LICENSE initial commit 2 years ago
Makefile some cleanup 2 years ago
README.md begin work on core extensions; fix does> 2 years ago
alee.cpp .(, buffer:, c", erase 2 years ago
alee.hpp build as library; add small target 2 years ago
compat.txt .(, buffer:, c", erase 2 years ago
core.fth .(, buffer:, c", erase 2 years ago
corewords.cpp move some corewords to core.fth; fix word reading 2 years ago
corewords.hpp move some corewords to core.fth; fix word reading 2 years ago
dictionary.cpp move some corewords to core.fth; fix word reading 2 years ago
dictionary.hpp create, does>, variables 2 years ago
memdict.hpp some cleanup 2 years ago
parser.cpp move some corewords to core.fth; fix word reading 2 years ago
parser.hpp concise parser; >body, >in, source 2 years ago
state.cpp fix execution lookup; add unloop 2 years ago
state.hpp some cleanup 2 years ago
types.cpp some cleanup 2 years ago
types.hpp some cleanup 2 years ago

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.