Questa ha una risposta molto chiara, in realtà: il codice sorgente è arrivato per primo - con un grande margine.
Prima di fornire i dettagli tecnici, un po 'di prospettiva:
I primi linguaggi di programmazione sono stati tutti tradotti in linguaggio macchina o assembler a mano . L'idea di utilizzare un software per automatizzare questa traduzione (tramite un compilatore o un valutatore) è sempre venuta dopo, ed era tutt'altro che intuitiva.
Considera questa citazione dell'articolo di Wikipedia su FORTRAN che illustra le riluttanze che i compilatori hanno dovuto affrontare:
... il primo compilatore FORTRAN [è stato] consegnato nell'aprile 1957. Questo è stato il primo compilatore di ottimizzazione, poiché i clienti erano riluttanti a usare un linguaggio di programmazione di alto livello a meno che il suo compilatore non potesse generare codice le cui prestazioni erano paragonabili a quelle del linguaggio assembly codificato a mano . [enfasi mia]
=> Quando il compilatore FORTRAN arrivò sul mercato (1957), la gente stava già programmando felicemente sia in linguaggio assembly che in FORTRAN.
Il caso era simile per LISP (da Hackers & Painters ):
Steve Russell ha detto, guarda, perché non programma questo eval ..., e gli ho detto, ho, ho, stai confondendo la teoria con la pratica, questo eval è destinato alla lettura, non all'informatica. Ma è andato avanti e l'ha fatto. Cioè, ha compilato l'eval nel mio documento nel codice macchina di IBM 704, risolvendo bug, e poi pubblicizzato come un interprete Lisp, che sicuramente lo era. Quindi a quel punto Lisp aveva essenzialmente la forma che ha oggi ... "
Ancora una volta, non solo il codice sorgente (in LISP) precede l'interprete, il secondo non era neppure implicito nel primo.
Ma questi sviluppi sono relativamente tardi. Pur non considerando il motore analitico di Charles Babbage e il primo programma correlato di Ada Lovelace , nel XX secolo esistevano linguaggi di programmazione che precedevano i compilatori:
Plankalkül di Konrad Zuse e il costrutto matematico del calcolo λ introdotto dalla Chiesa di Alonzo. Entrambi sono linguaggi di programmazione specificati formalmente indubbiamente, ma al momento nessuno dei due aveva un compilatore.
Per metterlo in prospettiva, il calcolo λ risale agli anni '30 e Plankalkül fu sviluppato intorno al 1945. Al contrario, il primo compilatore FORTRAN uscì nel 1957 (ma ancora tre anni dopo che FORTRAN fu specificato).