Keith Playford

Learn More
The ability to extend a language with new syntactic forms is a powerful tool. A sufficiently flexible macro system allows programmers to build from a common base towards a language designed specifically for their problem domain. However, macro facilities that are integrated, capable, and at the same time simple enough to be widely used have been limited to(More)
syntax trees (AST’s) are highly structured representations of source code. In an object-oriented implementation, there would typically be one class per definition, statement, or other language construct. Down at the expression level, there might be classes corresponding to function calls, array accesses, literal references, and so on. Typically with an AST,(More)
The challenge for the metaobject protocol designer is to balance the connicting demands of eeciency, simplicity, and extensibility. It is impossible to know all desired extensions in advance; some of them will require greater functionality, while others require greater eeciency. In addition, the protocol itself must be suuciently simple that it can be fully(More)
Object-oriented languages with multiple inheritance and automatic conflict resolution typically use a linearization of superclasses to determine which version of a property to inherit when several superclasses provide definitions. Recent work has defined several desirable characteristics for linearizations, the most important being monotonicity, which(More)
The ability to extend a language with new syntactic forms is a powerful tool. A sufficiently flexible macro system allows programmers to build from a common base towards a language designed specifically for their problem domain. However, macro facilities that are integrated, capable, and at the same time simple enough to be widely used have been limited to(More)
Synopsis This paper will be published in a special issue of the \Lisp and Symbolic Computation" Journal. Abstract. The challenge for the metaobject protocol designer is to balance the con-icting demands of eeciency, simplicity, and extensibility. It is impossible to know all desired extensions in advance; some of them will require greater functionality,(More)
  • 1