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

Korz: Simple, Symmetric, Subjective, Context-Oriented Programming

Published:14 October 2014Publication History

ABSTRACT

Korz is a new computational model that provides for context-oriented programming by combining implicit arguments and multiple dispatch in a slot-based model. This synthesis enables the writing of software that supports contextual variation along multiple dimensions, and graceful evolution of that software to support new, unexpected dimensions of variability, without the need for additional mechanism such as layers or aspects. With Korz, a system consists of a sea of method and data slots in a multidimensional space. There is no fixed organization of slots into objects - a slot pertains to a number of objects instead of being contained by a single object - and slots can come together according to the implicit context in any given situation, yielding subjective objects. There is no dominant decomposition, and no dimension holds sway over any other. IDE support is essential for managing complexity when working with the slot space and with subjectivity, allowing the task at hand to dictate what subspaces to isolate and what dominance of dimensions to use when presenting nested views to the user. We have implemented a prototype interpreter and IDE, and used it on several examples. This early experience has revealed much that needs to be done, but has also shown considerable promise. It seems that Korz's particular combination of concepts, each well-known from the past, is indeed more powerful than the sum of its parts.

References

  1. Agesen, O. and Ungar, D. 1994. Sifting Out the Gold. OOPSLA'94.Google ScholarGoogle Scholar
  2. Appeltauer, M. et al. 2009. A Comparison of Context-oriented Programming Languages. COP'09. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ashcroft, E. A. and Wadge, W. W. Lucid, a Non-procedural Language with Iteration. 1977. CACM. 20, 7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Batory, D. et al. 1994. The GenVoca Model of Software-System Generators. IEEE Software. 11, 5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bezanson, J. et al. 2014. The Julia Manual. http://docs.julialang.org/en/release-0.2/manual/ accessed 7/18/14.Google ScholarGoogle Scholar
  6. Bobrow, D. G. and Gabriel, R. P. 1993. CLOS in Context: The Shape of the Design Space. CACM. May, 1993.Google ScholarGoogle Scholar
  7. Chambers, C. 1992. Object-Oriented Multi-Methods in Cecil. ECOOP'92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Chung, W. et al. 2005. The Concern Manipulation Environment. ICSE'05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Chung, W. et al. 2005. Working with Implicit Concerns in the Concern Manipulation Environment. AOSD'05 Workshop on LATE.Google ScholarGoogle Scholar
  10. Elrad, T. et al. (eds.), 2001. Special section on aspect-oriented programming. CACM. 44, 10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Faustini, A. A. and Jagannathan, R. 1993. Multidimensional Problem Solving in Lucid. SRI-CSL-93-03. SRI International.Google ScholarGoogle Scholar
  12. Gabriel, R. et al. 1991. CLOS: Integrating object-oriented and functional programming. CACM, 34, 9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Harrison, W. et al. 2005. Supporting aspect-oriented software development with the Concern Manipulation Environment. IBM Systems Journal. 44, 2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Heinlein, C. 2005. Global and Local Virtual Functions in C++. JOT. 4, 10.Google ScholarGoogle ScholarCross RefCross Ref
  15. Hirschfeld, R. et al. 2008. Context-oriented Programming. JOT. 7, 3.Google ScholarGoogle ScholarCross RefCross Ref
  16. Harrison, W. and Ossher, H. 1993. Subject-Oriented Programming: A Critique of Pure Objects. OOPSLA'93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Hanson, D. R. and Proegsting, T. A. 2001. Dynamic Variables. PLDI'01. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Kiczales, G. et al. 1997. Aspect-Oriented Programming. ECOOP'97.Google ScholarGoogle Scholar
  19. Kiczales, G. et al. 2001. An Overview of AspectJ. ECOOP'01. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Löwis, M. et al. 2007. Context-Oriented Programming: Beyond Layers. ICDL'07. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Moon, D. 1986. Object-Oriented Programming with Flavors. OOPSLA'86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Lewis, J. R. et al. Implicit Parameters: Dynamic Scoping with Static Types. POPL'00. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Ossher, H. et al. 1996. Specifying subject-oriented composition. TAPOS, 2, 3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Ostermann, K. 2002. Dynamically Composable Collaborations with Delegation Layers. ECOOP'02. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Ossher, H. and Tarr, P. 2000. Hyper/J: multi-dimensional separation of concerns for Java. ICSE'00. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Pirkelbauer, P. et al. 2007. Open Multi-Methods for C++. GIPCE'07. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Plaice, J. and Paquet, J. 1996. Introduction to intensional programming. Intensional Programming I. World Scientific.Google ScholarGoogle Scholar
  28. Prehofer, C. 1997. Feature-oriented programming: A fresh look at objects. ECOOP'97.Google ScholarGoogle ScholarCross RefCross Ref
  29. Salzman, L. and Aldrich, J. 2005. Prototypes with multiple dispatch: An expressive and dynamic object model. ECOOP'05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Schärli, N. et al. Traits: Composable Units of Behavior. CSE 02-012, Dept. of Computer Science and Engineering, Oregon Health & Science University.Google ScholarGoogle Scholar
  31. Stavrakas, Y. and Gergatsoulis, M. 2002. Multidimensional Semistructured Data: Representing Context-Dependent Information on the Web. CAISE'02. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Smith, R. B., Ungar, D. 1996. A Simple and Unifying Approach to Subjective Objects. TAPOS, 18, 4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Tarr, P. et al. 1999. N degrees of separation: multi-dimensional separation of concerns. ICSE'99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Ungar, D. and Adams, S. 2010. Harnessing Emergence for Manycore Programming: Early Experience Integrating Ensembles, Adverbs, and Object-based Inheritance. OOPSLA'10 Short Paper. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Ungar, D. and Smith, R. B. 1987. Self: The Power of Simplicity. OOPSLA'87. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Wan, K. et al. 2005. A Context Theory for Intensional Programming. CRR'05 Workshop on Context Representation and Reasoning.Google ScholarGoogle Scholar
  37. Wu, A. et al. 2009. Object-Oriented Intensional Programming: Intensional Classes Using Java and Lucid. Software Engineering Research & Applications'10. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Korz: Simple, Symmetric, Subjective, Context-Oriented Programming

    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
      Onward! 2014: Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software
      October 2014
      332 pages
      ISBN:9781450332101
      DOI:10.1145/2661136

      Copyright © 2014 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: 14 October 2014

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Onward! 2014 Paper Acceptance Rate16of35submissions,46%Overall Acceptance Rate40of105submissions,38%

      Upcoming Conference

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader