skip to main content
10.1145/2508168.2508169acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Polymorphic identifiers: uniform resource access in objective-smalltalk

Published:28 October 2013Publication History

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
        • Published in

          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

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 28 October 2013

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          DLS '13 Paper Acceptance Rate9of22submissions,41%Overall Acceptance Rate32of77submissions,42%

          Upcoming Conference

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader