Loading ...
Sorry, an error occurred while loading the content.

OOPSLA'05 CLOS tutorial

Expand Messages
  • Pascal Costanza
    OOPSLA 05 tutorial on generic functions and the CLOS Metaobject Protocol ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Town and
    Message 1 of 1 , Aug 22 5:04 AM
      OOPSLA'05 tutorial on generic functions and the CLOS Metaobject Protocol

      Town and Country Resort & Convention Center, San Diego, California
      Sunday, October 16, 2005, 13:30 - 17:00
      See http://p-cos.net/oopsla05-tutorial.html


      The Common Lisp Object System (CLOS) is unique in two ways.

      + In most OOP languages, methods belong to classes and are invoked by
      sending messages. In CLOS, methods belong to generic functions
      instead of classes, and those generic functions select and execute
      the correct method according to the types of the arguments they receive.

      + The CLOS Metaobject Protocol (MOP) specifies how its essential
      building blocks are to be implemented in CLOS itself. This allows
      extending its object model with metaclasses that change important
      aspects of CLOS for a well-defined scope.

      This tutorial introduces these two notions. I will develop - live
      during the tutorial - the code for an interpreter for generic
      functions that performs selection and execution of methods. I will
      then discuss how that code can be extended to introduce, for example,
      multimethods and AOP-style advices, and sketch how generic functions
      are implemented efficiently in the "real" world. In the second part,
      I will illustrate the extensibility of the CLOS MOP by implementing -
      live - the (hashtable-based) Python object model as a metaclass.
      Other practical extensions based on the CLOS MOP are also sketched,
      like object-relational mappings, interfaces to foreign-language
      objects, and domain-specific annotations in classes.

      The audience will learn about the basic concepts of generic functions
      and metaobject protocols. They will get the necessary insights and
      pointers to existing literature and online material to deepen their
      knowledge. The focus of the tutorial is not on technical details but
      on the general ideas. A good understanding of class-based OOP is
      required. Experience with Lisp may be helpful, but the tutorial is
      specifically targeted at non-Lispers.

      Feel free to contact me if you have any questions and/or suggestions.

    Your message has been successfully submitted and would be delivered to recipients shortly.