Journal ArticleWe "unbundle" several roles of classes in existing languages, by providing a suite of operators independently controlling such effects as combination, modification, encapsulation, name resolution, and sharing, all on the single notion of module. All module operators are forms of inheritance. Thus, inheritance not only is not in conflict with modularity in our system, but is its foundation. This allows a previously unobtainable spectrum of features to be combined in a cohesive manner, including multiple inheritance, mixins, encapsulation and strong typing. We demonstrate our approach in a language (called Jigsaw, as in t h e tool, not the puzzle!). Our language is modular in two senses: it manipulates modules, and it is hi...
Programming languages and formal notations are central to computer science. A significant part of c...
This paper proposes a code reuse mechanism called module embedding that enables the building of new ...
Inheritance is a useful mechanism for factoring and reusing code. However, it has limitations for b...
. We present an algebraic formalization of the notion of mixin module, i.e. a module where the defin...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
technical reportIn this paper we show how modular linking of program fragments can be added to stati...
Journal ArticleThe conceptual and specificational power of denotational semantics for programming la...
The diverse inheritance mechanisms provided by Smalltalk, Beta, and CLOS are interpreted as differen...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
The complexity of software has driven both researchers and practitioners toward design methodologies...
Programming-language design is more active than ever: existing languages are evolving continually an...
AbstractThis article demonstrates a method for composing a programming language by combining action-...
We will explore an approach to modular programming language descriptions and extensions in a denotat...
The introduction of new features to a programming language often requires that its compiler goes to ...
We present FJig, a simple calculus where basic building blocks are classes in the style of Featherwe...
Programming languages and formal notations are central to computer science. A significant part of c...
This paper proposes a code reuse mechanism called module embedding that enables the building of new ...
Inheritance is a useful mechanism for factoring and reusing code. However, it has limitations for b...
. We present an algebraic formalization of the notion of mixin module, i.e. a module where the defin...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
technical reportIn this paper we show how modular linking of program fragments can be added to stati...
Journal ArticleThe conceptual and specificational power of denotational semantics for programming la...
The diverse inheritance mechanisms provided by Smalltalk, Beta, and CLOS are interpreted as differen...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
The complexity of software has driven both researchers and practitioners toward design methodologies...
Programming-language design is more active than ever: existing languages are evolving continually an...
AbstractThis article demonstrates a method for composing a programming language by combining action-...
We will explore an approach to modular programming language descriptions and extensions in a denotat...
The introduction of new features to a programming language often requires that its compiler goes to ...
We present FJig, a simple calculus where basic building blocks are classes in the style of Featherwe...
Programming languages and formal notations are central to computer science. A significant part of c...
This paper proposes a code reuse mechanism called module embedding that enables the building of new ...
Inheritance is a useful mechanism for factoring and reusing code. However, it has limitations for b...