On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Lisp and Symbolic Computation
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
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
A syntactic approach to type soundness
Information and Computation
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
Correct Architecture Refinement
IEEE Transactions on Software Engineering - Special issue on software architecture
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Inside COM
Program fragments, linking, and modularization
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Type-safe linking and modular assembly language
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Featherweight Java: a minimal core calculus for Java and GJ
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
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
Types and programming languages
Types and programming languages
A Theory of Objects
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
First-Class Structures for Standard ML
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
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
Integrating Independently-Developed Components in Object-Oriented Languages
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Type-Safe Delegation for Run-Time Component Adaptation
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
A Core Calculus of Classes and Mixins
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
A Basic Model of Typed Components
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
True Modules for Java-like Languages
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Architectural Reasoning in ArchJava
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Coordinating Mobile Object-Oriented Code
COORDINATION '02 Proceedings of the 5th International Conference on Coordination Models and Languages
ASM '00 Proceedings of the International Workshop on Abstract State Machines, Theory and Applications
Acme: an architecture description interchange language
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
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
A theory of mixin modules: basic and derived operators
Mathematical Structures in Computer Science
Journal of Functional Programming
Anomaly-free component adaptation with class overriding
Journal of Systems and Software
Formal Support for Development of JavaBeans" Component Systems
COMPSAC '04 Proceedings of the 28th Annual International Computer Software and Applications Conference - Volume 01
A form-based meta-model for software composition
Science of Computer Programming - Special issue on new software composition concepts
Hierarchical composition of industrial components
Science of Computer Programming - Special issue on new software composition concepts
KERIS: evolving software with extensible modules: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - Unanticipated Software Evolution
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A calculus for reasoning about software composition
Theoretical Computer Science - Formal methods for components and objects
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
An algebraic foundation for automatic feature-based program synthesis
Science of Computer Programming
Modules as objects in newspeak
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Object reuse and behavior adaptation in Java-like languages
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Flexible type-safe linking of components for java-like languages
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
Guaranteeing resource bounds for component software
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Finding resource bounds in the presence of explicit deallocation
ICTAC'05 Proceedings of the Second international conference on Theoretical Aspects of Computing
Hi-index | 0.00 |
Component-based programming is currently carried out using mainstream object-oriented languages. These languages have to be used in a highly disciplined way to guarantee flexible component composition and extensibility. This paper investigates abstractions for component-oriented programming on the programming language level. We propose a simple prototype-based model for first-class components on top of a class-based object-oriented language. The model is formalized as an extension of Featherweight Java. Our calculus includes a minimal set of primitives to dynamically build, extend, and compose software components, while supporting features like explicit context dependencies, late composition, unanticipated component extensibility, and strong encapsulation. We present a type system for our calculus that ensures type-safe component definition, composition, and evolution.