Originalmente publicado por
Ariel3
Hablando en serio, pensá que un compilador como por ejemplo gcc solo cumple la función de traducir un lenguaje de un nivel más alto en este caso C, a un lenguaje entendible por una máquina. Es decir que si nos remontamos al pasado antes las cosas se hacían a un nivel mucho más bajo, acercandose a la electrónica tal cual te dijeron.
Antes se programaba en tarjetas perforadas o tenias un conjunto de switches biestado, indicando 0 y 1 e ibas a mano introduciendo la combinacion de bits de cada instruccion y la ibas introducioendo a mano de esa forma en codigo maquina directamente, asi se programaba desde los comienzos, una vez hecho eso se desarroollaron los promeros ensambladores que transformaban codigo en ensamblador (que era legible para el programador) en instrucciones codigo maquina en una relacion casi 1 a 1... Una vez que habia ensambladores comenzaron a desarrollar el resto de los programas en ensamblador...
Los Kernels de los sistemas operativos antiguos eran privativos y se escribian en assembler, x ejemplo los mainframes de IBM y las maquinas IBM 360 / 370 estaban todos escritos en assembler, y sobre assembler desarrollaron varios lenguajes de programacion de alto nivel como COBOL y PL1 miucho antes de C / C++
Saludos
Pablo