A semantics of multiple inheritance.
Proc. of the international symposium on Semantics of data types
Programming in MODULA-2 (3rd corrected ed.)
Programming in MODULA-2 (3rd corrected ed.)
ACM Transactions on Programming Languages and Systems (TOPLAS)
An introduction to Trellis/Owl
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Encapsulation and inheritance in object-oriented programming languages
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Object structure in the Emerald system
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
The type inference and coercion facilities in the scratchpad II interpreter
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
An implementation of standard ML modules
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
The annotated C++ reference manual
The annotated C++ reference manual
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A parallel object-oriented language with inheritance and subtyping
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The scratchpad II type system domains and subdomains
Computing tools for scientific problem solving
The SPARC architecture manual: version 8
The SPARC architecture manual: version 8
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
AXIOM: the scientific computation system
AXIOM: the scientific computation system
ACM SIGPLAN Notices
ACM Transactions on Programming Languages and Systems (TOPLAS)
Signatures: a language extension for improving type abstraction and subtype polymorphism in C++
Software—Practice & Experience
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Java Language Specification
The Java Language Specification
Whiteoak: introducing structural typing into java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
A feature composition problem and a solution based on c++ template metaprogramming
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Extending Erlang by utilising RefactorErl
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
Hi-index | 0.00 |
We outline the design and detail the implementation of a language extension for abstracting types and for decoupling subtyping and inheritance in C++. This extension gives the user more of the flexibility of dynamic typing while retaining the efficiency and security of static typing. After a brief discussion of syntax and semantics of this language extension and examples of its use, we present and analyze three different implementation techniques: a preprocessor to a C++ compiler, an implementation in the front end of a C++ compiler, and a low-level implementation with back-end support. We follow with an analysis of the performance of the three implementation techniques and show that our extension actually allows subtype polymorphism to be implemented more efficiently than with virtual functions. We conclude with a discussion of the lessons we learned for future programming language design.