|Developer(s)||Ron Cain, James E. Hendrix|
|Written in||C programming language|
|License||Copyrighted but sharable|
Small-C is both a subset of the C programming language, suitable for resource-limited microcomputers and embedded systems, and an implementation of that subset. Originally valuable as an early compiler for microcomputer systems available during the late 1970s and early 1980s, the implementation has also been useful as an example simple enough for teaching purposes.
The original compiler, written in Small-C for the Intel 8080 by Ron Cain, appeared in the May 1980 issue of Dr. Dobb's Journal of Computer Calisthenics & Orthodontia. James E. Hendrix improved and extended the original compiler, and wrote The Small-C Handbook. Ron bootstrapped Small-C on the SRI International PDP 11/45 Unix system with an account provided by John Bass for Small C development. The provided source code was released with management permission into the public domain. Small-C was important for tiny computers in a manner somewhat analogous to the importance of GCC for larger computers. Just like its Unix counterparts, the compiler generates assembler code, which then must be translated to machine code by an available assembler.
- BDS C (1979) – C compiler for Z80 and 8080 systems
- MIOSYS C (1985) - C compiler for TRS-80 (Z80 CPU)
- Tiny C (2002) – C compiler for slow x86 and ARM computers having little disk space
- Z88DK – Cross Small-C implementation for Z80 based microcomputers
- cc65 – Cross Small-C implementation for 6502 computers
- Deep Blue C – Native Small-C for the Atari 8-bit family
- A.J.Travis – Native Small-C for the BBC Micro
- "C compilers for the BBC Computer". Mdfs.net.
- Ron Cain, "A Small C Compiler for the 8080's", Dr. Dobb's Journal, April–May 1980, pp. 5–19
- James E. Hendrix, The Small-C Handbook, Reston 1984, ISBN 0-8359-7012-4
- James E. Hendrix, A Small C Compiler: Language, Usage, Theory, and Design, M & T Books 1988, ISBN 0-934375-88-7
- James E. Hendrix, Small C Compiler, M & T Books 1990, ISBN 1-55851-124-5