Background; Assemblers: basic functions, machine-dependent features, machine-independent features, assembler design options; Loaders and linkers: basic functions, machine-dependent features, machine-independent features, loader design options; Macro processors: basic functions, macro processor design options; Compilers: grammars, lexical analysis, syntax analysis, code generation; Drivers. Weekly practice in the lab.