We tend use the term assembler as if there is a fundamental implication of being different from a compiler. This disparity is usually taken as a fact, no matter how sophisticated or primitive either the tool or the language it handles is.
This is especially interesting when considering that early on only the term translator (*1) was used for the tool converting source text to machine code, independent of language. Even today IBM still uses the term translator when describing the actual zSeries HLL-Assembler, while FORTRAN has it in its name FORmula TRANslator.
So here's the question:
Why are assemblers named assemblers instead of translators?
Please note, this is not about the first use of the word assembly (*2), not even assembly language(*3), in history, but use of the term assembler for the program instead of translator.
I hope it may as well shed some light on a subsequent puzzle:
Since when are assemblers seen as something different than compilers?
Of course I'm not the first to ask so, there's for example a similar question on SoftwareEngineering.SE: 'Why is Assembly Language called "Assembly"?' (*4). But the answer given there is only citing a different Q&A site which doesn't offer any real insight, but rather self referencing assumptions.
The only plausible explanation I have (*5) is one I got ca. 1978/79 when asking several dinosaurs (*6) the very same question. I spend time lately digging thru old books as well as the net, to find any support, but couldn't find any authoritative answer or at least some tangible hints past common sense.
*1 - Funny enough, (early) German language literature uses Übersetzer, which is literally the same word. Zuse used 'übersetzen' in notes about Plankalkül during the early 1940s. Its use is as well documented with papers about the Z4 in Zürich in 1950.
*2 - As Thomas By reminded, the first use of 'assembly' in a book about computer programming might quite well be the 1951 book The Preparation of Programs for an Electronic Digital Computer which titles section 8-3 of the chapter about Automatic Programming (*7) as assembly of a program.
Wikipedia notes that the book includes
the first use of the term "assembly" in programming, though with a somewhat different meaning than the modern use of the term
When reading (*8) it becomes soon clear, that this 'assembly' is what in today's terminology would be a linker, although more close late binding or dynamic linking by inserting code stubs and indirect references into subroutines that need to be linked with a main program.
There is no resemblance of anything akin to a later assembler.
*3 - Assembly language as in the list of instructions and to to write them in for a certain assembler. These are not identical with the tool assembler or even a major art thereof. In context of an assembler they are a set of predefined shortcuts, much like predefined function provided by some HLL, to simplify usage.
*4 - Note the difference, as I'm asking why a assembler is called such, not why assembly language is, as the later is derivative of the first.
*5 - I was lucky to learn the trade from some exceptional veterans working EDP systems since the late 1950, so essentially since the very first days past of prototypes and one off designs.
*6 - Hoping for unbiased answer I will not replicate it here - at least not now. Eventually next month as an(other) answer.
*7 - There is no praise high enough for archive.org and its maintainers for preserving all of this for everyone (I got the dead tree version at hand :))
*8 - Reading it is really a worthwhile task - although a hard one for many as well, as next to everything may seem alien to today's readers. Written way before today's canon of terms was coined, every word had to be read at face value and considered within the context of the book and the machine (The English EDSAC) refereed to.