Esto tiene una respuesta muy clara, en realidad: el código fuente vino primero , por un gran margen.
Antes de dar los detalles técnicos, un poco de perspectiva:
Los primeros lenguajes de programación fueron todas traducidas al lenguaje de máquina o ensamblador con la mano . La idea de usar una pieza de software para automatizar esta traducción (ya sea a través de un compilador o un evaluador) siempre surgió más tarde, y estaba lejos de ser intuitiva.
Considere esta cita del artículo de Wikipedia sobre FORTRAN que ilustra la resistencia que los compiladores tuvieron que enfrentar:
… El primer compilador FORTRAN [se entregó] en abril de 1957. Este fue el primer compilador optimizador, porque los clientes eran reacios a usar un lenguaje de programación de alto nivel a menos que su compilador pudiera generar código cuyo rendimiento fuera comparable al del lenguaje ensamblador codificado a mano . [énfasis mío]
=> Cuando el compilador FORTRAN llegó al mercado (1957), la gente ya estaba felizmente programando tanto en lenguaje ensamblador como en FORTRAN.
El caso fue similar para LISP (de Hackers & Painters ):
Steve Russell dijo, mira, ¿por qué no programo esta evaluación ...? Y le dije, ho, ho, estás confundiendo la teoría con la práctica, esta evaluación está destinada a la lectura, no a la informática. Pero él siguió adelante y lo hizo. Es decir, compiló la evaluación en mi artículo en el código de máquina IBM 704, corrigiendo el error, y luego lo publicitó como un intérprete de Lisp, que ciertamente era. Entonces, en ese momento, Lisp tenía esencialmente la forma que tiene hoy ... "
Una vez más, no solo el código fuente (en LISP) es anterior al intérprete, este último ni siquiera estaba implícito en el primero.
Pero estos desarrollos son relativamente tardíos. Incluso sin considerar el motor analítico de Charles Babbage y el primer programa relacionado de Ada Lovelace , hubo lenguajes de programación en el siglo XX que precedieron a los compiladores:
Plankalkül de Konrad Zuse y la construcción matemática del cálculo λ introducida por Alonzo Church. Ambos son indudablemente lenguajes de programación formalmente especificados, pero ninguno tenía un compilador en ese momento.
Para poner esto en perspectiva, el cálculo λ es de la década de 1930, y Plankalkül se desarrolló alrededor de 1945. Por el contrario, el primer compilador FORTRAN salió en 1957 (pero nuevamente tres años después de que se especificó FORTRAN).