WG211/M3Veldhuizen
Todd Veldhuizen
Title:
Tradeoffs in Metaprogramming
Speaker: Todd Veldhuizen
Slides: tradeoffs.pdf
Abstract:
The design of metaprogramming languages requires appreciation
of the tradeoffs that exist between important language characteristics
such as safety properties, expressive power, and succinctness.
Unfortunately, such tradeoffs are little understood, a situation we
try to correct by embarking on
a study of metaprogramming language tradeoffs using tools from computability
theory. Safety properties of metaprograms are in general undecidable;
for example, the property that a metaprogram always halts and
produces a type-correct instance is File:9ee97d2bab9cce6f0b661e0a8782c1ef.png-complete. Although such
safety properties are undecidable, they may sometimes be captured
by a restricted language, a notion we adapt from complexity theory.
We give some sufficient conditions and negative results on when
languages capturing properties can exist: there can be no languages
capturing total correctness for metaprograms,
and no `functional' safety properties above
can be captured. We prove that translating a metaprogram from a
general-purpose to a restricted metaprogramming language capturing
a property is tantamount to proving that property for the
metaprogram. Surprisingly, when one shifts perspective from
programming to metaprogramming, the corresponding safety questions
do not become substantially harder there is no `jump' of Turing
degree for typical safety properties.
</p>
This talk will be based in part on the paper:
Todd L. Veldhuizen. Tradeoffs in Metaprogramming. ACM SIGPLAN Workshop on Partial Evaluation and
Semantics-Based Program Manipulation (PEPM 2006), Charleston, South Carolina,
January 9-10 2006. [[PDF]]