Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
The use of name spaces in Plan 9
ACM SIGOPS Operating Systems Review
Building domain-specific embedded languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
On the criteria to be used in decomposing systems into modules
Communications of the ACM
A modest proposal for curing the public field phobia
ACM SIGPLAN Notices
Object-Oriented Software Construction
Object-Oriented Software Construction
Inside C#
Fundamental Concepts in Programming Languages
Higher-Order and Symbolic Computation
Python reference manual
Architectural styles and the design of network-based software architectures
Architectural styles and the design of network-based software architectures
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
The early history of Smalltalk
History of programming languages---II
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Robust composition: towards a unified approach to access control and concurrency control
Robust composition: towards a unified approach to access control and concurrency control
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Programming in Scala: A Comprehensive Step-by-step Guide
Programming in Scala: A Comprehensive Step-by-step Guide
Programming in Objective-C 2.0
Programming in Objective-C 2.0
An architecture for composing embedded domain-specific languages
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Performance and extension of user space file systems
Proceedings of the 2010 ACM Symposium on Applied Computing
Domain Specific Languages
Modules as objects in newspeak
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Hi-index | 0.00 |
In object-oriented programming, polymorphic dispatch of operations decouples clients from specific providers of services and allows implementations to be modified or substituted without affecting clients. The Uniform Access Principle (UAP) tries to extend these qualities to resource access by demanding that access to state be indistinguishable from access to operations. Despite language features supporting the UAP, the overall goal of substitutability has not been achieved for either alternative resources such as keyed storage, files or web pages, or for alternate access mechanisms: specific kinds of resources are bound to specific access mechanisms and vice versa. Changing storage or access patterns either requires changes to both clients and service providers and trying to maintain the UAP imposes significant penalties in terms of code-duplication and/or performance overhead. We propose introducing first class identifiers as polymorphic names for storage locations to solve these problems. With these Polymorphic Identifiers, we show that we can provide uniform access to a wide variety of resource types as well as storage and access mechanisms, whether parametrized or direct, without affecting client code, without causing code duplication or significant performance penalties.