"Compile" appears to have taken over for "translate" as an informal synonym until the term translate wasn't needed anymore. "Assemble" is older than either term.
The FORTRAN Automatic Coding System of February 1957 uses all three terms — compile, assemble, and translate — with different meanings. Compilation makes up the first several steps of the translator; assembly is the last step. The text explains it this wayI have bolded the words in the below excerpt:
THE FORTRAN TRANSLATOR
General Organization of the System
The FORTRAN translatortranslator consists of six successive sections, as follows.
- Reads in and classifies statements. For arithmetic formulas, compilescompiles the object (output) instructions. For nonarithmetic statements including input-output, does a partial compilationcompilation, and records the remaining information in tables. All instructions compiled in this section are in the COMPAIL file.
- CompilesCompiles the instructions associated with indexing, which result from DO statements and the occurrence of subscripted variables, These instructions are placed in the COMPDO file
- Merges the COMPAIL and COMPDO files into a single file, meanwhile completing the compilationcompilation of nonarithmetic statements begun in Section 1. The object program is now complete, but assumes an object machine with a large number of index registers.
- Carries out an analysis of the flow of the object program, to be used by Section 5.
- Converts the object program to one which involves only the three index registers of the 704.
- AssemblesAssembles the object program, producing a relocatable binary program ready for running. Also on demand produces the object program in SHARE symbolic language.
(Note: Section 3 is of internal importance only; Section 6 is a fairly conventional assemblyassembly program. These sections will be treated only briefly in what follows.)
The note at the end implies that "assembly" was already such an established term at the time that the reader is expected to already know what it means. Translation and compilation were concepts layered on top of assembly.
Thus, I've come doubt a premise of this question — I'm not sure that "translator" is the oldest of the three terms. Because this text explains translation in detail but assumes understanding of assembly, it makes me guess that the term assembly was established a longer time ago.
The text also uses the word "compile" in a way that would be very familiar to us today:
These were compiled by the 704 in six minutes, producing about 1000 instructions. He ran the program and found the output incorrect. He studied the output (no tracing or memory dumps were used) and was able to localize his error in a FORTRAN statement he had written. He rewrote the offending statement, recompiled, and found that the resulting program was correct
This little anecdote about recompiling your code is an everyday experience for programmers today, but was novel enough in 1957 to require explanation. It shows us programmers who speak of "compiling" their code, not "translating" their code.
This 1957 document was the first published programmers' reference for the first compiled language. So, at a very early date, all three terms were used. A draft from 1954 (a few years before the first compiler was written) called The IBM Mathematical Formula Translating System does not use the terms compile, assemble, or translate. Thus it seems likely to me that "compile" and "translate" arose as distinct from "assemble" sometime between 1954 and 1957.
I feel the real question becomes: why did the word "translate" get dropped? The answer may simply be that, as we see in the 1957 anecdote, programmers were casually using the word "compile" instead of translate. Compilation was the first step in translation — the step that humans touched. Perhaps by synecdoche it came to stand for the entire translation process.