Small-C es una especificación para un subconjunto del lenguaje de programación C, conveniente para microcomputadores limitados en recursos y para sistema embebidos. También se refiere a la implementación de ese subconjunto de instrucciones. Originalmente valioso como desarrollo temprano de un compilador para sistemas de microcomputadores disponibles durante el periodo que se extiende entre fines de los años 1970 y principios de los 1980. Esta implementación también ha sido útil como ejemplo simple para propósitos de enseñanza.
El compilador original, escrito en Small-C para el Intel 8080 por Ron Cain, apareció en la edición de mayo de 1980 del Dr. Dobb's Journal. James E. Hendrix mejoró y extendió el compilador original, y escribió el manual The Small-C Handbook. Ron hizo un Small-C con capacidad de bootstrap, en el sistema Unix PDP 11/45 del Stanford Research Institute, con una cuenta proporcionada por John Bass para el desarrollo del Small C (con el permiso de la gerencia, siempre que el código fuente del compilador fuera puesto a disposición en el dominio público). Small-C era importante para los computadores más pequeños de forma algo análoga a la importancia que tenía el GCC para los computadores más grandes. Tal como sus contrapartes de Unix, el compilador genera código ensamblador, que enseguida debe ser traducido al código de máquina por un ensamblador disponible.
Small-C es un compilador redirigible (retargeting compiler). Portar al Small C requiere solo que el generador de código del back-end sea reescrito para el procesador objetivo.
En 2007, Small C, con casi veinticinco años de antigüedad - todavía era usado, portado y estudiado por la gente que quiere aprender cómo se escribe un compilador.
Referencias
- 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