Niklaus Wirth 2026-11-05
Niklaus Wirth designed Pascal, Modula-2 and Oberon, connecting language design with compiler and system construction. His project account traces their development through implementations, teaching and workstation systems rather than presenting syntax in isolation.[ref]
Summary of projects 1962-1999 by Niklaus Wirth. Pascal, Modula-2 and Oberon sections
Oberon illustrates his preference for a small explicit language definition. Its report describes type extension of records, allowing a new record type to build on an existing one. A base-typed pointer can refer to an extended record, while access to extension-specific fields requires an appropriate type test or guard. The language's value and VAR parameters also specify whether a call receives a value or access to the caller's variable.[ref]
Type extension 2026-11-05
Type extension constructs a new data type from a base data type while retaining a specified relationship with it. In Oberon, a record type can extend another record type by adding fields while preserving its base fields. The language also relates corresponding pointer types and supplies type guards for accessing an extended value.[ref]
The Programming Language Oberon by Niklaus Wirth. §§6.3–6.4, record extension and pointer types; §8.1, type guards
For example, a base
Point can contain coordinates x,y; an extending ColoredPoint retains those coordinates and adds color. Code using a permitted base interface can operate on the inherited coordinates, while access to color requires knowledge of the extension. This is a declared relationship in the type system, rather than an inference that two unrelated record types happen to have similarly named fields.