SMALL C is a "C" language compiler that is available with source code. It is very easy to port to another CPU, and this has been done many times.
SMALL C for 8088 : 101K This is SMALL C converted to the 8088 by Byte magazine. It is Public Domain, so have fun with it. The README.DOC file doesn't specify which original version this compiler is based on.
SMALL C Interpreter : 64K : Here are two versions of a SMALL C interpreter. This ZIP file conatains versions for MS-DOS and CP/M-80.
SMALL C/Plus v1.0 : 221K Small C V1.0 with structures/unions,floating point, and more. Runs on CP/M (61K TPA required). Generates a rather weird set of mnemonics but assembler is furnished.
SMALL C v1.1 for CP/M-86 : 103K SMALL C v1.1 for CP/M-86. This version is based on the original version of SMALL C by Ron Cain.
SMALL C v1.2 : 363K This version of SMALL C is a cross compiler. It runs on a PC under MS-DOS, and generates 8080 code targeted to CP/M. By Ron Cain.
SMALL C v2.1 : 87K SMALL C v2.1 by Jim Hendrix. This version of the compiler generated code for the 8080 CPU. This is the distribution file set from Jim Hendrix. It is considered to be shareware, and a "registration" fee is requested.
SMALL MAC : 129K SMALL MAC is a macro assembler/linking loader combination. It is written in SMALL C and provided as source code. It is supposed to be easy to port to other processors. This version will handle the 8080, and Z80, CPU's. This is also by Jim Hendrix, and is shareware.
SMALL TOOLS : 53K Here are some text processing tools, including a text editor, for SMALL C. They are distributed as source code. I couldn't find any reference as to whether or not there is any processor dependant code in these files, but there is reference to the standard assembler/linker for the PC. Again, these files came from Jim Hendrix, and are considered to be shareware.