it is very difficult to handle multiple segments, especially if the source programs are in different languages, and to produce orderly modular programs.
a portion of memory is wasted because the core occupied by the assembler is unavailable to the object program.
All of these
it is necessary to retranslate the user's program deck every time it is run.
to parse the source program into the basic elements or tokens of the language.
to recognize the major constructs of the language and to call the appropriate action routines that will generate the intermediate form or matrix for these constructs.