resumen - proposito del lenguaje c
¿Cómo se escribió el primer compilador de C? (3)
El primer compilador de C no se escribió en C, por lo general, al escribir un compilador utilizamos el lenguaje ensamblador u otro lenguaje de programación, y es común que después de la primera compilación, el compilador se reescriba en su idioma nativo.
Hay una gran cantidad de lenguajes de programación que se han escrito en C y luego se reescriben en su lengua materna: Java, por ejemplo, Ada ...
¿Es cierto que el primer compilador de C fue escrito en C? Entonces, ¿cómo se ejecutó y compiló? O bien, ¿este compilador estaba escrito en lenguaje ensamblador?
Leer la nota de Dennis Ritchie sobre primevalC indica que, al igual que el huevo y la gallina, C evolucionó a partir de un lenguaje precursor junto con su propio compilador mediante el arranque. Las escalas de tiempo de especiación fueron más rápidas que las de Gallus gallus domesticus.
Incluso se puede ver el código fuente del compilador atrapado en medio de la agitación evolutiva. La nota está vinculada a dos instantáneas restauradas de copias de seguridad en cinta. Este código también se source Estas instantáneas constituyen fósiles intermedios, años antes de la sintaxis de K & R. La descripción de Dennis de una de las cintas muestra que es un fotograma congelado de las estructuras que se arrancan:
"prestruct-c" es una copia del compilador justo antes de que comenzara a cambiarlo para usar estructuras.
En otras palabras, el compilador se había aumentado para admitir estructuras pero aún no las usaba . Un buen momento para hacer una copia de seguridad en cinta ...
Se describe bastante bien en el escrito de Dennis Ritchie sobre la historia del lenguaje C.
Dando solo un resumen de lo que escribió allí, use su artículo para obtener detalles más precisos. C comenzó con el lenguaje BCPL, Ken Thomson tuvo acceso a un compilador que se ejecutaba en su marco principal General Electrics 635. Descontento con el lenguaje, Thomson utilizó BCPL para escribir un compilador para el lenguaje B, un paso evolutivo más allá de BCPL que eliminó algunos de los problemas técnicos en BCPL.
Usaron B para crear programas en su minicomputadora PDP-7, aunque la mayoría de ellos eran poco más que programas de juguete, la máquina tenía capacidades de hardware muy restringidas. Un paso importante que tomó Thomson fue reescribir el compilador B en B mismo. Un paso común de arranque.
Ese compilador fue gradualmente ajustado, a través de un paso intermedio efímero llamado NB (Nuevo B) para comenzar a parecerse a C. El miniordenador PDP-11 fue instrumental en ese paso, dándoles suficiente espacio para mejorar el lenguaje y el compilador.