Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Microsoft® Visual Basic® .NET Language Reference
Microsoft® Visual Basic® .NET Language Reference
Making Components Contract Aware
Computer
A Fragment Calculus Towards a Model of Separate Compilation, Linking and Binary Compatibility
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
The Greybox Approach: When Blackbox Specifications Hide Too Much
The Greybox Approach: When Blackbox Specifications Hide Too Much
Featherweight Java with multi-methods
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Featherweight Java with dynamic and static overloading
Science of Computer Programming
Hi-index | 0.00 |
Based on an experiment using three languages under .NET, this paper argues that the semantic differences between these languages regarding method overloading and overriding give rise to significant complexity and break encapsulation. We first recalls the various interpretations of overriding and overloading in object oriented languages through what we call language signatures. Then, we realize an experimentation with .NET components coded in different programming languages in order to observe the global behavior. From this, we show that overriding and overloading are not compatible with a key property of components: encapsulation. We conclude that, in the current state of the art, in order to build predictable assembly, components must expose their internal structure! We propose a solution to this problem.