A very small C interpreter
(Note: Originally a fork of https://github.com/RTSYork/picoc)
cstdlib | ||
msvc/picoc | ||
platform | ||
tests | ||
.gitignore | ||
clibrary.c | ||
debug.c | ||
expression.c | ||
heap.c | ||
include.c | ||
interpreter.h | ||
lex.c | ||
LICENSE | ||
Makefile | ||
parse.c | ||
picoc.c | ||
picoc.h | ||
platform.c | ||
platform.h | ||
README | ||
table.c | ||
type.c | ||
variable.c |
picoc ----- PicoC is a very small C interpreter for scripting. It was originally written as a script language for a UAV's on-board flight system. It's also very suitable for other robotic, embedded and non-embedded applications. The core C source code is around 3500 lines of code. It's not intended to be a complete implementation of ISO C but it has all the essentials. When compiled it only takes a few k of code space and is also very sparing of data space. This means it can work well in small embedded devices. It's also a fun example of how to create a very small language implementation while still keeping the code readable. It's been tested on x86-32, x86-64, powerpc, arm, ultrasparc, HP-PA and blackfin processors and is easy to port to new targets. Compiling picoc --------------- picoc can be compiled for a UNIX/Linux/POSIX host by typing "make". The test suite can be run by typing "make test". Porting picoc ------------- platform.h is where you select your platform type and specify the includes etc. for your platform. platform_XXX.c contains support functions so the compiler can work on your platform, such as how to write characters to the console etc.. platform_library.c contains your library of functions you want to make available to user programs. There's also a clibrary.c which contains user library functions like printf() which are platform-independent. Porting the system will involve setting up suitable includes and defines in platform.h, writing some I/O routines in platform_XXX.c, putting whatever user functions you want in platform_library.c and then changing the main program in picoc.c to whatever you need to do to get programs into the system. platform.h is set to UNIX_HOST by default so tests can be easily run on a UNIX system. You'll need to specify your own host setup dependent on your target platform. Copyright --------- picoc is published under the "New BSD License". http://www.opensource.org/licenses/bsd-license.php