Embedded scripting

Rapid development scripting for systems

Ficl is a compact, embeddable interpreter designed to be incorporated into other programs, including memory constrained embedded systems. It has a small memory footprint, ports quickly, and exposes system functions easily for scripting. Ficl's OO extensions enable host data structures to be exposed as objects.

Unlike Lua or Python, Ficl acts as a component of your system. You feed it stuff to do, it does the stuff, and comes back to you for more. You can export compiled code to Ficl, execute Ficl code from your compiled code, or interact with a read-execute-print loop. Your choice. Ficl includes a simple but capable object model that can wrap existing data structures.

Standard C, ANS Forth based, and battle tested in embedded and OS tooling.

  • Compact Under 100K footprint on 32 bit targets
  • Fast porting Written in C11 with no special compiler features
  • Interactive Rapid test and debug loops

Why Ficl?

Compact and embeddable

Keep your embedded images lean while including a full scripting language.

Extend and automate

Expose system functions to Ficl and build on them simply

Threaded VM

Fast execution, JIT compilation, concurrent VM support

OO extensions

Wrap host data structures with a clean method and message system.

Quick start

1. Download the latest release and build with your preferred makefile.

2. Link libficl into your host program and initialize a system.

3. Add your own C words and start scripting interactively.

Jump to the API docs