(a) The nature of applications, justifying suitable applications for a specific purpose.
(b) Utilities.
(c) Open source vs closed source.
(d) Translators:Interpreters, compilers and assemblers.
(e) Stages of compilation (lexical analysis, syntax analysis, code generation and optimisation).
(f) Linkers and loaders and use of libraries.