10.1145/1146841.1146844acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedings
ARTICLE

Higher order messaging

ABSTRACT

We introduce Higher Order Messaging, a higher order programming mechanism for dynamic object-oriented languages. Higher Order Messages allow user-defined message dispatch mechanism to be expressed using an optimally compact syntax that is a natural extension of plain messaging and also have a simple conceptual model. They can be implemented without extending the base language and operate through language bridges.

References

  1. Backus, J. Can programming be liberated from the von neumann style?: a functional style and its algebra of programs. Commun. ACM 21, 8 (1978), 613--641.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bergmans, L. Composing Concurrent Objects. PhD thesis, University of Twente, June 1994.]]Google ScholarGoogle Scholar
  3. Brooks, F. P. No silver bullet. IEEE Computer 20, 4 (Apr. 1987), 10--19.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Cox, B. Object Oriented Programming, an Evolutionary Approach. Addison Wesley, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Cox, B. J. Taskmaster ecoop position paper. In ECOOP'91, Workshop on Exception Handling And OOPLS (Geneva, Switzerland, 1991).]]Google ScholarGoogle Scholar
  6. D'Hondt, T., and Wolfgang. Of first-class methods and dynamic scope. In Actes de LMO'2002: Langages et Modèles à Objets (2002).]]Google ScholarGoogle Scholar
  7. Ducasse, S. Evaluating message passing control techniques in Smalltalk. Journal of Object-Oriented Programming (JOOP) 12, 6 (June 1999), 39--44.]]Google ScholarGoogle Scholar
  8. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading, Mass., 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Goldberg, A., and Robson, D. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Goldberg, A., and Robson, D. Smalltalk-80: The Language. Addison Wesley, 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Iverson, K. E. A Programming Language. 1962.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Kühne, T. Higher order objects in pure object-oriented languages. SIGPLAN OOPS Mess. 6, 1 (1995), 1--6.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Lieberherr, K. J., Silva-Lepe, I., and Xiao, C. Adaptive object-oriented programming using graph-based customization. Commun. ACM 37, 5 (1994), 94--101.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Liskov, B., Snyder, A., Atkinson, R., and Schaffert, C. Abstraction mechanisms in CLU. Commun. ACM 20, 8 (1977), 564--576.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Lutz, M. Programming Python (2nd edition). O'Reilly & Associates, Inc., 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Matsumoto, Y. The Ruby Programming Language. Addison Wesley Professional, 2002. To appear.]]Google ScholarGoogle Scholar
  17. McNamara, B., and Smaragdakis, Y. Functional programming in C++. In ICFP '00: Proceedings of the fifth ACM SIGPLAN international conference on Functional programming (New York, NY, USA, 2000), ACM Press, pp. 118--129.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Mougin, P., and Ducasse, S. Oopal: integrating array programming in object-oriented programming. In OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications (2003), ACM Press, pp. 65--77.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Murer, S., Omohundro, S., Stoutamire, D., and Szyperski, C. Iteration abstraction in Sather. ACM Trans. Program. Lang. Syst. 18, 1 (1996), 1--15.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Myers, B. A., Pane, J. F., and Ko, A. Natural programming languages and environments. Commun. ACM 47, 9 (2004), 47--52.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Naugler, D. R. Functional programming in java. J. Comput. Small Coll. 18, 6 (2003), 112--118.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Pane, J. F. A programming system for children that is designed for usability. PhD thesis, 2002. Co-Chair-Brad A. Myers and Co-Chair-David Garlan.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Pratikakis, P., Spacco, J., and Hicks, M. Transparent proxies for java futures. In OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications (2004), ACM Press, pp. 206--223.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Robert H. Halstead, J. Multilisp: a language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7, 4 (1985), 501--538.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Watanabe, T., and Yonezawa, A. Reflection in an object-oriented concurrent language. In Proceedings OOPSLA '88, ACM SIGPLAN Notices (Nov. 1988), vol. 23, pp. 306--315.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Yokote, Y. The Design and Implementation of Concurrent Smalltalk, vol. 21 of World Scientific Series in Computer Science. World Scientific, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Higher order messaging

    Comments

    Login options

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

    Sign in
    • Article Metrics

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

      Other Metrics

    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!