views:

454

answers:

6

As programmers we need to be precise with our verbal and written communication. Why do so many programmers confuse the term "assembler" (the object code generator) with "assembly" (the language you program in)?

The distinction is unambiguous. Could there be historical explanation?

+2  A: 

Probably because the words are so similar?

Kobi
+8  A: 

The reason it's sometimes called "assembler language" is that the assembler, as a program, understands that language.

For example, there are different assemblers generating x86 machine code. Their languages are different, so basically you are writing in say, GAS assembler's language.

Mehrdad Afshari
This is definitely a reasonable explanation, though I suspect some programmers confuse the two out of laziness ^_^
emddudley
Also, it seems that in several European languages, "assembler" is the proper term in general when referring to the language itself.
none
Do you have any examples of which European languages? I think that is an interesting point.
emddudley
"Laziness" is what people have been saying about changes in English for hundreds of years. The language is full of words and usages that used to be "incorrect" that are now "correct." I'm reading H. L. Mencken's "The American Language," and it's amazing what words used to be considered incorrect and offensive to the ear.
Nosredna
@emddudley - yep. 'tis true. For example, in my language (Croatian) it would go "programiranje u asembleru", by direct translation "programming in assembler". Maybe the correct translation *would be* "in assembly language", but most will use the first one. But why do these things bother anyone anyhow ? It's not that someone will miss the point.
ldigas
@Nosredna - I've always liked that about the english. They take what used to be a shortcut word/slang/... and make it into a word, a term. Some may think it incorrect, or weird, but to me it's the most natural evolution of a language.
ldigas
@Idigas, a lot of the innovation (especially in grammar) comes when English collides with other languages. English is a second language for many people, and it was imposed on many people. Sort of like when musical styles collide. http://en.wikipedia.org/wiki/Creole_language
Nosredna
In German we call both the language and the tool "Assembler", too. In English I tend to keep them separate.
starblue
Given that I cannot currently post responses, I have pasted my original response here (using SO markup however): http://codepad.org/RvPr1jxr
none
@none, you should be able to answer now. Looks like the question was reopened
Nosredna
@Nosredna - uhmm, yes. I said that.
ldigas
As starblue says, in Spanish also we use only "assembler".
Eliseo Ocampos
+9  A: 

Because speech errors don't throw stack overflows?

ylebre
+1  A: 

Not sure, but I would say that those programmers are the SAME ones who - when you ask them if their coding is completed, they answere..."well, yes and no..."...arrrghhh!!

+10  A: 

I'd guess it's because it's so much quicker to say "assembler" than "assembly language." I remember a lot of people saying "ML" in the 80s. I liked "ML." Nice and short, and it sounds like it could be one of Superman's relatives.

"Assembly language" is long and awkward. It sounds like a term that might have come out of the UN. "Assembler" has a nice "blood and guts" feel that matches the experience of low-level programming.

The usage of "assembler" to mean "assembly language" has been around for decades. "Written in assembly language" just barely beats "written in assembler" in a Google fight, so on the usage front I'd say either is valid. "Code Complete 2" uses the term "assembler" in the description of languages section.

You get many historically interesting pages if you search for "written in 68000 assembler," "written in 6502 assembler," etc.

The usage is mentioned on wikipedia.

Note that, in normal professional usage, the term assembler is often used ambiguously: It is frequently used to refer to an assembly language itself, rather than to the assembler utility. Thus: "CP/CMS was written in S/360 assembler" as opposed to "ASM-H was a widely-used S/370 assembler."

Words often have multiple meanings. English is not assembler.

Nosredna
I tend to say "written in assembly" myself, which is marginally shorter and sounds just as good.
Chris Lutz
I usually say "assembly" or "azzmmmmmm." If I'm feeling bloated, authoritative, or haughty, I'll say "assembly language."
Nosredna
I say "assembly" or even "asm" instead of "assembly language"
Joe Philllips
A: 

From Answers:

Assembly: 5 Computer Science. The automatic translation of symbolic code into machine code. 6 Computer Science. An assembly language.

Assembler: 2 Computer Science. A program that produces executable machine code from symbolic assembly language.

Then, simplifying, an assembler is a tool that help us to translate symbols by assembling them, producing in this way the machine code. IMHO this would be the correct way to use this terms.

Eliseo Ocampos
Why the downvote?
Eliseo Ocampos