f888905fca
PicoC is a very small C interpreter for scripting. It was originally written as the 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 4000 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. picoc has been tested on x86-32, x86-64, powerpc, arm, ultrasparc, HP-PA and blackfin processors and is easy to port to new targets. To show it working on the old DECUS grep program (included as one of its tests): % time picoc work/picoc/tests/46_grep.c - case work/picoc/tests/46_grep.c File work/picoc/tests/46_grep.c: "lower-case are always ignored. Blank lines never match. The expression", case '^': case '$': case '.': case '[': case ':': ... 0.651u 0.000s 0:00.68 95.5% 0+0k 0+0io 0pf+0w % wc work/picoc/tests/46_grep.c 557 1991 15172 work/picoc/tests/46_grep.c %
14 lines
764 B
Text
14 lines
764 B
Text
PicoC is a very small C interpreter for scripting. It was originally
|
|
written as the 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 4000 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.
|
|
|
|
picoc has been tested on x86-32, x86-64, powerpc, arm, ultrasparc,
|
|
HP-PA and blackfin processors and is easy to port to new targets.
|