[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2786545.2786548acmconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
research-article

Efficient Layered Method Execution in ContextAmber

Published: 04 July 2015 Publication History

Abstract

We present ContextAmber, a framework for context-oriented programming, in Amber Smalltalk, an implementation of the Smalltalk programming language that compiles to JavaScript. ContextAmber is implemented using metaprogramming facilities and supports global, object-wise, and scoped layer activation. Current COP implementations come at the expense of significantly reduced execution performance due to multiple partial method invocations and layer composition computations every time a layered method is invoked. ContextAmber can reduce this overhead by inlining partial methods, caching layer compositions, and caching inlined layered methods, resulting in a runtime overhead of about 5% in our vector graphics rendering benchmarks.

References

[1]
M. Appeltauer, R. Hirschfeld, M. Haupt, J. Lincke, and M. Perscheid. A Comparison of Context-oriented Programming Languages. In International Workshop on Context-Oriented Programming, COP '09, pages 6:1--6:6, New York, NY, USA, 2009. ACM.
[2]
P. Coad. Object-oriented Patterns. Commun. ACM, 35(9):152--159, Sept. 1992.
[3]
A. Colyer, A. Clement, R. Bodkin, and J. Hugunin. Using AspectJ for Component Integration in Middleware. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA '03, pages 339--344, New York, NY, USA, 2003. ACM.
[4]
P. Costanza, R. Hirschfeld, and W. De Meuter. Efficient Layer Activation for Switching Context-dependent Behavior. In Proceedings of the 7th Joint Conference on Modular Programming Languages, JMLC'06, pages 84--103, Berlin, Heidelberg, 2006. Springer-Verlag.
[5]
R. Hirschfeld, P. Costanza, and M. Haupt. An Introduction to Context-Oriented Programming with ContextS. In R. Lämmel, J. Visser, and J. Saraiva, editors, Generative and Transformational Techniques in Software Engineering II, volume 5235 of Lecture Notes in Computer Science, pages 396--407. Springer Berlin Heidelberg, 2008.
[6]
R. Hirschfeld, P. Costanza, and O. Nierstrasz. Context-oriented programming. Journal of Object Technology, 7(3), 2008.
[7]
U. Hölzle, C. Chambers, and D. Ungar. Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. In Proceedings of the European Conference on Object-Oriented Programming, ECOOP '91, pages 21--38, London, UK, UK, 1991. Springer-Verlag.
[8]
R. Krahn, J. Lincke, and R. Hirschfeld. Efficient Layer Activation in Context JS. In Proceedings of the 2012 10th International Conference on Creating, Connecting and Collaborating Through Computing, C5 '12, pages 76--83, Washington, DC, USA, 2012. IEEE Computer Society.
[9]
J. Lincke, M. Appeltauer, B. Steinert, and R. Hirschfeld. An Open Implementation for Context-oriented Layer Composition in ContextJS. Sci. Comput. Program., 76(12):1194--1209, Dec. 2011.
[10]
T. Würthinger, C. Wimmer, A. Wöß, L. Stadler, G. Duboscq, C. Humer, G. Richards, D. Simon, and M. Wolczko. One VM to Rule them All. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Onward! 2013, pages 187--204, New York, NY, USA, 2013. ACM.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
COP '15: Proceedings of the 7th ACM International Workshop on Context-Oriented Programming
July 2015
54 pages
ISBN:9781450336543
DOI:10.1145/2786545
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].

Sponsors

In-Cooperation

  • CTU: Czech Technical University in Prague
  • AITO: Assoc Internationale por les Technologies Objects

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 July 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Context-oriented programming
  2. inlined layered method invalidation
  3. partial method inlining

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ECOOP '15

Acceptance Rates

Overall Acceptance Rate 17 of 25 submissions, 68%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 72
    Total Downloads
  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media