System programming involves designing and implementing system programs that assist in the execution of general user programs. This includes operating systems, compilers, assemblers, linkers, and debuggers. The document discusses what system and programming are, types of software, system programs, and components of system programming like interpreters, assemblers, compilers, macros, and operating systems. It also explains the functions of operating systems and types of translators like assemblers, compilers, cross assemblers, cross compilers, and interpreters. Loaders, macro processors, linking, and formal systems are also defined. Finally, the document discusses two-pass assemblers, specifying the problem, data structures, and general design procedure.