The most important contribution to the success or failure of a software project comes from the choice of the programming languages being used and their support in the target environment. The choice of a suitable implementation language is not a guarantor for success, but an unsuitable language may result in a long, error-prone, and costly implementation, often resulting in an unstable product. In this paper, we present GLoo, a framework for modeling and reasoning about open-ended language mechanisms for object- and component-oriented software development. At the heart of GLoo is a small dynamic composition language that provides abstractions to (i) define and/or import reusable software components, (ii) introduce new compositional language ...