Skip to content

kristopherjohnson/cxxforth

Repository files navigation

Build Status

cxxforth: A Simple Forth Implementation in C++

by Kristopher Johnson

cxxforth is a simple implementation of a Forth system in C++.

The source code is written as a tutorial for implementing Forth, similar in spirit to JONESFORTH. A Markdown-format rendition of the source code is available in cxxforth.cpp.md.

cxxforth implements a subset of the words in the ANS Forth draft standard. Refer to that document for descriptions of those words. Additional non-ANS words are described in the cxxforth source code.

This is free and unencumbered software released into the public domain. See UNLICENSE.txt for details.


Building cxxforth

Building the cxxforth executable and other targets is easiest if you are on a UNIX-ish system that has make, cmake, and Clang or GCC. If you have those components, you can probably build cxxforth by just entering these commands:

cd wherever_your_files_are/cxxforth
make

If successful, the cxxforth executable will be built in the MyFiles/cxxforth/build/ subdirectory.

If you don't have one of those components, or if 'make' doesn't work, then it's not too hard to build it manually. You will need to create a file called cxxforthconfig.h, which can be empty, then you need to invoke your C++ compiler on the cxxforth.cpp source file, enabling whatever options might be needed for C++14 compatibility and to link with the necessary C++ and system libraries. For example, on a Linux system with gcc, you should be able to build it by entering these commands:

cd wherever_your_files_are/cxxforth
touch cxxforthconfig.h
g++ -std=c++14 -o cxxforth cxxforth.cpp