Oberon is a general-purpose programming language that evolved from Modula-2. Its principal new feature is the concept of type extension. It permits the construction of new data types on the basis of existing ones and to relate them.

Component Pascal is a general-purpose language in the tradition of Pascal, Modula-2, and Oberon. It is an Oberon-2 variant, incompatible with Pascal. Its most important features: block structure, modularity, separate compiling, static typing with strong type checking (also across module boundaries), type extension with methods, dynamic loading of modules, garbage collection. Two free versions exist.