ABSTRACT
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.
- T. Archer. Inside C#. Microsoft Press, Redmond, WA, USA, 2nd edition, 2002. ISBN 0-7356-1648-5. Google ScholarDigital Library
- T. Berners-Lee. RFC 2396: Uniform Resource Identifiers (URI). Technical report, MIT, 1998. URL http://www.rfc-archive.org/getrfc.php?rfc=2396. Google ScholarDigital Library
- T. Berners-Lee, L. Masinter, and M. McCahill. Uniform Resource Locators (URL). RFC 1738 (Proposed Standard), Dec. 1994. URL http://www.ietf.org/rfc/rfc1738.txt. Obsoleted by RFCs 4248, 4266, updated by RFCs 1808, 2368, 2396, 3986, 6196, 6270. Google ScholarDigital Library
- G. Bracha, P. von der Ahé, V. Bykov, Y. Kashai, W. Maddox, and E. Miranda. Modules as objects inmboxNewspeak. In Proceedings of the 24th European conference on Object-oriented programming, ECOOP'10, pages 405--428, Berlin, Heidelberg, 2010. Springer-Verlag. ISBN 3-642-14106-4, 978-3-642-14106-5. URL http://dl.acm.org/citation.cfm?id=1883978.1884007. Google ScholarDigital Library
- J. Clark and S. DeRose. XML path language (XPath) version 1.0. W3C recommendation, W3C, Nov. 1999. http://www.w3.org/TR/1999/REC-xpath-19991116.Google Scholar
- T. Dinkelaker, M. Eichberg, and M. Mezini. An architecture for composing embedded domain-specific languages. In Proceedings of the 9th International Conference on Aspect-Oriented Software Development, AOSD '10, pages 49--60, New York, NY, USA, 2010. ACM. ISBN 978-1-60558-958-9. http://doi.acm.org/10.1145/1739230.1739237. URL http://doi.acm.org/10.1145/1739230.1739237. Google ScholarDigital Library
- ECMA-367: Eiffel analysis, design and programming language. ECMA (European Association for Standardizing Information and Communication Systems), pub-ECMA:adr, June 2005. URL http://www.ecma-international.org/publications/standards/Ecma-367.htm; http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-367.pdf.Google Scholar
- R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, and T. Berners-Lee. Rfc 2616, hypertext transfer protocol -- http/1.1, 1999. URL http://www.rfc.net/rfc2616.html. Google ScholarDigital Library
- R. T. Fielding. Architectural styles and the design of network-based software architectures. PhD thesis, 2000. AAI9980887. Google ScholarDigital Library
- M. Fowler. Domain Specific Languages. Addison-Wesley, September 2010. Google ScholarDigital Library
- R. P. Gabriel. Concerns on identifier confusion inmboxCommon LISP. Personal communication, 12 2012.Google Scholar
- T. Geudens. Resource-Oriented Computing with NetKernel. O'Reilly Media, May 2012.Google Scholar
- A. Goldberg and D. Robson. Smalltalk-80: The Language and Its Implementation. Addison Wesley, 1983. Google ScholarDigital Library
- J. Gosling, B. Joy, G. Steele, and G. Bracha. Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)). Addison-Wesley Professional, 2005. ISBN 0321246780. Google ScholarDigital Library
- J. Gregorio, R. Fielding, M. Hadley, M. Nottingham, and D. Orchard. URI Template. RFC 6570 (Proposed Standard), Mar. 2012. URL http://www.ietf.org/rfc/rfc6570.txt.Google Scholar
- C. Hofer, K. Ostermann, T. Rendel, and A. Moors. Polymorphic embedding of dsls. In Proceedings of the 7th international conference on Generative programming and component engineering, GPCE '08, pages 137--148, New York, NY, USA, 2008. ACM. ISBN 978-1-60558-267-2. http://doi.acm.org/10.1145/1449913.1449935. URL http://doi.acm.org/10.1145/1449913.1449935. Google ScholarDigital Library
- P. Hudak. Building domain-specific embedded languages. ACM Comput. Surv., 28, December 1996. ISSN 0360-0300. http://doi.acm.org/10.1145/242224.242477. URL http://doi.acm.org/10.1145/242224.242477. Google ScholarDigital Library
- A. Kantee. puffs - Pass-to-Userspace Framework File System. In AsiaBSDCon, 2007. URL http://2007.asiabsdcon.org/papers/P04-paper.pdf.Google Scholar
- A. C. Kay. History of programming languages-II. chapter The early history of Smalltalk, pages 511--598. ACM, New York, NY, USA, 1996. ISBN 0-201-89502-1. 10.1145/234286.1057828. URL http://doi.acm.org/10.1145/234286.1057828. Google ScholarDigital Library
- S. Kochan. Programming in Objective-C 2.0. Addison-Wesley Professional, 2nd edition, 2009. ISBN 0321566157, 9780321566157. Google ScholarDigital Library
- B. Meyer. EiffelWorld Column. URL http://www.eiffel.com/general/column/2005/Sept_October.html.Google Scholar
- B. Meyer. Object-Oriented Software Construction. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1st edition, 1988. ISBN 0136290493. Google ScholarDigital Library
- M. S. Miller. Robust composition: towards a unified approach to access control and concurrency control. PhD thesis, Baltimore, MD, USA, 2006. AAI3245526. Google ScholarDigital Library
- M. Odersky, L. Spoon, and B. Venners. Programming in Scala: A Comprehensive Step-by-step Guide. Artima Incorporation, USA, 1st edition, 2008. ISBN 0981531601, 9780981531601. Google ScholarDigital Library
- D. L. Parnas. On the criteria to be used in decomposing systems into modules. Commun. ACM, 15 (12): 1053--1058, Dec. 1972. ISSN 0001-0782. 10.1145/361598.361623. URL http://doi.acm.org/10.1145/361598.361623. Google ScholarDigital Library
- R. Pike, D. Presotto, K. Thompson, H. Trickey, and P. Winterbottom. The use of name space in plan 9. Operating Systems Review, 27 (2): 72--76, April 1993. URL http://plan9.bell-labs.com/sys/doc/names.pdf. Google ScholarDigital Library
- D. Presotto and P. Winterbottom. The organization of networks in plan 9. In USENIX Conference, pages 271--280, 1993.Google Scholar
- A. Rajgarhia and A. Gehani. Performance and extension of user space file systems. In Proceedings of the 2010 ACM Symposium on Applied Computing, SAC '10, pages 206--213, New York, NY, USA, 2010. ACM. ISBN 978-1-60558-639-7. http://doi.acm.org/10.1145/1774088.1774130. URL http://doi.acm.org/10.1145/1774088.1774130. Google ScholarDigital Library
- D. Spinellis. A modest proposal for curing the public field phobia. SIGPLAN Not., 37 (4): 54--56, Apr. 2002. ISSN 0362--1340. 10.1145/510857.510868. URL http://doi.acm.org/10.1145/510857.510868. Google ScholarDigital Library
- G. L. Steele, Jr. Common LISP: the language (2nd ed.). Digital Press, Newton, MA, USA, 1990. ISBN 1-55558-041-6. Google ScholarDigital Library
- C. Strachey. Fundamental concepts in programming languages. Higher Order Symbol. Comput., 13: 11--49, 1967,2000. ISSN 1388--3690. 10.1023/A:1010000313106. URL http://portal.acm.org/citation.cfm?id=609150.609208. Google ScholarDigital Library
- D. Ungar and R. B. Smith. Self: The power of simplicity. In OOPSLA, pages 227--242, 1987. Google ScholarDigital Library
- D. Ungar and R. B. Smith. Self. In Proceedings of the third ACM SIGPLAN conference on History of programming languages, HOPL III, pages 9--1--9--50, New York, NY, USA, 2007. ACM. ISBN 978-1-59593-766-7. 10.1145/1238844.1238853. URL http://doi.acm.org/10.1145/1238844.1238853. Google ScholarDigital Library
- G. van Rossum. Python reference manual. Report CS-R9525, Apr. 1995. URL http://www.python.org/doc/ref/ref-1.html. Google ScholarDigital Library
- M. Weiher.mboxObjective-Smalltalk: http://objective.st, 11 2010. URL http://objective.st.Google Scholar
Index Terms
- Polymorphic identifiers: uniform resource access in objective-smalltalk
Recommendations
Polymorphic identifiers: uniform resource access in objective-smalltalk
DLS '13In 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 ...
Formal Comparison of an Attribute Based Access Control Language for RESTful Services with XACML
SACMAT '16: Proceedings of the 21st ACM on Symposium on Access Control Models and TechnologiesThis work introduces RestACL - an access control language for RESTful Services - and compares it with XACML using formal methods. XACML is a generic approach that targets Attribute Based Access Control (ABAC) in general. RestACL is founded on the ideas ...
Polymorphic variants in Haskell
Haskell '06: Proceedings of the 2006 ACM SIGPLAN workshop on HaskellIn languages that support polymorphic variants, a single variant value can be passed to many contexts that accept different sets of constructors. Polymorphic variants can be used in order to introduce extensible algebraic datatypes into functional ...
Comments