Home > lambdatheultimate > Directly Reflective Meta-Programming

Directly Reflective Meta-Programming

November 13th, 2010 11:37 admin Leave a comment Go to comments

I was recently pointed to the following fascinating paper:

Directly Reflective Meta-Programming, Aaron Stump (HOSC 22(2), June 2009).

Existing meta-programming languages operate on encodings of programs as data. This paper presents a new meta-programming language, based on an untyped lambda calculus, in which structurally reflective programming is supported directly, without any encoding. The language features call-by-value and call-by-name lambda abstractions, as well as novel reflective features enabling the intensional manipulation of arbitrary program terms. The language is scope safe, in the sense that variables can neither be captured nor escape their scopes. The expressiveness of the language is demonstrated by showing how to implement quotation and evaluation operations, as proposed by Wand. The language’s utility for meta-programming is further demonstrated through additional representative examples. A prototype implementation is described and evaluated.

Meta-programming without any encoding at all. The only minor drawback that I can see is that this language is untyped – and designing a type system for it would be extremely challenging.

Source: Directly Reflective Meta-Programming

Related Articles:

  1. Why We Need More Programming Languages
  2. Why Programming Languages?
  3. Deca, an LtU-friendly bare metal systems programming language
  4. Socio-PLT: Principles for Programming Language Adoption
  5. Why Undergraduates Should Learn the Principles of Programming Languages
blog comments powered by Disqus