skip to main content
10.1145/2851613.2851755acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

An object model for a dynamic mixin based language

Published:04 April 2016Publication History

ABSTRACT

Dynamic mixins allow objects to be modified at runtime with modular extensions. Runtime extensions complicate the object memory management because the order in which mixins are added is not known at compile time. Furthermore, the exact type of the receiver of an up-call from a mixin must be determined at runtime. This work proposes an object model used to address both of these issues. It is used to implement a dynamic mixin-based language called mix and removes the burden of object memory management from the application developer.

References

  1. Efficiently implementing python object with maps. http://morepypy.blogspot.ca/2010/11/efficiently-implementing-python-objects.html, November 2011.Google ScholarGoogle Scholar
  2. Python documentation. http://www.python.org, February 2013.Google ScholarGoogle Scholar
  3. Ruby documentation. http://www.ruby-lang.org, December 2015.Google ScholarGoogle Scholar
  4. S. Apel, T. Leich, and G. Saake. Aspectual mixin layers: Aspects and features in concert. In Proceedings of the 28th International Conference on Software Engineering, ICSE '06, pages 122--131, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. Burton and E. Sekerinski. Using dynamic mixins to implement design patterns. In Proceedings of the 19th European Conference on Pattern Languages of Programs, EuroPLoP '14, pages 14:1--14:19, New York, NY, USA, 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. E. Burton and E. Sekerinski. The safety of dynamic mixin composition. In Proceedings of the 30th Annual ACM Symposium on Applied Computing, SAC '15, pages 1992--1999, New York, NY, USA, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. Chambers, D. Ungar, and E. Lee. An efficient implementation of self a dynamically-typed object-oriented language based on prototypes. SIGPLAN Not., 24(10):49--70, Sept. 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. CodeHaus. Groovy - runtime mixins. http://groovy-lang.org/, February 2014.Google ScholarGoogle Scholar
  9. R. Dixon, T. McKee, M. Vaughan, and P. Schweizer. A fast method dispatcher for compiled languages with multiple inheritance. In Conference proceedings on Object-oriented programming systems, languages and applications, OOPSLA '89, pages 211--214, New York, NY, USA, 1989. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. Ducournau. Coloring, a versatile technique for implementing object-oriented languages. Softw. Pract. Exper., 41(6):627--659, May 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. E. Gamma. The extension objects pattern. In R. Martin, D. Riehle, and F. Buschmann, editors, PLoP'96. 3rd Conference on Pattern Languages of Programs. Addison-Wesley, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. A. Goldberg and D. Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Google. Design elements - chrome v8. https://developers.google.com/v8/design, December 2015.Google ScholarGoogle Scholar
  15. N. Hankache. Perl 6 introduction. http://perl6intro.com, December 2015.Google ScholarGoogle Scholar
  16. K. Ishizaki, T. Ogasawara, J. Castanos, P. Nagpurkar, D. Edelsohn, and T. Nakatani. Adding dynamically-typed language support to a statically-typed language compiler: performance evaluation, analysis, and tradeoffs. SIGPLAN Not., 47(7):169--180, Mar. 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. C. Myers. Bidirectional object layout for separate compilation. In Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, OOPSLA '95, pages 124--139, New York, NY, USA, 1995. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Odersky. The Scala Language Specification. http://www.scala-lang.org, February 2011.Google ScholarGoogle Scholar
  19. W. Pugh and G. Weddell. Two-directional record layout for multiple inheritance. SIGPLAN Not., 25(6):85--91, June 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. B. Stroustrup. Multiple inheritance for c++, 1999.Google ScholarGoogle Scholar
  21. C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2nd edition, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Templ. A systematic approach to multiple inheritance implementation. SIGPLAN Not., 28(4):61--66, Apr. 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. Ungar and R. B. Smith. Self: The power of simplicity. Lisp and Symbolic Computation, 4(3):187--205, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. VanHilst and D. Notkin. Using role components in implement collaboration-based designs. SIGPLAN Notices, 31(10):359--369, Oct. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Y. Zibin and J. Gil. Two-dimensional bi-directional object layout. In L. Cardelli, editor, ECOOP 2003 -- Object-Oriented Programming, volume 2743 of Lecture Notes in Computer Science, pages 329--350. Springer Berlin Heidelberg, 2003.Google ScholarGoogle Scholar

Index Terms

  1. An object model for a dynamic mixin based language

      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
        SAC '16: Proceedings of the 31st Annual ACM Symposium on Applied Computing
        April 2016
        2360 pages
        ISBN:9781450337397
        DOI:10.1145/2851613

        Copyright © 2016 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 ACM 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: 4 April 2016

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        SAC '16 Paper Acceptance Rate252of1,047submissions,24%Overall Acceptance Rate1,650of6,669submissions,25%
      • Article Metrics

        • Downloads (Last 12 months)3
        • Downloads (Last 6 weeks)0

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader