Pequeña-C - Small-C
Desarrollador (es) | Ron Cain, James E. Hendrix |
---|---|
Versión inicial | 1980 |
Escrito en | Lenguaje de programación C |
Tipo | Compilador |
Licencia | Derechos de autor pero compartibles |
Small-C es tanto un subconjunto del lenguaje de programación C , adecuado para microcomputadoras con recursos limitados y sistemas integrados , como una implementación de ese subconjunto. Originalmente valiosa como un compilador temprano para sistemas de microcomputadoras disponibles a fines de la década de 1970 y principios de la de 1980, la implementación también ha sido útil como un ejemplo lo suficientemente simple para propósitos de enseñanza.
El compilador original, escrito en Small-C para Intel 8080 por Ron Cain, apareció en la edición de mayo de 1980 del Journal of Computer Calisthenics & Orthodontia del Dr. Dobb . James E. Hendrix mejoró y amplió el compilador original y escribió The Small-C Handbook . Ron bootstrap Small-C en el SRI International PDP-11 /45 Unix sistema con una cuenta proporcionada por John Bass para el desarrollo Pequeño C. El código fuente proporcionado fue liberado con permiso de administración al dominio público . Small-C era importante para las computadoras pequeñas de una manera algo análoga a la importancia de GCC para las computadoras más grandes. Al igual que sus homólogos de Unix , el compilador genera código ensamblador , que luego debe ser traducido a código máquina por un ensamblador disponible .
Small-C es un compilador retargetable . Portar Small-C solo requiere que el generador de código de back-end y las llamadas de interfaz de biblioteca a sistema operativo se reescriban para el procesador de destino.
Subconjunto de idiomas
"En mayo de 1980, el Dr. Dobb's Journal publicó un artículo titulado" Un pequeño compilador de C para los años 8080 "en el que Ron Cain presentaba un pequeño compilador para un subconjunto del lenguaje C. La característica más interesante del compilador, además de su pequeño tamaño, era el lenguaje en el que estaba escrito, el que compiló. ¡Era un autocompilador! (Aunque esto es un lugar común hoy en día, era una idea bastante novedosa en ese momento). Con un algoritmo simple de una sola pasada, su compilador generó lenguaje ensamblador para el procesador 8080. Sin embargo, al ser pequeño, tenía sus limitaciones. Solo reconocía caracteres, números enteros y matrices de una sola dimensión de cualquier tipo. El único dispositivo de control de bucle era la instrucción while. No había operadores booleanos, por lo que En su lugar, se utilizaron los operadores lógicos bit a bit & (AND) y | (OR), pero incluso con estas limitaciones, era un lenguaje muy capaz y un placer de usar, especialmente en comparación con el lenguaje ensamblador.
Reconociendo la necesidad de mejoras, Ron me animó a producir una segunda versión, y en diciembre de 1982 también apareció en el Dr. Dobb's Journal. El nuevo compilador aumentó Small C con (1) optimización de código, (2) inicialización de datos, (3) compilación condicional, (4) la clase de almacenamiento externo, (5) las declaraciones for, do / while, switch y goto, ( 6) operadores de asignación de combinación, (7) operadores booleanos, (8) el operador de complemento a uno, (9) bloquear variables locales y (10) varias otras características. Luego, en 1984, Ernest Payne y yo desarrollamos y publicamos una biblioteca en tiempo de ejecución compatible con CP / M para el compilador. Constaba de más de 80 funciones e incluía la mayoría de las de la biblioteca de E / S estándar de UNIX C, las que pertenecían al entorno CP / M. Esta se convirtió en la versión 2.1 y en el tema del Manual Small C. "
Ver también
- BDS C (1979): compilador de C para sistemas Z80 y 8080
- MISOSYS C (1985) - compilador C para TRS-80 (CPU Z80)
- Tiny C (2002): compilador de C para computadoras lentas x86 y ARM que tienen poco espacio en disco
Variantes de Small-C
- Z88DK : implementación Cross Small-C para microcomputadoras basadas en Z80
- cc65 - Implementación Cross Small-C para equipos 6502
- Deep Blue C : Native Small-C para la familia Atari de 8 bits
- AJTravis - Native Small-C para BBC Micro
Referencias
Notas
- Ron Cain, "A Small C Compiler for the 8080's", Dr. Dobb's Journal , abril-mayo de 1980, págs. 5-19
- James E. Hendrix, El manual de Small-C , 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, Compilador de Small C , M & T Books 1990, ISBN 1-55851-124-5
enlaces externos
- Comentarios de Ron Cain sobre la creación de Small-C
- Varias implementaciones de Small-C
- Compilador nativo para BBC Computer
- Descarga de imágenes iso del CDROM de recursos Small-C del Dr. Dobb