Assembler- A computer program that takes computer instructions and converts them into a pattern of bits that the computer can understand and perform by it certain operations.
Compiler- This is a special program that processes statements written in a programming language and turns them into machine language that a computer's processor uses.
Here is an article that explains the difference between a compiler and an interpreter.
Structured Programing- a subset of procedural programming that enforces a logical structure on the program being written to make it more efficient and easier to understand and modify.
A compiler translates a program from one computer language ( source language ) into a program in another computer language ( target language ). The source language for a compiler is usually a high level language There are several kinds of computer languages and computer language translators.
An assembler consists of little more than a table look up routine, where each word of the source language ( assembly language ) is looked up in a table for its numerical equivalent, which is then output as part of the target language program. Assembly language generally gives the programmer precise and direct access to every capability of the computer hardware.
Whereas a compiler will translate a computer program into machine code that executes at a later time, an interpreter actually executes the program as it is read. An interpreter must read its input program over and over to compute the results, but a compiler translates it only once. Compilers take longer to get the output from the first time a computer program is run, but subsequent runs are much faster because no addit