skip to main content
research-article

Polymorphic identifiers: uniform resource access in objective-smalltalk

Published:28 October 2013Publication History
Skip Abstract Section

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.

References

  1. T. Archer. Inside C#. Microsoft Press, Redmond, WA, USA, 2nd edition, 2002. ISBN 0-7356-1648-5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Berners-Lee. RFC 2396: Uniform Resource Identifiers (URI). Technical report, MIT, 1998. URL http://www.rfc-archive.org/getrfc.php?rfc=2396. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. T. Fielding. Architectural styles and the design of network-based software architectures. PhD thesis, 2000. AAI9980887. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Fowler. Domain Specific Languages. Addison-Wesley, September 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. P. Gabriel. Concerns on identifier confusion inmboxCommon LISP. Personal communication, 12 2012.Google ScholarGoogle Scholar
  12. T. Geudens. Resource-Oriented Computing with NetKernel. O'Reilly Media, May 2012.Google ScholarGoogle Scholar
  13. A. Goldberg and D. Robson. Smalltalk-80: The Language and Its Implementation. Addison Wesley, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Kantee. puffs - Pass-to-Userspace Framework File System. In AsiaBSDCon, 2007. URL http://2007.asiabsdcon.org/papers/P04-paper.pdf.Google ScholarGoogle Scholar
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. Kochan. Programming in Objective-C 2.0. Addison-Wesley Professional, 2nd edition, 2009. ISBN 0321566157, 9780321566157. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. B. Meyer. EiffelWorld Column. URL http://www.eiffel.com/general/column/2005/Sept_October.html.Google ScholarGoogle Scholar
  22. B. Meyer. Object-Oriented Software Construction. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1st edition, 1988. ISBN 0136290493. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M. S. Miller. Robust composition: towards a unified approach to access control and concurrency control. PhD thesis, Baltimore, MD, USA, 2006. AAI3245526. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. D. Presotto and P. Winterbottom. The organization of networks in plan 9. In USENIX Conference, pages 271--280, 1993.Google ScholarGoogle Scholar
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. G. L. Steele, Jr. Common LISP: the language (2nd ed.). Digital Press, Newton, MA, USA, 1990. ISBN 1-55558-041-6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. D. Ungar and R. B. Smith. Self: The power of simplicity. In OOPSLA, pages 227--242, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. G. van Rossum. Python reference manual. Report CS-R9525, Apr. 1995. URL http://www.python.org/doc/ref/ref-1.html. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. M. Weiher.mboxObjective-Smalltalk: http://objective.st, 11 2010. URL http://objective.st.Google ScholarGoogle Scholar

Index Terms

  1. Polymorphic identifiers: uniform resource access in objective-smalltalk

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 49, Issue 2
          DLS '13
          February 2014
          105 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2578856
          Issue’s Table of Contents
          • cover image ACM Conferences
            DLS '13: Proceedings of the 9th symposium on Dynamic languages
            October 2013
            118 pages
            ISBN:9781450324335
            DOI:10.1145/2508168

          Copyright © 2013 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 28 October 2013

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!