Small-C is both a subset of the C programming language, suitable for resource-limited and , 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. 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-like counterparts, the compiler generates assembler code, which then must be translated to machine code by an available assembler.
Small-C is a retargetable compiler. Porting Small-C requires only that the back-end code generator and the library to operating system interface calls be rewritten for the target processor.
A second version, now called Version 2.1, of the Small-C compiler was later developed by James E. Hendix, extending Small-C with many features commonly used in C. The new compiler optimized code by default and allowed preprocessor directives for conditional compilation. Added features include boolean operators, For loop, Do while loops, Switch statement, and Goto. This allowed programming much closer to standard C.
Rick Grehan ported Small-C to MS-DOS and Macintosh in 1988 for a new version of the BYTE benchmarks.
|
|