Orthogonal type extensions and reductions
Jukka Paakki, Anssi Karhinen, Tomi Silander
Abstract
Jukka Paakki, Anssi Karhinen, Tomi Silander
Abstract
In this paper we present a generalization of Oberon's record type extensions. Our extension mechanism is orthogonally applicable to all the conventional data types found in Pascal-like languages. In order to balance the type system, we present an inverse concept, type reductions, that also can be applied to all the programmer-defined data types. These concepts provide flexible and powerful means for expressing universal subtyping and supertyping in a statically-typed programming language, as well as many possibilities for reuse of data types via a sound mathematical characterization of assignment statements. The presented ideas are under implementation in Alberich, a programming language that can be considered as a natural descendant of Oberon.
OpenAlex reports 2 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
In this paper we present a generalization of Oberon's record type extensions. Our extension mechanism is orthogonally applicable to all the conventional data types found in Pascal-like languages. In order to balance the type system, we present an inverse concept, type reductions, that also can be applied to all the programmer-defined data types. These concepts provide flexible and powerful means for expressing universal subtyping and supertyping in a statically-typed programming language, as well as many possibilities for reuse of data types via a sound mathematical characterization of assignment statements. The presented ideas are under implementation in Alberich, a programming language that can be considered as a natural descendant of Oberon.
Key concepts: Computer science, Programming language, Subtyping, Type safety, Programmer, Data type, Pascal (unit), Abstract data type