The idea of Assembly Language as a distinct context is the fact that a computer can be programmed by a language that is not the language of the computer (the machine language). This context is the beginning of all of the languages that are used to program a computer. The variations are then the multitude of different programming languages that can be translated into machine language.
The assembling (translating to machine language) of the assembly source code (the code written by the programmer) requires several steps. The code first needs to be tokenized. In the second step the meaning of each token, related to its associated tokens in the present statement, is evaluated. This is like interpreting English phrases by using parts of speech. The interpretation provides a basis for creating an object file. This object file needs to be linked, meaning the named references in the programmers code need to be replaced with actual address references in the final file. The CPU cannot run the code unless the references are by address. This linking must be done after the size of the machine code is known. Linking produces the executable file.