Cela a une réponse très claire, en fait: le code source est venu en premier - par une grande marge.
Avant de donner les détails techniques, un peu de recul:
Les premiers langages de programmation ont tous été traduits à la main en langage machine ou assembleur . L'idée d'utiliser un logiciel pour automatiser cette traduction (via un compilateur ou un évaluateur) est toujours venue plus tard et était loin d'être intuitive.
Considérez cette citation de l'article de Wikipedia sur FORTRAN qui illustre les réticences auxquelles les compilateurs ont dû faire face:
… Le premier compilateur FORTRAN [a été] livré en avril 1957. Il s'agissait du premier compilateur d'optimisation, car les clients hésitaient à utiliser un langage de programmation de haut niveau à moins que son compilateur puisse générer du code dont les performances étaient comparables à celles d'un langage d'assemblage codé à la main . [c'est moi qui souligne]
=> Au moment où le compilateur FORTRAN est arrivé sur le marché (1957), les gens programmaient déjà avec bonheur en langage assembleur et en FORTRAN.
Le cas était similaire pour LISP (de Hackers & Painters ):
Steve Russell a dit, regardez, pourquoi je ne programme pas cet eval…, et je lui ai dit, ho, ho, vous confondez théorie et pratique, cet eval est destiné à la lecture, pas à l'informatique. Mais il est allé de l'avant et l'a fait. Autrement dit, il a compilé l'eval dans mon article en code machine IBM 704, corrigeant le bug, puis l'a annoncé comme un interpréteur Lisp, ce qui était certainement le cas. Donc à ce moment-là, Lisp avait essentiellement la forme qu'il a aujourd'hui ... "
Encore une fois, non seulement le code source (dans LISP) est antérieur à l'interpréteur, ce dernier n'était même pas implicite dans le premier.
Mais ces développements sont relativement tardifs. Même sans tenir compte du moteur analytique de Charles Babbage et du premier programme connexe d'Ada Lovelace , il y avait des langages de programmation au 20e siècle qui étaient antérieurs aux compilateurs:
Plankalkül de Konrad Zuse et la construction mathématique du λ-calcul introduite par Alonzo Church. Ces deux langages de programmation sont indubitablement spécifiés formellement, mais aucun n'avait de compilateur à l'époque.
Pour mettre cela en perspective, le λ-calcul date des années 1930 et Plankalkül a été développé vers 1945. En revanche, le premier compilateur FORTRAN est sorti en 1957 (mais encore trois ans après que FORTRAN ait été spécifié).