Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
ACM SIGPLAN Notices
The programming language jigsaw: mixins, modularity and multiple inheritance
The programming language jigsaw: mixins, modularity and multiple inheritance
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Exploiting style in architectural design environments
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Specification and Analysis of System Architecture Using Rapide
IEEE Transactions on Software Engineering - Special issue on software architecture
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Software product-line engineering: a family-based software development process
Software product-line engineering: a family-based software development process
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Software architecture for product families: principles and practice
Software architecture for product families: principles and practice
Advanced module systems (invited talk): a guide for the perplexed
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Foundations of object-oriented languages: types and semantics
Foundations of object-oriented languages: types and semantics
Extensible algebraic datatypes with defaults
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Specifying Distributed Software Architectures
Proceedings of the 5th European Software Engineering Conference
Mixin Modules in a Call-by-Value Setting
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
A Primitive Calculus for Module Systems
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Modules and Components - Rivals or Partners?
The School of Niklaus Wirth, "The Art of Simplicity"
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
True Modules for Java-like Languages
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Type-Safe Prototype-Based Component Evolution
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Architectural Reasoning in ArchJava
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Difference-Based Modules: A Class-Independent Module Mechanism
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Evolution of Software Product Families
IW-SAPF-3 Proceedings of the International Workshop on Software Architectures for Product Families
Acme: an architecture description interchange language
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
SOFA/DCUP: Architecture for Component Trading and Dynamic Updating
CDS '98 Proceedings of the International Conference on Configurable Distributed Systems
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
C# Language Specification
A formal approach to software architecture
A formal approach to software architecture
Programming languages for reusable software components
Programming languages for reusable software components
Journal of Functional Programming
Programming in Modula-2
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Foundations of a simple and unified component-oriented language
Computer Languages, Systems and Structures
SCL: a simple, uniform and operational language for component-oriented programming in smalltalk
ISC'06 Proceedings of the 14th international conference on Advances in smalltalk
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
A type system for checking specialization of packages in object-oriented programming
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
We present the programming language KERIS, an extension of Java with explicit support for software evolution. KERIS introduces extensible modules as the basic building blocks for software. Modules are composed hierarchically, explicitly revealing the architecture of systems. A distinct feature of the module design is that modules do not get linked manually. Instead, the wiring of modules gets inferred. The module assembly and refinement mechanism of KERIS is not restricted to the unanticipated extensibility of atomic modules. It also allows extensions of already linked systems by replacing selected submodules with compatible versions without needing to re-link the full system. Extensibility is type-safe and non-invasive, i.e., the extension of a module preserves the original version and does not require access to source code. Copyright © 2005 John Wiley & Sons, Ltd.