A very small C interpreter (Note: Originally a fork of https://github.com/RTSYork/picoc)
Go to file
zik.saleeba ef8bd5cdae Added a README file
git-svn-id: http://picoc.googlecode.com/svn/trunk@112 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-24 21:00:35 +00:00
tests Added pointer test case 2009-02-24 02:12:20 +00:00
clibrary.c Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
heap.c Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
hello.c Intrinsic functions implemented 2008-12-27 04:36:45 +00:00
lex.c Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
Makefile Excluding platform specific code from line count 2009-02-24 19:43:03 +00:00
parse.c Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
picoc.c Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
picoc.h Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
platform_library.c Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
platform_support.c Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
README Added a README file 2009-02-24 21:00:35 +00:00
table.c Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
TODO Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00
type.c Fixed some inconsistencies in array handling 2009-02-24 02:28:35 +00:00
variable.c Big reorganisation to make it easier to port to different targets 2009-02-24 11:16:37 +00:00

picoc
-----

PicoC is a very small C interpreter. It's intended for use as a script 
language for embedded systems. It was originally written to be the
script language for a UAV on-board flight system and is very suitable 
for other robotic, embedded and also non-embedded applications.

The core C source code is less than 3000 lines of code. 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.



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_support.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 new 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_support.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.