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