Learn More
Context-oriented programming (COP) extensions have been implemented for several languages. Each concrete language design and implementation comes with different variations of the features of the COP paradigm. In this paper, we provide a comparison of eleven COP implementations, discuss their designs, and evaluate their performance.
Context-oriented programming (COP) provides dedicated support for defining and composing variations to a basic program behavior. A variation, which is defined within a layer, can be de-/activated for the dynamic extent of a code block. While this mechanism allows for control flow-specific scoping, expressing behavior adaptations can demand alternative(More)
Program behavior that relies on contextual information, such as physical location or network accessibility, is common in today’s applications, yet its representation at the source code level is not sufficiently supported by programming languages. With context-oriented programming (COP), context-dependent behavior can be explicitly modularized and(More)
Lively Fabrik is a Web-based general-purpose end-user programming environment. Based on the Lively Kernel, Lively Fabrik extends the ideas of the original Fabrik system by empowering end-users to create interactive Web content entirely within their Web browsers. Web applications created with Lively Fabrik typically combine Web sources, data manipulation,(More)
Wikis are Web-based collaborative systems designed to help people share information. Wikis have become popular due to their openness which gives users complete control over the organization and the content of wiki pages. Unfortunately existing wiki engines restrict users to enter only passive content, such as text, graphics, and videos and do not allow(More)
The Lively Kernel is a browser-based environment for authoring active Web content. Being a selfsupporting system, it is simple and compact, yet it supports rapid authoring with little need for programming expertise. Most importantly, the entire context of creation is now embedded in the cloud, a shared space in which to find, alter, create and share new(More)
Interactive development in self-supporting systems like Smalltalk or the Lively Kernel allows for an explorative and direct development workflow. Because of the immediate and direct feedback loops, changes to core behavior can lead to accidentally breaking the programming tools themselves. By separating the tools from the objects they work on, this fatal(More)
Constraints provide a useful technique for ensuring that desired properties hold in an application. As a result, they have been used in a wide range of applications, including graphical layout, simulation, scheduling, and problem-solving. We describe the design and implementation of an Object Constraint Programming language, an object-oriented language that(More)
Context-oriented programming (COP) describes language extensions for modularizing behavioral or structural variations that are to be composed at run-time. Different COP infrastructures and implementations offer several strategies for scoping, activation, and deactivation of such compositional units. Often, the mechanisms employed cause substantial execution(More)
Programmers working in a Unix-like environment can easily build custom tools by configuring and combining small filter programs in shell scripts. When leaving such a text-based world and entering one that is graphics-based, however, tool building is more difficult because graphical tools are typically not prepared to be easily re-programmed by their users.(More)