On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
The C++ programming language
The design and implementation of distributed Smalltalk
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Communications of the ACM
Fundamentals of software engineering
Fundamentals of software engineering
Emerald: a general-purpose programming language
Software—Practice & Experience
ACM Transactions on Programming Languages and Systems (TOPLAS)
Subcontract: a flexible base for distributed programming
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Essays on object-oriented software engineering (vol. 1)
Essays on object-oriented software engineering (vol. 1)
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
The Definition of Standard ML
The architecture of the Eden system
SOSP '81 Proceedings of the eighth ACM symposium on Operating systems principles
Python reference manual
Pragmatic Type Interoperability
ICDCS '03 Proceedings of the 23rd International Conference on Distributed Computing Systems
HydroJ: object-oriented pattern matching for evolvable distributed systems
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
An extension to the subtype relationship in C++ implemented with template metaprogramming
Proceedings of the 2nd international conference on Generative programming and component engineering
Implementing federated object systems
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
Recently the trend has been towards applying object-oriented techniques to address problems of building scalable and maintainable distributed systems. Object-oriented programming increases modularity and data abstraction by supporting encapsulation through narrow, rigidly defined and strongly enforced interfaces to objects. Unfortunately, object-oriented interfaces and mechanisms are usually only accessible and enforced through language mechanisms or strict programming conventions. This severely limits the degree to which disjoint, unrelated components can interact in a multilingual, loosely coupled distributed system. An accepted solution to the language dependence problem is the use of high-level interface description languages (IDLs). IDLs provide a description mechanism for an object's interface that is independent of any programming language. In this paper we describe an interface description language and runtime support system that uses structural subtyping rules rather than the traditional interface name equivalence rules for conformance checking. We argue that the choice of structural subtyping rather than interface name equivalence leads to a less coupled and more extensible distributed system.