"Assembly" vs. "Assembler"
Asked Answered
F

8

93

I've been taught that "assembly" is what you write in your files, to have your "assembler" convert it into binary code.

But I see these two terms mixed and matched in various works. I've even heard that you write "assembler", after which an "assemblator" makes it executable.

What's the right words to use?

Fungal answered 24/7, 2009 at 7:1 Comment(4)
assembly to assembler, is like c to gcc.Stlaurent
Possible duplicate: #991509Serviceable
Don't forget about .net assemblies, they creates one more "terminology bug"Charger
Personally I think it went wrong when the term "National Assembly" was introduced during the French revolution :-)Tedder
S
100

Actually, the language is called "Assembly Language", and the tool to convert it to machine code is the "Assembler".

More info on Wikipedia: http://en.wikipedia.org/wiki/Assembly_language

Signesignet answered 24/7, 2009 at 7:4 Comment(0)
H
12

The assembly is a piece of code/executable that is in machine executable code. This might be an obj, exe, dll, ... It is the result of a compile.

The assembler is the "compiler" that compiles code into machine executable code. This code has been written in the language "Assembly Language". Assembly language in common English is often called Assembler.

Assemblator seems to be a creative word, born out of necessity to reduce confusion caused by missusing the other terms or a term in a foreign language (see other answers).

Hellenist answered 24/7, 2009 at 7:8 Comment(3)
In microsoft-land, that may be true, but long before .NET came out, people used the word assembly as short-hand for "assembly code" - that is, the source code you provide as input to an assembler to generate a file containing machine code.Collation
@Collation I am an old timer, started programming on computers that almost filled rooms, and this was the use and definition of the words. People started to use them in a sloppy way pretty soon.Hellenist
@Ralph Rickenbach Sorry, I didn't mean to sound condescending in my previous comment. That's just how I'd always heard the terms used until .NET came along and decided to use the word "assembly" to mean something different.Collation
T
11

The purpose of language is to communicate.

If people say things, and other people understand them, they are using the correct terms.

We have rules to make it easier to understand, but in my opinion, if you say what sounds best for you, and let other people say what sounds best for them, and you all understand what you all mean, then everything will be peachy.

For what it's worth, I prefer to write "assembly" and assemble it with an "assembler." I think "assemblator" should be the word of the day someday, and everyone should try to use it as often as possible.

Theophilus answered 24/7, 2009 at 7:3 Comment(3)
This is true in most cases but sometimes a situation is created where 2 people are talking about the same thing and they have no idea.Creditor
@smack - This is possible, but I've never seen anyone who was genuinely confused about the difference between "assembly language" and "assembler language" - most people who are smart enough to know what assembly language is are smart enough to figure out when someone calls it by a slightly different name.Theophilus
Not really. If I tell other developers I compooled my code using the Visual Studio compooler, yes, they're going to figure it out. I communicated "successfully". But if everyone keeps coming up with their own words and meanings we're all constantly translating and distracting each other. It's communication, but inefficient and distracting, not to mention prone to miscommunication and thus problems. If someone's resume says they "wrote assembler" versus "wrote assembly" I'm going to consider they wrote an assembler to compile assembly.Eeg
B
10

This might be a (human) language issue - the Swedish word for "assembler" appears to be "assemblator"...

See also: http://sv.wikipedia.org/wiki/Assemblator

Bascomb answered 24/7, 2009 at 7:7 Comment(1)
This should have far more upvotes.Sisely
K
6

I honestly don't know if there is a 'standard' terminology that suitably differentiates all these concepts. (Example: If I say "ASM" what am I talking about?)

I can give you my definitions, if that helps any.

Machine Code

This is the compiled output of an assembler or compiler.

Assembly

This is the human readable form of machine code. (Or, machine code as we know it.)

I sometimes use the term assembly in place of machine code because it's implied that I'm not going to actually read the machine code, but rather the assembly.

Assembly Language

This refers to a specific machine code language such as x86 assembly.

Assembler

This is a tool like MASM\FASM used for compiling source code into machine code.

Assembler Language

This is the language used by any given assembler.

I view this as being different from assembly language because assemblers can add their own syntactic sugar which does not exist in the underlying assembly language. (High level functions, macros, etc,.)

Killian answered 6/12, 2012 at 21:13 Comment(0)
N
3

You know, I started writing code in the 70s. We always interchanged the two, but also we always knew what we were talking about. I have always been partial to the language being called assembler just because that's what I grew up on. If young kids today want to call it "assembly", or "I-ain't-working-that-hard!", then more power to them. They don't listen, anyway.

Neurath answered 25/5, 2023 at 19:47 Comment(0)
L
1

I'm guessing the origin of these terms goes back to the classic dictionary defintion of assembly: "an assembly of machine instructions to achieve a purpose" which is probably how the computing pioneers thought of a small group of machine instructions. Then an "assembler" is a device that takes individual machine instructions an puts them together into an "assembly".

Leffler answered 14/8, 2009 at 8:53 Comment(0)
R
0

While the code that converts ASM files to PRG or whatever is sometimes referred to as a compiler, that seems to be wrong, it's called assembler, but I'm not quite sure about assemblator, at least I never heard that before. Wikipedia says that assembly language and assembler language are both fine, I personally call it assembler language because I see that more often, at least on german websites. It also says "The conversion process is referred to as assembly, as in assembling the source code. ". I hope that helped.

Rampageous answered 24/11, 2020 at 16:53 Comment(3)
I've also never heard of "assemblator" being a word. According to spellic.com/eng/dictionary/assemblator, it's a word in Swedish but not English. The OP's name is "Henrik", which could be Swedish.Befriend
That would make sense, although the word sounds pretty english as far as I can tell with my 9th-grade-english.Rampageous
"Assemblator" sounds close to French to me (although it wouldn't be spelled that way if it were an actual french word), out of the couple human languages I'm familiar with at all. Also, I'm surprised to see Wikipedia say "assembler language" is valid usage. I've never seen anyone say that on Stack Overflow, or any other discussion of asm. It's common to say "assembler", but not "assembler language". (I'm a native English speaker, and I've known about assembly language for many years, and have read a lot about it.)Befriend

© 2022 - 2024 — McMap. All rights reserved.