Avoiding Confusion in Metacircularity: The Meta-Helix
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
Improving Dynamic Data Analysis with Aspect-Oriented Programming
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Pin: building customized program analysis tools with dynamic instrumentation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Self-Sustaining Systems: First Workshop, S3 2008 Potsdam, Germany, May 15-16, 2008 Revised Selected Papers
The Lively Kernel A Self-supporting System on a Web Page
Self-Sustaining Systems
Lively Wiki a development environment for creating and sharing active web content
Proceedings of the 5th International Symposium on Wikis and Open Collaboration
Lively Fabrik A Web-based End-user Programming Environment
C5 '09 Proceedings of the 2009 Seventh International Conference on Creating, Connecting and Collaborating through Computing
AspectScript: expressive aspects for the web
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Execution levels for aspect-oriented programming
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
An open implementation for context-oriented layer composition in ContextJS
Science of Computer Programming
Scoping changes in self-supporting development environments using context-oriented programming
Proceedings of the International Workshop on Context-Oriented Programming
Hi-index | 0.00 |
Customized method tracers can be a valuable tool for debugging and program comprehension. They allow to declaratively specify what parts of the call graph should be captured and are an alternative to tedious manual debugging techniques. Method tracers are easy to implement in dynamic languages but avoiding multiple method instrumentation and recursion in the client code can become complex. In this paper we show how Context-oriented Programming (COP) can be leveraged to address such issues. Our approach is based on ContextJS, a COP implementation for JavaScript, which provides scoping mechanisms and an infrastructure for method instrumentation. These abstractions allow to separate target and tracer logic so that self-referentiality is avoided.