opening it up with Common Lisp

Favorite weblogs

Lisp Related

Bill Clementson

Finding Lisp


Planet Lisp



Talking Points Memo

This Modern World

Working for Change

Other home


Recent Readings

Book review: Darwinia
Reviewed: Friday, August 11, 2006

Summer reading: Spin
Reviewed: Saturday, August 5, 2006

Reviewed: Tuesday, July 18, 2006

the Omnivoire's Delimma
Reviewed: Wednesday, July 12, 2006

the Golem's Eye
Reviewed: Wednesday, May 31, 2006


Language Constructs for Context-oriented Programming
Pascal Costanza and Robert Hirschfeld, 2005 , (Paper URL)
Friday, September 9, 2005

Pascal Costanza and Robert Hirschfeld remind us that things in the world usually have multiple roles (I'm a father, a programmer, and occasionally a human being). These roles come and go dynamically, sometimes overlap, and demand different behavior. Software languages have generally ignored this complexity; leaving the problem to the creative invention of legions of programmers (though Cocoa and Objective-C do provide for the related but simpler behavior of delegation). Since context is so important, it makes sense for languages to support it as a primitive. Costanza nd Hirschfeld then go on to demonstrate the power of the CLOS MOP by implementing a strong language candidate before our eyes (admittedly, with most of the details left under the rug but the source is available!). Context-oriented programming feels like Aspect-oriented programming turned on its side. In AOP, things are expressed "on the side" and then woven throughout the program (e.g., logging or persistence). In COP, things are still expressed "on the side" but now they are treated as multiple layers that can be turned on and off dynamically at run time. This is an excellent paper: clearly written with a strong motivating example and good literature review. It's wonderful to see language design coming back into fashion.

Home | About | Quotes | Recent | Archives

Copyright -- Gary Warren King, 2004 - 2006