Fundamental styles of structuring programs, such as object-oriented, functional or logic-based approaches.