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.
Documentation
Core documentation
Overview, features, and API reference.
Release notes
Version history and change details.
Parser extensions
Number syntax, prefixes, and parsing.
Debugger
Step debugging for colon definitions.
Local variables
Syntax and examples for locals.
Object oriented Ficl
OO model, methods, and message passing.
Ficl internals
VM structures and dictionary layout.
OO idioms in C
Design patterns for C interfaces.