A new binding model which permits the capture of both dynamically and statically scoped environments is presented. The basis of the model is the technique of environment labelling. The practical side of this work has been carried out in the context of the programming language LISP. Various timing tests have been run and the new scheme compares favourably with the existing environment models and variations on them. To date the two main approaches to environment representation, shallow and deep binding, have suffered from each having just one strength. Deep binding is efficient at context switching whilst shallow binding is good at variable access. This new model attempts to provide both these facilities at comparable efficiency. Consequently, the user is now given direct access to the environment from the programming language allowing the construction of continuations which radically enhances the expressive power available. Many Interesting algorithms which were previously impossible because environments were allocated on a stack are now opened to Investigation. The thesis finishes with a discussion of some suitable topics where this approach may be applied.
|Date of Award||1984|