Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
The C++ programming language
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Classification of actions or inheritance also for methods
European conference on object-oriented programming on ECOOP '87
Inheritance and subtyping in a parallel object-oriented language
European conference on object-oriented programming on ECOOP '87
Research directions in object-oriented programming
Block-structure and object-oriented languages
Research directions in object-oriented programming
An object-oriented metaprogramming system
Proceedings of the Twenty-First Annual Hawaii International Conference on Software Track
Inheritance as an incremental modification mechanism or what like is and isn'tlike
on ECOOP '88 (European Conference on Object-Oriented Programming)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Abstraction mechanisms in the BETA programming language
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
Strong typing of object-oriented languages revisited
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Type substitution for object-oriented programming
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Combination of inheritance hierarchies
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Constraint patterns as a basis for object oriented programming
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Suggestion for a parametrized class model
ACM SIGPLAN OOPS Messenger
An algebraic theory of class specification
ACM Transactions on Software Engineering and Methodology (TOSEM)
ACM SIGPLAN Notices
SAOOSS: a system for the analysis of object-oriented software systems
ACM SIGPLAN OOPS Messenger
ACM Computing Surveys (CSUR)
Consummating virtuality to support more polymorphism in C++
ACM SIGPLAN Notices
How to preserve the benefits of design patterns
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Contraint-based polymorphism in Cecil: towards a practical and static type system
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Semantic analysis of virtual classes and nested classes
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Correspondence polymorphism for object-oriented languages
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On the role of language constructs for framework design
ACM Computing Surveys (CSUR)
ACM Transactions on Software Engineering and Methodology (TOSEM)
Integrating independent components with on-demand remodularization
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Information and Computation - FOOL VII
Type-safe convariant specialization with generalized matching
Information and Computation - FOOL VII
Dynamic inheritance in a statically typed language
Nordic Journal of Computing
Conquering aspects with Caesar
Proceedings of the 2nd international conference on Aspect-oriented software development
The Recursive Record Semantics of Objects Revisited
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
Towards a New Role Paradigm for Object-Oriented Modeling
OOIS '02 Proceedings of the Workshops on Advances in Object-Oriented Information Systems
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Propagating Class and Method Combination
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Unifying Genericity - Combining the Benefits of Virtual Types and Parameterized Classes
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Towards a Unified Programming Language
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Dynamically Composable Collaborations with Delegation Layers
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
On Variance-Based Subtyping for Parametric Types
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
Virtual Classes and Their Implementation
CC '01 Proceedings of the 10th International Conference on Compiler Construction
The power of symmetry: unifying inheritance and generative programming
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The recursive record semantics of objects revisited
Journal of Functional Programming
Scalable extensibility via nested inheritance
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Variability management with feature-oriented programming and aspects
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
KERIS: evolving software with extensible modules: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - Unanticipated Software Evolution
Associated types and constraint propagation for mainstream object-oriented generics
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Classbox/J: controlling the scope of change in Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Variant parametric types: A flexible subtyping scheme for generics
ACM Transactions on Programming Languages and Systems (TOPLAS)
Eliminating distinctions of class: using prototypes to model virtual classes
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
J&: nested intersection for scalable software composition
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Concepts: linguistic support for generic programming in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
An operational semantics and type safety prooffor multiple inheritance in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
From implementation to theory in product synthesis
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tribe: a simple virtual class calculus
Proceedings of the 6th international conference on Aspect-oriented software development
The when, why and why not of the BETA programming language
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Lightweight scalable components
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Variant path types for scalable extensibility
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Lightweight family polymorphism*
Journal of Functional Programming
A small extension to Java for class refinement
Proceedings of the 2008 ACM symposium on Applied computing
Implementing design patterns in CaesarJ: an exploratory study
Proceedings of the 2008 AOSD workshop on Software engineering properties of languages and aspect technologies
A Model for Java with Wildcards
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Integrating Nominal and Structural Subtyping
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Constrained types for object-oriented languages
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Code generation to support static and dynamic composition of software product lines
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Using modern mathematics as an FOSD modeling language
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
A Modeling Language for Program Design and Synthesis
Advances in Software Engineering
Sharing classes between families
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Nested and specialized associations
Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages
Towards safe and flexible object adaptation
International Workshop on Context-Oriented Programming
Implicit First Class Genericity
SC '09 Proceedings of the 8th International Conference on Software Composition
Groovy package templates: supporting reuse and runtime adaption of class hierarchies
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Classboxes: controlling visibility of class extensions
Computer Languages, Systems and Structures
Integration of BETA with Eclipse -- An Exercise in Language Interoperability
Electronic Notes in Theoretical Computer Science (ENTCS)
Virtual class support at the virtual machine level
Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
A calculus for uniform feature composition
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modules for crosscutting models
Ada-Europe'03 Proceedings of the 8th Ada-Europe international conference on Reliable software technologies
Types and modularity for implicit invocation with implicit announcement
ACM Transactions on Software Engineering and Methodology (TOSEM)
Design pattern implementation in object teams
Proceedings of the 2010 ACM Symposium on Applied Computing
Type safety for feature-oriented product lines
Automated Software Engineering
Improving reuse of component families by generating component hierarchies
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A time-aware type system for data-race protection and guaranteed initialization
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Controlling dynamic module composition through an extensible meta-level API
Proceedings of the 6th symposium on Dynamic languages
Modules as objects in newspeak
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Revisiting parametric types and virtual classes
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Reuse and combination with package templates
Proceedings of the 4th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance
Proceedings of the 4th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance
Metamodeling semantics of multiple inheritance
Science of Computer Programming
A language for generic programming in the large
Science of Computer Programming
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Separating ownership topology and encapsulation with generic universe types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
Lightweight family polymorphism
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Reconciling virtual classes with genericity
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
Feature-oriented programming with family polymorphism
Proceedings of the 3rd international workshop on Variability & Composition
On the extensibility requirements of business applications
Proceedings of the 2012 workshop on Next Generation Modularity Approaches for Requirements and Architecture
Adaptable generic programming with required type specifications and package templates
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Using first-class contexts to realize dynamic software updates
Proceedings of the International Workshop on Smalltalk Technologies
Transactions on Aspect-Oriented Software Development I
SuperGlue: component programming with object-oriented signals
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Parameterized modules for classes and extensible functions
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Synchronization abstraction in the BETA programming language
Computer Languages
Extensibility for the masses: practical extensibility with object algebras
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Escaping the maze of twisty classes
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Challenges in the design of the package template mechanism
Transactions on Aspect-Oriented Software Development IX
Inheritance versus parameterization
Proceedings of the 5th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance
Hi-index | 0.00 |
The notions of class, subclass and virtual procedure are fairly well understood and recognized as some of the key concepts in object-oriented programming. The possibility of modifying a virtual procedure in a subclass is a powerful technique for specializing the general properties of the superclass.In most object-oriented languages, the attributes of an object may be references to objects and (virtual) procedures. In Simula and BETA it is also possible to have class attributes. The power of class attributes has not yet been widely recognized. In BETA a class may also have virtual class attributes. This makes it possible to defer part of the specification of a class attribute to a subclass. In this sense virtual classes are analogous to virtual procedures. Virtual classes are mainly interesting within strongly typed languages where they provide a mechanism for defining general parameterized classes such as set, vector and list. In this sense they provide an alternative to generics.Although the notion of virtual class originates from BETA, it is presented as a general language mechanism.