tiny-c es un lenguaje de programación estructurado creado con una vocación formativa que combina la sencillez de BASIC con la arquitectura de C. Diseñado como una herramienta pensada para el aprendizaje, ofrece if-then-else, bucles while, funciones, variables globales y locales, punteros, arrays y datos de tipo entero y carácter, todo dentro de un único entorno en el que se editan, ejecutan y almacenan los programas sin necesidad de compiladores, editores de enlace ni módulos reubicables.
El manual describe los principios que lo inspiraron: BASIC, por su inmediatez y por haber sido estándar de facto en la enseñanza en Estados Unidos; LOGO, por demostrar que niños pequeños podían asimilar conceptos de computación con un lenguaje bien estructurado; y C (Ritchie, Kernighan y Lesk), del que adopta la estructura general y la separación entre el núcleo del lenguaje y las funciones de entrada y salida. El propio intérprete de tiny-c está escrito en tiny-c, una decisión que refleja la filosofía de C al usarse para implementar UNIX.
El sistema funciona como un paquete autosuficiente: lenguaje, biblioteca estándar y sistema de preparación de programas, con almacenamiento en cassette o disquete, e independencia del sistema operativo. Incluye además la posibilidad de invocar subrutinas en lenguaje máquina del propio equipo, lo que permite adaptar y extender el lenguaje al hardware donde se ejecute.
El texto incorpora un recorrido paso a paso por un programa completo: un juego de adivinar un número entre 1 y 100 escrito por T. A. Gibson en 1976. El paseo explica los comentarios, la declaración de variables, las asignaciones, las llamadas a funciones como random, pl y gn, el uso de while para el bucle principal y los condicionales if que comparan la suposición con el número aleatorio.
Aunque se concibe como lenguaje de entrenamiento, tiny-c demuestra ser al mismo tiempo una herramienta potente, capaz de integrarse con cualquier sistema y de servir como base para programar otras rutinas nativas.
