meta-programming

Marcus Denker marcus at ira.uka.de
Mon Feb 24 15:05:43 UTC 2003


On Mon, Feb 24, 2003 at 05:12:52AM -0800, John W. Sarkela wrote:
> 
> So from this we might infer that metaprogramming is in some
> sense a transcendent activitiy. It is the programming of the
> means of programming. Look through past OOPSLA proceedings.
> I recall an excellent paper by Gregor Kiczales et. al. on the topic.
> 

I nice introduction could be Stephane's lecture:
http://www.iam.unibe.ch/~scg/Teaching/Reflective/

Or the (sadly) never published book by Kiczales
and Paepcke: 
"Open Implementations and Metaobject Protocols"
http://www2.parc.com/csl/groups/sda/publications/papers/Kiczales-TUT95/for-web.pdf

This is *much* easier to understand than "The Art
of the MetaObject Protocol":

@Book{kiczales-etal-91,
  author =       "G. Kiczales and J. {des Rivieres} and D. G. Bobrow",
  title =        "The Art of the Meta-Object Protocol",
  publisher =    "MIT Press",
  address =      "Cambridge (MA), USA",
  year =         "1991",
}

see http://www.amazon.com/exec/obidos/tg/detail/-/0262610744

Some other papers (they are all available on the net somewhere, just
search for them):

@InProceedings{Riva96c,
  author =       "Fred Rivard",
  title =        "{Smalltalk : a Reflective Language}",
  booktitle =    "Proceedings of REFLECTION'96",
  year =         "1996",
  pages =        "21--38",
  month =        apr,
}

@Article{kiczales96a,
  key =          "kiczales96a",
  author =       "Gregor Kiczales",
  title =        "Beyond the Black Box: Open Implementations",
  journal =      "IEEE Software",
  month =        jan,
  year =         "1996",
  volume =       "13",
  number =       "1",
  pages =        "8--11",
  abstract =     "Encapsulation, informally known as black-box
                 abstraction, is a widely known and accepted principle.
                 It is a basic tenet of software design, underlying
                 approaches to portability and reuse. However, many
                 practitioners find themselves violating it in order to
                 achieve performance requirements in a practical manner.
                 The gap between theory and practice must be filled.
                 Open implementation is a controversial new approach
                 that claims to do just that. The paper provides some
                 ideas to spark further debate on black-box abstraction
                 (0 Refs.)",
}

@InBook{kiczales93a,
  key =          "kiczales93a",
  author =       "Gregor Kiczales and J. Michael Ashley and Luis
                 Rodriguez and Amin Vahdat and Daniel G. Bobrow",
  title =        "Metaobject Protocols: Why We Want Them and What Else
                 They Can Do",
  pages =        "101--118",
  publisher =    "The MIT Press",
  year =         "1993",
  address =      "Cambridge, MA",
  abstract =     "Originally conceived as a neat idea that could help
                 solve problems in the design and implementation of
                 CLOS, the metaobject protocol framework now appears to
                 have applicability to a wide range of problems that
                 come up in high-level languages. This chapter sketches
                 this wider potential, by drawing an analogy to ordinary
                 language design, by presenting some early design
                 principles, and by presenting an overview of three new
                 metaobject protcols we have designed that,
                 respectively, control the semantics of Scheme, the
                 compilation of Scheme, and the static parallelization
                 of Scheme programs.",
}


-- 
Marcus Denker marcus at ira.uka.de  -- Squeak! http://squeak.de



More information about the Squeak-dev mailing list