Beyond the basic concepts defined to this point, programming languages often implement more advanced concepts. These can include:
- Data Abstraction - sometimes known as encapsulation, this is the process of hiding data from the user of a given framework or API.
- Generic Abstraction - providing common classes that can accept generic data types as arguments
- Type Systems - the mechanism the programming language uses to defined types and change variables and values between types
- Sequencers - these are more advanced flow control and exception handling concepts.
- Concurrency - the support of performing multiple actions in a simultaneous or simulated simultaneous fashion