Types of High Level Languages
Procedural (imperative): instruction sequence controlled by programmer. Program assigns values to variables
Functional: programmer controls functions which interact with each other. Sequence of function usage is not deterministic
Logic: programmer controls logic and rules which describe a problem, program evaluates these rules